Putting the dib7000p device in and out of sleep can trigger a race, causing the usb device to stall (-EPIPE), resulting in i2c errors: DiB0070 I2C write failed DiB0070 I2C read failed As a workaround, do not put the device to sleep Perhaps the dib8000/9000 need the same workaround --- drivers/media/usb/dvb-usb/dib0700_devices.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/media/usb/dvb-usb/dib0700_devices.c b/drivers/media/usb/dvb-usb/dib0700_devices.c index 1179842..2a3093e 100644 --- a/drivers/media/usb/dvb-usb/dib0700_devices.c +++ b/drivers/media/usb/dvb-usb/dib0700_devices.c @@ -774,6 +774,7 @@ static int dib7070_tuner_reset(struct dvb_frontend *fe, int onoff) static int dib7070_tuner_sleep(struct dvb_frontend *fe, int onoff) { deb_info("sleep: %d", onoff); + if (onoff) return 0; return dib7000p_set_gpio(fe, 9, 0, onoff); } -- 1.7.9.5