From 2659e468a38d7baa758baa5e59529e48eb8930c9 Mon Sep 17 00:00:00 2001 From: Matthias Schwarzott Date: Sun, 29 Mar 2009 16:36:02 -0300 Subject: [PATCH] V4L/DVB (11386): saa7134: Add analog RF tuner support for Avermedia A700 DVB-S Hybrid+FM card Thanks to panagonov for requesting support and testing patches. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/saa7134/saa7134-cards.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index e2ffc6756dcc..fdb19449d269 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -4508,12 +4508,17 @@ struct saa7134_board saa7134_boards[] = { /* Matthias Schwarzott */ .name = "Avermedia DVB-S Hybrid+FM A700", .audio_clock = 0x00187de7, - .tuner_type = TUNER_ABSENT, /* TUNER_XC2028 */ + .tuner_type = TUNER_XC2028, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, .mpeg = SAA7134_MPEG_DVB, .inputs = { { + .name = name_tv, + .vmux = 4, + .amux = TV, + .tv = 1, + }, { .name = name_comp, .vmux = 1, .amux = LINE1, @@ -4522,6 +4527,10 @@ struct saa7134_board saa7134_boards[] = { .vmux = 6, .amux = LINE1, } }, + .radio = { + .name = name_radio, + .amux = TV, + }, }, [SAA7134_BOARD_BEHOLD_H6] = { /* Igor Kuznetsov */ @@ -5914,6 +5923,11 @@ static int saa7134_xc2028_callback(struct saa7134_dev *dev, msleep(10); saa7134_set_gpio(dev, 21, 1); break; + case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: + saa7134_set_gpio(dev, 18, 0); + msleep(10); + saa7134_set_gpio(dev, 18, 1); + break; } return 0; } @@ -6259,10 +6273,6 @@ int saa7134_board_init1(struct saa7134_dev *dev) saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); break; case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: - printk("%s: %s: hybrid analog/dvb card\n" - "%s: Sorry, of the analog inputs, only analog s-video and composite " - "are supported for now.\n", - dev->name, card(dev).name, dev->name); case SAA7134_BOARD_AVERMEDIA_A700_PRO: /* write windows gpio values */ saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); @@ -6326,6 +6336,7 @@ static void saa7134_tuner_setup(struct saa7134_dev *dev) case SAA7134_BOARD_AVERMEDIA_A16D: case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: case SAA7134_BOARD_AVERMEDIA_M103: + case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: ctl.demod = XC3028_FE_ZARLINK456; break; default: -- 2.30.2