2008-03-13 15:51:45

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] logical-bitwise & confusion in se401_init() (was: logical-bitwise & confusion in se401_init()?)

Mauro Carvalho Chehab wrote:
> On Mon, 10 Mar 2008 00:27:19 +0100
> Roel Kluin <[email protected]> wrote:
>
>> drivers/media/video/se401.c:1282:
>>
>> if (!cp[2] && SE401_FORMAT_BAYER) {
>>
>> shouldn't this be 'if (!(cp[2] & SE401_FORMAT_BAYER)) {'
>> drivers/media/video/se401.h:52:
>>
>> #define SE401_FORMAT_BAYER 0x40
>
> I don't have this driver, but this seems to be the proper fix.
---
logical-bitwise & confusion, SE401_FORMAT_BAYER is defined 0x40

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/media/video/se401.c b/drivers/media/video/se401.c
index d5d7d6c..952c9bd 100644
--- a/drivers/media/video/se401.c
+++ b/drivers/media/video/se401.c
@@ -1279,7 +1279,7 @@ static int se401_init(struct usb_se401 *se401, int button)
rc=se401_sndctrl(0, se401, SE401_REQ_GET_HEIGHT, 0, cp, sizeof(cp));
se401->cheight=cp[0]+cp[1]*256;

- if (!cp[2] && SE401_FORMAT_BAYER) {
+ if (!cp[2] & SE401_FORMAT_BAYER) {
err("Bayer format not supported!");
return 1;
}


2008-03-13 21:30:32

by Rik van Riel

[permalink] [raw]
Subject: Re: [PATCH] logical-bitwise & confusion in se401_init() (was: logical-bitwise & confusion in se401_init()?)

On Thu, 13 Mar 2008 16:51:29 +0100
Roel Kluin <[email protected]> wrote:

> - if (!cp[2] && SE401_FORMAT_BAYER) {
> + if (!cp[2] & SE401_FORMAT_BAYER) {
> err("Bayer format not supported!");
> return 1;
> }

Would it be better to put in some additional parenthesis?

if (!(cp[2] & SE401_FORMAT_BAYER)) {

--
All Rights Reversed

2008-03-13 22:58:58

by Roel Kluin

[permalink] [raw]
Subject: Re: [PATCH] logical-bitwise & confusion in se401_init()

Rik van Riel wrote:
> On Thu, 13 Mar 2008 16:51:29 +0100
> Roel Kluin <[email protected]> wrote:
>
>> - if (!cp[2] && SE401_FORMAT_BAYER) {
>> + if (!cp[2] & SE401_FORMAT_BAYER) {
>> err("Bayer format not supported!");
>> return 1;
>> }
>
> Would it be better to put in some additional parenthesis?
>
> if (!(cp[2] & SE401_FORMAT_BAYER)) {
>
yes of course, thanks for catching that.
---
logical-bitwise & confusion

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/media/video/se401.c b/drivers/media/video/se401.c
index d5d7d6c..9e8b521 100644
--- a/drivers/media/video/se401.c
+++ b/drivers/media/video/se401.c
@@ -1279,7 +1279,7 @@ static int se401_init(struct usb_se401 *se401, int button)
rc=se401_sndctrl(0, se401, SE401_REQ_GET_HEIGHT, 0, cp, sizeof(cp));
se401->cheight=cp[0]+cp[1]*256;

- if (!cp[2] && SE401_FORMAT_BAYER) {
+ if (!(cp[2] & SE401_FORMAT_BAYER)) {
err("Bayer format not supported!");
return 1;
}