From: Michael Krufky Date: Thu, 8 Sep 2011 03:30:31 +0000 (-0300) Subject: [media] dvb-usb: fix streaming failure on channel change X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=4b5d01e9f66446be0c2beebfab0463210bed315d;p=deliverable%2Flinux.git [media] dvb-usb: fix streaming failure on channel change This fixes a bug introduced by a previous changeset entitled, [media] dvb-usb: refactor MFE code for individual streaming config per frontend As reported by Antti Palosaari, This error is shown by VLC when channel changed: [0x7f1bbc000cd0] dvb access error: DMXSetFilter: failed with -1 (Invalid argument) [0x7f1bbc000cd0] dvb access error: DMXSetFilter failed [0x7f1bbc32f910] main stream error: cannot pre fill buffer After my own investigations, I've determined that this error case occurs when the application stops streaming but leaves the frontend and dvr devices open. A typical example of this usage would be a channel change operation while watching live television. The error occurs when the application attempts to stream after tuning to the new channel. To prevent this error, don't set adap->active_fe to -1 unless the application closes the device. Cc: Antti Palosaari Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index 3f1115925ce6..460b5ae1a45d 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c @@ -77,9 +77,6 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) } } - if ((adap->feedcount == onoff) && (!onoff)) - adap->active_fe = -1; - return 0; }