summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88/cx88-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r--linux/drivers/media/video/cx88/cx88-dvb.c13
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;