On 01/19/2012 03:31 PM, Mauro Carvalho Chehab wrote:
[PATCH] dvb-usb: Don't abort stop on -EAGAIN/-EINTR
Note: this patch is not complete. if the DVB demux device is opened on
block mode, it should instead be returning -EAGAIN.
Signed-off-by: Mauro Carvalho Chehab<mche...@redhat.com>
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
index ddf282f..215ce75 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
@@ -30,7 +30,9 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed
*dvbdmxfeed, int onoff)
usb_urb_kill(&adap->fe_adap[adap->active_fe].stream);
if (adap->props.fe[adap->active_fe].streaming_ctrl != NULL) {
- ret =
adap->props.fe[adap->active_fe].streaming_ctrl(adap, 0);
+ do {
+ ret =
adap->props.fe[adap->active_fe].streaming_ctrl(adap, 0);
+ } while ((ret == -EAGAIN) || (ret == -EINTR));
if (ret< 0) {
err("error while stopping stream.");
return ret;
That fixes it. But it loops do {...} while around 100 times every I stop
zap. Over 100 times is rather much...
And I think -EINTR is the only code to look, -EAGAIN is maybe for I2C
and can be switched to native -EINTR also.
regards
Antti
--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html