V4L/DVB (11386): saa7134: Add analog RF tuner support for Avermedia A700 DVB-S Hybrid+FM card

Thanks to panagonov <panagonov@mail.bg> for requesting support and
testing patches.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Matthias Schwarzott 2009-03-29 16:36:02 -03:00 committed by Mauro Carvalho Chehab
parent 6c31e59836
commit 2659e468a3

View file

@ -4508,12 +4508,17 @@ struct saa7134_board saa7134_boards[] = {
/* Matthias Schwarzott <zzam@gentoo.org> */ /* Matthias Schwarzott <zzam@gentoo.org> */
.name = "Avermedia DVB-S Hybrid+FM A700", .name = "Avermedia DVB-S Hybrid+FM A700",
.audio_clock = 0x00187de7, .audio_clock = 0x00187de7,
.tuner_type = TUNER_ABSENT, /* TUNER_XC2028 */ .tuner_type = TUNER_XC2028,
.radio_type = UNSET, .radio_type = UNSET,
.tuner_addr = ADDR_UNSET, .tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET,
.mpeg = SAA7134_MPEG_DVB, .mpeg = SAA7134_MPEG_DVB,
.inputs = { { .inputs = { {
.name = name_tv,
.vmux = 4,
.amux = TV,
.tv = 1,
}, {
.name = name_comp, .name = name_comp,
.vmux = 1, .vmux = 1,
.amux = LINE1, .amux = LINE1,
@ -4522,6 +4527,10 @@ struct saa7134_board saa7134_boards[] = {
.vmux = 6, .vmux = 6,
.amux = LINE1, .amux = LINE1,
} }, } },
.radio = {
.name = name_radio,
.amux = TV,
},
}, },
[SAA7134_BOARD_BEHOLD_H6] = { [SAA7134_BOARD_BEHOLD_H6] = {
/* Igor Kuznetsov <igk@igk.ru> */ /* Igor Kuznetsov <igk@igk.ru> */
@ -5914,6 +5923,11 @@ static int saa7134_xc2028_callback(struct saa7134_dev *dev,
msleep(10); msleep(10);
saa7134_set_gpio(dev, 21, 1); saa7134_set_gpio(dev, 21, 1);
break; break;
case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
saa7134_set_gpio(dev, 18, 0);
msleep(10);
saa7134_set_gpio(dev, 18, 1);
break;
} }
return 0; return 0;
} }
@ -6259,10 +6273,6 @@ int saa7134_board_init1(struct saa7134_dev *dev)
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
break; break;
case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: 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: case SAA7134_BOARD_AVERMEDIA_A700_PRO:
/* write windows gpio values */ /* write windows gpio values */
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); 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_A16D:
case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
case SAA7134_BOARD_AVERMEDIA_M103: case SAA7134_BOARD_AVERMEDIA_M103:
case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
ctl.demod = XC3028_FE_ZARLINK456; ctl.demod = XC3028_FE_ZARLINK456;
break; break;
default: default: