diff options
Diffstat (limited to 'linux/drivers/media')
-rw-r--r-- | linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c index f4911fa6d..fadb850e0 100644 --- a/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c +++ b/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c @@ -109,8 +109,9 @@ struct ttusb { int insync; - u16 cc; /* MuxCounter - will increment on EVERY MUX PACKET */ + int cc; /* MuxCounter - will increment on EVERY MUX PACKET */ /* (including stuffing. yes. really.) */ + u8 last_result[32]; @@ -576,7 +577,7 @@ static void ttusb_process_muxpack(struct ttusb *ttusb, const u8 * muxpack, cc = (muxpack[len - 4] << 8) | muxpack[len - 3]; cc &= 0x7FFF; - if (cc != ttusb->cc) + if ((cc != ttusb->cc) && (ttusb->cc != -1)) printk("%s: cc discontinuity (%d frames missing)\n", __FUNCTION__, (cc - ttusb->cc) & 0x7FFF); ttusb->cc = (cc + 1) & 0x7FFF; @@ -859,6 +860,7 @@ static int ttusb_start_iso_xfer(struct ttusb *ttusb) return 0; } + ttusb->cc = -1; ttusb->insync = 0; ttusb->mux_state = 0; |