summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/drivers/media/video/cx88/cx88-dvb.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-dvb.c b/linux/drivers/media/video/cx88/cx88-dvb.c
index 2fd4c99c4..fde191dc1 100644
--- a/linux/drivers/media/video/cx88/cx88-dvb.c
+++ b/linux/drivers/media/video/cx88/cx88-dvb.c
@@ -329,21 +329,14 @@ static int cx88_dvb_bus_ctrl(struct dvb_frontend* fe,
struct cx88_core *core = dev->core;
int ret = 0;
- dprintk(1, "%s(acquire=%d)\n", __FUNCTION__, acquire);
-
- switch (dev->core->board) {
- case CX88_BOARD_HAUPPAUGE_HVR1300:
- drv = cx8802_get_driver(dev, CX88_MPEG_DVB);
- if (drv) {
- if(acquire)
- ret = drv->request_acquire(drv);
- else
- ret = drv->request_release(drv);
- }
- break;
+ drv = cx8802_get_driver(dev, CX88_MPEG_DVB);
+ if (drv) {
+ if(acquire)
+ ret = drv->request_acquire(drv);
+ else
+ ret = drv->request_release(drv);
}
- dprintk(1, "%s(acquire=%d) returns %d\n", __FUNCTION__, acquire, ret);
return ret;
}
@@ -791,7 +784,6 @@ static int dvb_register(struct cx8802_dev *dev)
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap,
&dvb_pll_fmd1216me);
- dev->dvb.frontend->ops.ts_bus_ctrl = cx88_dvb_bus_ctrl;
}
break;
default:
@@ -808,6 +800,8 @@ static int dvb_register(struct cx8802_dev *dev)
dev->dvb.frontend->ops.info.frequency_min = dev->core->pll_desc->min;
dev->dvb.frontend->ops.info.frequency_max = dev->core->pll_desc->max;
}
+ /* Ensure all frontends negotiate bus access */
+ dev->dvb.frontend->ops.ts_bus_ctrl = cx88_dvb_bus_ctrl;
/* Put the analog decoder in standby to keep it quiet */
cx88_call_i2c_clients (dev->core, TUNER_SET_STANDBY, NULL);