summaryrefslogtreecommitdiff
path: root/drivers/media/video/cx23885/cx23885-dvb.c
diff options
context:
space:
mode:
authorSteven Toth <stoth@hauppauge.com>2008-01-05 16:55:45 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 19:05:06 -0200
commit8c70017f5793e68ea48085a65008d713c9a85dde (patch)
treec8092f3425d9dbe1be78a19389ebd5e3fac6d6ac /drivers/media/video/cx23885/cx23885-dvb.c
parent60464da8b1ed8d7c19563f58cadb0ca990448a36 (diff)
V4L/DVB (7044): XC5000: Fix support for HVR1500Q broken by patch 1
From Zhang: This patch fixes support for the HVR1500Q which was broken when the xc5000 analog patch was added. Patch committed as-is, cleanups to follows .... Steve Signed-off-by: Chaogui Zhang <czhang1974@gmail.com> Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-dvb.c')
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c35
1 files changed, 7 insertions, 28 deletions
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 21937d5cbb12..61d75d04db8d 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -87,32 +87,6 @@ static void dvb_buf_release(struct videobuf_queue *q,
cx23885_free_buffer(q, (struct cx23885_buffer*)vb);
}
-static int cx23885_request_firmware(struct dvb_frontend *fe,
- const struct firmware **fw, char *name)
-{
- struct cx23885_tsport *port = fe->dvb->priv;
- struct cx23885_dev *dev = port->dev;
-
- dprintk(1, "%s(?,?,%s)\n", __FUNCTION__, name);
-
- return request_firmware(fw, name, &dev->pci->dev);
-}
-
-static int hauppauge_hvr1500q_tuner_reset(struct dvb_frontend *fe)
-{
- struct cx23885_tsport *port = fe->dvb->priv;
- struct cx23885_dev *dev = port->dev;
-
- dprintk(1, "%s()\n", __FUNCTION__);
-
- /* Drive the tuner into reset back back */
- cx_clear(GP0_IO, 0x00000004);
- mdelay(200);
- cx_set(GP0_IO, 0x00000004);
-
- return 0;
-}
-
static struct videobuf_queue_ops dvb_qops = {
.buf_setup = dvb_buf_setup,
.buf_prepare = dvb_buf_prepare,
@@ -182,8 +156,8 @@ static struct s5h1409_config hauppauge_hvr1500q_config = {
static struct xc5000_config hauppauge_hvr1500q_tunerconfig = {
.i2c_address = 0x61,
.if_khz = 5380,
- .request_firmware = cx23885_request_firmware,
- .tuner_reset = hauppauge_hvr1500q_tuner_reset
+ /* cannot set .video_dev here, do it before attach. */
+ .tuner_callback = cx23885_tuner_callback
};
static struct tda829x_config tda829x_no_probe = {
@@ -308,6 +282,11 @@ static int dvb_register(struct cx23885_tsport *port)
&hauppauge_hvr1500q_config,
&dev->i2c_bus[0].i2c_adap);
if (port->dvb.frontend != NULL) {
+ /* tunerconfig.video_dev must point to
+ * i2c_adap.algo_data
+ */
+ hauppauge_hvr1500q_tunerconfig.video_dev =
+ i2c_bus->i2c_adap.algo_data;
dvb_attach(xc5000_attach, port->dvb.frontend,
&i2c_bus->i2c_adap,
&hauppauge_hvr1500q_tunerconfig);