diff options
Diffstat (limited to 'linux/drivers/media/dvb/dibusb/dvb-dibusb-usb.c')
-rw-r--r-- | linux/drivers/media/dvb/dibusb/dvb-dibusb-usb.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/linux/drivers/media/dvb/dibusb/dvb-dibusb-usb.c b/linux/drivers/media/dvb/dibusb/dvb-dibusb-usb.c index 467afa52a..3333d1ce1 100644 --- a/linux/drivers/media/dvb/dibusb/dvb-dibusb-usb.c +++ b/linux/drivers/media/dvb/dibusb/dvb-dibusb-usb.c @@ -63,13 +63,16 @@ int dibusb_readwrite_usb(struct usb_dibusb *dib, u8 *wbuf, u16 wlen, u8 *rbuf, /* * Cypress controls */ +static int dibusb_write_usb(struct usb_dibusb *dib, u8 *buf, u16 len) +{ + return dibusb_readwrite_usb(dib,buf,len,NULL,0); +} #if 0 /* * #if 0'ing the following functions as they are not in use _now_, * but probably will be sometime. */ - /* * do not use this, just a workaround for a bug, * which will hopefully never occur :). @@ -79,12 +82,7 @@ int dibusb_interrupt_read_loop(struct usb_dibusb *dib) u8 b[1] = { DIBUSB_REQ_INTR_READ }; return dibusb_write_usb(dib,b,1); } - -#endif -static int dibusb_write_usb(struct usb_dibusb *dib, u8 *buf, u16 len) -{ - return dibusb_readwrite_usb(dib,buf,len,NULL,0); -} +#endif /* * ioctl for the firmware @@ -124,7 +122,9 @@ int dibusb_hw_sleep(struct dvb_frontend *fe) struct usb_dibusb *dib = (struct usb_dibusb *) fe->dvb->priv; u8 b[1] = { DIBUSB_IOCTL_POWER_SLEEP }; deb_info("dibusb-device is going to bed.\n"); - dibusb_ioctl_cmd(dib,DIBUSB_IOCTL_CMD_POWER_MODE, b,1); + /* workaround, something is wrong, when dibusb 1.1 device are going to bed too late */ + if (dib->dibdev->dev_cl->id != DIBUSB1_1) + dibusb_ioctl_cmd(dib,DIBUSB_IOCTL_CMD_POWER_MODE, b,1); if (dib->fe_sleep) return dib->fe_sleep(fe); |