diff options
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-dvb.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-dvb.c b/linux/drivers/media/video/cx88/cx88-dvb.c index a0402a7b4..9270b68a0 100644 --- a/linux/drivers/media/video/cx88/cx88-dvb.c +++ b/linux/drivers/media/video/cx88/cx88-dvb.c @@ -119,12 +119,16 @@ static int dvb_thread(void *data) spin_unlock_irqrestore(dev->dvbq.irqlock,flags); /* log errors if any */ - if (dev->error_count || dev->stopper_count || dev->timeout_count) { - printk("%s: error=%d stopper=%d timeout=%d\n", + if (dev->error_count || dev->stopper_count) { + printk("%s: error=%d stopper=%d\n", dev->core->name, dev->error_count, - dev->stopper_count, dev->timeout_count); + dev->stopper_count); dev->error_count = 0; dev->stopper_count = 0; + } + if (debug && dev->timeout_count) { + printk("%s: timeout=%d (FE not locked?)\n", + dev->core->name, dev->timeout_count); dev->timeout_count = 0; } } @@ -205,6 +209,7 @@ static void dvb_unregister(struct cx8802_dev *dev) dev->demux.dmx.remove_frontend(&dev->demux.dmx, &dev->fe_hw); dvb_dmxdev_release(&dev->dmxdev); dvb_dmx_release(&dev->demux); + cx88_call_i2c_clients(dev->core, FE_UNREGISTER, dev->core->dvb_adapter); dvb_unregister_adapter(dev->core->dvb_adapter); dev->core->dvb_adapter = NULL; return; @@ -221,6 +226,7 @@ static int dvb_register(struct cx8802_dev *dev) dev->core->name, result); goto fail1; } + cx88_call_i2c_clients(dev->core, FE_REGISTER, dev->core->dvb_adapter); dev->demux.dmx.capabilities = DMX_TS_FILTERING | DMX_SECTION_FILTERING | @@ -282,6 +288,7 @@ fail4: fail3: dvb_dmx_release(&dev->demux); fail2: + cx88_call_i2c_clients(dev->core, FE_UNREGISTER, dev->core->dvb_adapter); dvb_unregister_adapter(dev->core->dvb_adapter); fail1: return result; |