aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOldřich Jedlička <oldium.pro@seznam.cz>2009-04-14 14:47:17 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 17:20:42 -0400
commitd46de9d2364cad55caddc04632707f5739b4cd87 (patch)
tree69110b559a1e0a8b2de5bfa66e6ad30daab5687e
parentdf0dbbe24053b7c669f63341d3d3f090560c3217 (diff)
V4L/DVB (11567): saa7134: Added support for AVerMedia Cardbus Plus
Here comes the full support for AVerMedia Cardbus Plus (E501R) - including remote control. TV, Composite and FM radio tested, I don't have S-Video to test. I've figured out that the radio works only with xtal frequency 13MHz. [mchehab@redhat.com: CodingStyle fixes] Signed-off-by: Oldřich Jedlička <oldium.pro@seznam.cz> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/video4linux/CARDLIST.saa71341
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c51
-rw-r--r--drivers/media/video/saa7134/saa7134.h1
3 files changed, 53 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index 8a15e2b837fc..fb3098d56d85 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -156,3 +156,4 @@
156155 -> Hauppauge WinTV-HVR1120 ATSC/QAM-Hybrid [0070:6706,0070:6708] 156155 -> Hauppauge WinTV-HVR1120 ATSC/QAM-Hybrid [0070:6706,0070:6708]
157156 -> Hauppauge WinTV-HVR1110r3 [0070:6707,0070:6709,0070:670a] 157156 -> Hauppauge WinTV-HVR1110r3 [0070:6707,0070:6709,0070:670a]
158157 -> Avermedia AVerTV Studio 507UA [1461:a11b] 158157 -> Avermedia AVerTV Studio 507UA [1461:a11b]
159158 -> AVerMedia Cardbus TV/Radio (E501R) [1461:b7e9]
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index eab4782861fe..e1c455827b8d 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -1669,6 +1669,39 @@ struct saa7134_board saa7134_boards[] = {
1669 .amux = LINE1, 1669 .amux = LINE1,
1670 }, 1670 },
1671 }, 1671 },
1672 [SAA7134_BOARD_AVERMEDIA_CARDBUS_501] = {
1673 /* Oldrich Jedlicka <oldium.pro@seznam.cz> */
1674 .name = "AVerMedia Cardbus TV/Radio (E501R)",
1675 .audio_clock = 0x187de7,
1676 .tuner_type = TUNER_ALPS_TSBE5_PAL,
1677 .radio_type = TUNER_TEA5767,
1678 .tuner_addr = 0x61,
1679 .radio_addr = 0x60,
1680 .tda9887_conf = TDA9887_PRESENT,
1681 .gpiomask = 0x08000000,
1682 .inputs = { {
1683 .name = name_tv,
1684 .vmux = 1,
1685 .amux = TV,
1686 .tv = 1,
1687 .gpio = 0x08000000,
1688 }, {
1689 .name = name_comp1,
1690 .vmux = 3,
1691 .amux = LINE1,
1692 .gpio = 0x08000000,
1693 }, {
1694 .name = name_svideo,
1695 .vmux = 8,
1696 .amux = LINE1,
1697 .gpio = 0x08000000,
1698 } },
1699 .radio = {
1700 .name = name_radio,
1701 .amux = LINE2,
1702 .gpio = 0x00000000,
1703 },
1704 },
1672 [SAA7134_BOARD_CINERGY400_CARDBUS] = { 1705 [SAA7134_BOARD_CINERGY400_CARDBUS] = {
1673 .name = "Terratec Cinergy 400 mobile", 1706 .name = "Terratec Cinergy 400 mobile",
1674 .audio_clock = 0x187de7, 1707 .audio_clock = 0x187de7,
@@ -5065,6 +5098,13 @@ struct pci_device_id saa7134_pci_tbl[] = {
5065 .subdevice = 0xd6ee, 5098 .subdevice = 0xd6ee,
5066 .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS, 5099 .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS,
5067 },{ 5100 },{
5101 /* AVerMedia CardBus */
5102 .vendor = PCI_VENDOR_ID_PHILIPS,
5103 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5104 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5105 .subdevice = 0xb7e9,
5106 .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS_501,
5107 }, {
5068 /* TransGear 3000TV */ 5108 /* TransGear 3000TV */
5069 .vendor = PCI_VENDOR_ID_PHILIPS, 5109 .vendor = PCI_VENDOR_ID_PHILIPS,
5070 .device = PCI_DEVICE_ID_PHILIPS_SAA7130, 5110 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
@@ -6240,6 +6280,16 @@ int saa7134_board_init1(struct saa7134_dev *dev)
6240 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); 6280 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
6241 msleep(10); 6281 msleep(10);
6242 break; 6282 break;
6283 case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
6284 /* power-down tuner chip */
6285 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08400000, 0x08400000);
6286 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0);
6287 msleep(10);
6288 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08400000, 0x08400000);
6289 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0x08400000);
6290 msleep(10);
6291 dev->has_remote = SAA7134_REMOTE_I2C;
6292 break;
6243 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 6293 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
6244 saa7134_set_gpio(dev, 23, 0); 6294 saa7134_set_gpio(dev, 23, 0);
6245 msleep(10); 6295 msleep(10);
@@ -6679,6 +6729,7 @@ int saa7134_board_init2(struct saa7134_dev *dev)
6679 6729
6680 switch (dev->board) { 6730 switch (dev->board) {
6681 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM: 6731 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
6732 case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
6682 { 6733 {
6683 struct v4l2_priv_tun_config tea5767_cfg; 6734 struct v4l2_priv_tun_config tea5767_cfg;
6684 struct tea5767_ctrl ctl; 6735 struct tea5767_ctrl ctl;
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index 8d251db3a71a..a8ac046b6ebe 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -281,6 +281,7 @@ struct saa7134_format {
281#define SAA7134_BOARD_HAUPPAUGE_HVR1120 155 281#define SAA7134_BOARD_HAUPPAUGE_HVR1120 155
282#define SAA7134_BOARD_HAUPPAUGE_HVR1110R3 156 282#define SAA7134_BOARD_HAUPPAUGE_HVR1110R3 156
283#define SAA7134_BOARD_AVERMEDIA_STUDIO_507UA 157 283#define SAA7134_BOARD_AVERMEDIA_STUDIO_507UA 157
284#define SAA7134_BOARD_AVERMEDIA_CARDBUS_501 158
284 285
285#define SAA7134_MAXBOARDS 32 286#define SAA7134_MAXBOARDS 32
286#define SAA7134_INPUT_MAX 8 287#define SAA7134_INPUT_MAX 8