From 8c70017f5793e68ea48085a65008d713c9a85dde Mon Sep 17 00:00:00 2001 From: Steven Toth Date: Sat, 5 Jan 2008 16:55:45 -0300 Subject: 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 Signed-off-by: Steven Toth Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/cx23885/cx23885-cards.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'drivers/media/video/cx23885/cx23885-cards.c') diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index c2d5a4d7228..ee3f1b09914 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c @@ -244,6 +244,34 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data) dev->name, tv.model); } +/* Tuner callback function for cx23885 boards. Currently only needed + * for HVR1500Q, which has an xc5000 tuner. + */ +int cx23885_tuner_callback(void *i2c_bus, int command, int arg) +{ + struct cx23885_i2c *bus = i2c_bus; + struct cx23885_dev *dev = bus->dev; + + switch(dev->board) { + case CX23885_BOARD_HAUPPAUGE_HVR1500Q: + if(command == 0) { /* Tuner Reset Command from xc5000 */ + /* Drive the tuner into reset and out */ + cx_clear(GP0_IO, 0x00000004); + mdelay(200); + cx_set(GP0_IO, 0x00000004); + return 0; + } + else { + printk(KERN_ERR + "%s(): Unknow command.\n", __FUNCTION__); + return -EINVAL; + } + break; + } + + return 0; /* Should never be here */ +} +EXPORT_SYMBOL(cx23885_tuner_callback); void cx23885_gpio_setup(struct cx23885_dev *dev) { switch(dev->board) { -- cgit v1.2.3