diff options
author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-03-02 08:20:54 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-03-04 14:19:12 -0300 |
commit | ffdeca885e887dcdde40c03d8910373bd1f62296 (patch) | |
tree | 8d2841ca2b1b645214f4cfec5584778440c33277 /drivers/media/usb/em28xx | |
parent | cd701c89751d5c63230f47da9a78cdbb39384fdc (diff) | |
download | linux-ffdeca885e887dcdde40c03d8910373bd1f62296.tar.gz linux-ffdeca885e887dcdde40c03d8910373bd1f62296.tar.xz |
[media] em28xx_dvb: only call the software filter if data
Several URBs will be simply not filled. Don't call the DVB
core software filter for those empty URBs.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/usb/em28xx')
-rw-r--r-- | drivers/media/usb/em28xx/em28xx-dvb.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c index c1091c454354..301463f463c6 100644 --- a/drivers/media/usb/em28xx/em28xx-dvb.c +++ b/drivers/media/usb/em28xx/em28xx-dvb.c @@ -161,6 +161,8 @@ static inline int em28xx_dvb_urb_data_copy(struct em28xx *dev, struct urb *urb) if (urb->status != -EPROTO) continue; } + if (!urb->actual_length) + continue; dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer, urb->actual_length); } else { @@ -170,6 +172,8 @@ static inline int em28xx_dvb_urb_data_copy(struct em28xx *dev, struct urb *urb) if (urb->iso_frame_desc[i].status != -EPROTO) continue; } + if (!urb->iso_frame_desc[i].actual_length) + continue; dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer + urb->iso_frame_desc[i].offset, |