diff options
author | Petr Baudis <pasky@ucw.cz> | 2006-09-26 15:53:53 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-10-03 14:14:11 -0400 |
commit | 515c208db869459e4f2a58021df5aecf21c9a19f (patch) | |
tree | bc8b79a98d735b997fdc4be7804f268637848bca | |
parent | cc7093df3cf7ace678284c0ad3a6cfb3a1d5efd9 (diff) |
V4L/DVB (4671): Support for SAA7134-based AVerTV Hybrid A16AR
This adds support for a hybrid PAL/DVB/FM card. Unfortunately I tested
only the DVB since I don't have any proper antenna available and I can
receive even the DVB just barely so; I can hear noise in the FM part but I
couldn't catch any station, then again I don't have an FM antenna either.
The PAL/FM and IR control data are based on what I harvested on the 'net.
Perhaps I or someone else will fix them if they turn out to be wrong.
Signed-off-by: Petr Baudis <pasky@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 1 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 36 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 1 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 1 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
5 files changed, 40 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 94cf695b1378..6fb82ac3bef0 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -97,3 +97,4 @@ | |||
97 | 96 -> Medion Md8800 Quadro [16be:0007,16be:0008] | 97 | 96 -> Medion Md8800 Quadro [16be:0007,16be:0008] |
98 | 97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300] | 98 | 97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300] |
99 | 98 -> Proteus Pro 2309 [0919:2003] | 99 | 98 -> Proteus Pro 2309 [0919:2003] |
100 | 99 -> AVerMedia TV Hybrid A16AR [1461:2c00] | ||
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index aa1db509f3d4..fe3c83ca3de3 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2965,6 +2965,35 @@ struct saa7134_board saa7134_boards[] = { | |||
2965 | .amux = LINE1, | 2965 | .amux = LINE1, |
2966 | }, | 2966 | }, |
2967 | }, | 2967 | }, |
2968 | [SAA7134_BOARD_AVERMEDIA_A16AR] = { | ||
2969 | /* Petr Baudis <pasky@ucw.cz> */ | ||
2970 | .name = "AVerMedia TV Hybrid A16AR", | ||
2971 | .audio_clock = 0x187de7, | ||
2972 | .tuner_type = TUNER_PHILIPS_TDA8290, /* untested */ | ||
2973 | .radio_type = TUNER_TEA5767, /* untested */ | ||
2974 | .tuner_addr = ADDR_UNSET, | ||
2975 | .radio_addr = ADDR_UNSET, | ||
2976 | .tda9887_conf = TDA9887_PRESENT, | ||
2977 | .mpeg = SAA7134_MPEG_DVB, | ||
2978 | .inputs = {{ | ||
2979 | .name = name_tv, | ||
2980 | .vmux = 1, | ||
2981 | .amux = TV, | ||
2982 | .tv = 1, | ||
2983 | },{ | ||
2984 | .name = name_comp1, | ||
2985 | .vmux = 3, | ||
2986 | .amux = LINE2, | ||
2987 | },{ | ||
2988 | .name = name_svideo, | ||
2989 | .vmux = 8, | ||
2990 | .amux = LINE1, | ||
2991 | }}, | ||
2992 | .radio = { | ||
2993 | .name = name_radio, | ||
2994 | .amux = LINE1, | ||
2995 | }, | ||
2996 | }, | ||
2968 | }; | 2997 | }; |
2969 | 2998 | ||
2970 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2999 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -3562,6 +3591,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
3562 | .subdevice = 0x2003, | 3591 | .subdevice = 0x2003, |
3563 | .driver_data = SAA7134_BOARD_PROTEUS_2309, | 3592 | .driver_data = SAA7134_BOARD_PROTEUS_2309, |
3564 | },{ | 3593 | },{ |
3594 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3595 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3596 | .subvendor = 0x1461, | ||
3597 | .subdevice = 0x2c00, | ||
3598 | .driver_data = SAA7134_BOARD_AVERMEDIA_A16AR, | ||
3599 | },{ | ||
3565 | /* --- boards without eeprom + subsystem ID --- */ | 3600 | /* --- boards without eeprom + subsystem ID --- */ |
3566 | .vendor = PCI_VENDOR_ID_PHILIPS, | 3601 | .vendor = PCI_VENDOR_ID_PHILIPS, |
3567 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 3602 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -3703,6 +3738,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3703 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | 3738 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); |
3704 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00); | 3739 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00); |
3705 | break; | 3740 | break; |
3741 | case SAA7134_BOARD_AVERMEDIA_A16AR: | ||
3706 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: | 3742 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: |
3707 | /* power-up tuner chip */ | 3743 | /* power-up tuner chip */ |
3708 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); | 3744 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index b6881541e704..fb741fa465a5 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -1055,6 +1055,7 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1055 | } | 1055 | } |
1056 | break; | 1056 | break; |
1057 | case SAA7134_BOARD_AVERMEDIA_777: | 1057 | case SAA7134_BOARD_AVERMEDIA_777: |
1058 | case SAA7134_BOARD_AVERMEDIA_A16AR: | ||
1058 | printk("%s: avertv 777 dvb setup\n",dev->name); | 1059 | printk("%s: avertv 777 dvb setup\n",dev->name); |
1059 | dev->dvb.frontend = dvb_attach(mt352_attach, &avermedia_777, | 1060 | dev->dvb.frontend = dvb_attach(mt352_attach, &avermedia_777, |
1060 | &dev->i2c_adap); | 1061 | &dev->i2c_adap); |
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index f7ea857d5d73..ff5991136f4e 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
@@ -185,6 +185,7 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
185 | case SAA7134_BOARD_AVERMEDIA_STUDIO_305: | 185 | case SAA7134_BOARD_AVERMEDIA_STUDIO_305: |
186 | case SAA7134_BOARD_AVERMEDIA_STUDIO_307: | 186 | case SAA7134_BOARD_AVERMEDIA_STUDIO_307: |
187 | case SAA7134_BOARD_AVERMEDIA_GO_007_FM: | 187 | case SAA7134_BOARD_AVERMEDIA_GO_007_FM: |
188 | case SAA7134_BOARD_AVERMEDIA_A16AR: | ||
188 | ir_codes = ir_codes_avermedia; | 189 | ir_codes = ir_codes_avermedia; |
189 | mask_keycode = 0x0007C8; | 190 | mask_keycode = 0x0007C8; |
190 | mask_keydown = 0x000010; | 191 | mask_keydown = 0x000010; |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 7db7b9705953..701a90942108 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -226,6 +226,7 @@ struct saa7134_format { | |||
226 | #define SAA7134_BOARD_MEDION_MD8800_QUADRO 96 | 226 | #define SAA7134_BOARD_MEDION_MD8800_QUADRO 96 |
227 | #define SAA7134_BOARD_FLYDVBS_LR300 97 | 227 | #define SAA7134_BOARD_FLYDVBS_LR300 97 |
228 | #define SAA7134_BOARD_PROTEUS_2309 98 | 228 | #define SAA7134_BOARD_PROTEUS_2309 98 |
229 | #define SAA7134_BOARD_AVERMEDIA_A16AR 99 | ||
229 | 230 | ||
230 | #define SAA7134_MAXBOARDS 8 | 231 | #define SAA7134_MAXBOARDS 8 |
231 | #define SAA7134_INPUT_MAX 8 | 232 | #define SAA7134_INPUT_MAX 8 |