Browse Source

[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>
Mauro Carvalho Chehab 11 years ago
parent
commit
ffdeca885e
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/media/usb/em28xx/em28xx-dvb.c

+ 4 - 0
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)
 				if (urb->status != -EPROTO)
 					continue;
 					continue;
 			}
 			}
+			if (!urb->actual_length)
+				continue;
 			dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer,
 			dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer,
 					urb->actual_length);
 					urb->actual_length);
 		} else {
 		} 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)
 				if (urb->iso_frame_desc[i].status != -EPROTO)
 					continue;
 					continue;
 			}
 			}
+			if (!urb->iso_frame_desc[i].actual_length)
+				continue;
 			dvb_dmx_swfilter(&dev->dvb->demux,
 			dvb_dmx_swfilter(&dev->dvb->demux,
 					 urb->transfer_buffer +
 					 urb->transfer_buffer +
 					 urb->iso_frame_desc[i].offset,
 					 urb->iso_frame_desc[i].offset,