summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c')
-rw-r--r--linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c b/linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c
index a66f967b0..bfe42977e 100644
--- a/linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c
+++ b/linux/drivers/media/dvb/dibusb/dvb-dibusb-dvb.c
@@ -34,7 +34,7 @@ void dibusb_urb_complete(struct urb *urb, struct pt_regs *ptregs)
case 0: /* success */
case -ETIMEDOUT: /* NAK */
break;
- case -ECONNRESET: /* unlink */
+ case -ECONNRESET: /* kill */
case -ENOENT:
case -ESHUTDOWN:
return;
@@ -43,7 +43,7 @@ void dibusb_urb_complete(struct urb *urb, struct pt_regs *ptregs)
break;
}
- if (dib->feedcount > 0) {
+ if (dib->feedcount > 0 && urb->actual_length > 0) {
if (dib->init_state & DIBUSB_STATE_DVB)
dvb_dmx_swfilter(&dib->demux, (u8*) urb->transfer_buffer,urb->actual_length);
} else
@@ -73,6 +73,7 @@ static int dibusb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
return -ENODEV;
}
}
+ dibusb_streaming(dib,0);
}
dib->feedcount = newfeedcount;