summaryrefslogtreecommitdiff
path: root/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2012-09-10 22:04:43 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-09-27 15:14:08 -0300
commit0fe688f1383917ab90747fc41e11b393f33c97e8 (patch)
tree8e4597783c2319bc73e09eccf3c8ae5a542af932 /drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
parent6332059e8d4e05ea0e7c813a50f1243dd17dffc0 (diff)
[media] dvb_usb_v2: call streaming_ctrl() before kill urbs
Logically it is better ask hardware to stop streaming before killing urbs carrying stream. Earlier it was just opposite. Now code runs: * submit urbs * start streaming ** streaming ongoing ** * stop streaming * kill urbs Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/usb/dvb-usb-v2/dvb_usb_core.c')
-rw-r--r--drivers/media/usb/dvb-usb-v2/dvb_usb_core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
index e2d73e1a7ae0..f99015937957 100644
--- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
@@ -265,7 +265,6 @@ static inline int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed,
/* stop feeding if it is last pid */
if (adap->feed_count == 0) {
dev_dbg(&d->udev->dev, "%s: stop feeding\n", __func__);
- usb_urb_killv2(&adap->stream);
if (d->props->streaming_ctrl) {
ret = d->props->streaming_ctrl(
@@ -274,9 +273,11 @@ static inline int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed,
dev_err(&d->udev->dev, "%s: streaming_ctrl() " \
"failed=%d\n", KBUILD_MODNAME,
ret);
+ usb_urb_killv2(&adap->stream);
goto err_mutex_unlock;
}
}
+ usb_urb_killv2(&adap->stream);
mutex_unlock(&adap->sync_mutex);
}