OSDN Git Service

Revert "[media] drivers/media/usb/dvb-usb/dib0700_core.c: fix left shift"
authorMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 6 Feb 2013 10:29:39 +0000 (08:29 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 6 Feb 2013 10:31:55 +0000 (08:31 -0200)
On Wed, 6 Feb 2013 09:04:39 +0000
Olivier GRENIE <olivier.grenie@parrot.com> wrote:

> I do not agree with the patch. Let's take an example: adap->id = 0. Then:
>  * 1 << ~(adap->id) = 1 << ~(0) = 0
>  * ~(1 << adap->id) = ~(1 << 0) = 0xFE
>
> The correct change should be: st->channel_state |= 1 << (1 - adap->id); Indeed, the original source code was not correct.

Requested-by: Olivier GRENIE <olivier.grenie@parrot.com>
Cc: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Cc: Nickolai Zeldovich <nickolai@csail.mit.edu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/dvb-usb/dib0700_core.c

index bd6a437..bf2a908 100644 (file)
@@ -584,7 +584,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
                if (onoff)
                        st->channel_state |=    1 << (adap->id);
                else
-                       st->channel_state &=  ~(1 << (adap->id));
+                       st->channel_state |=    1 << ~(adap->id);
        } else {
                if (onoff)
                        st->channel_state |=    1 << (adap->fe_adap[0].stream.props.endpoint-2);