aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/saa7134/saa7134-cards.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-07-21 00:14:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-21 00:14:42 -0400
commitf894d18380e7e7ff05f6622ccb75d2881922c6e9 (patch)
treee3c11b831b68096239a49dec539a49e49c1d90b7 /drivers/media/video/saa7134/saa7134-cards.c
parentd13ff0559fea73f237a01669887d2c10e11d7662 (diff)
parentd20b27478d6ccf7c4c8de4f09db2bdbaec82a6c0 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (277 commits) V4L/DVB (8415): gspca: Infinite loop in i2c_w() of etoms. V4L/DVB (8414): videodev/cx18: fix get_index bug and error-handling lock-ups V4L/DVB (8411): videobuf-dma-contig.c: fix 64-bit build for pre-2.6.24 kernels V4L/DVB (8410): sh_mobile_ceu_camera: fix 64-bit compiler warnings V4L/DVB (8397): video: convert select VIDEO_ZORAN_ZR36060 into depends on V4L/DVB (8396): video: Fix Kbuild dependency for VIDEO_IR_I2C V4L/DVB (8395): saa7134: Fix Kbuild dependency of ir-kbd-i2c V4L/DVB (8394): ir-common: CodingStyle fix: move EXPORT_SYMBOL_GPL to their proper places V4L/DVB (8393): media/video: Fix depencencies for VIDEOBUF V4L/DVB (8392): media/Kconfig: Convert V4L1_COMPAT select into "depends on" V4L/DVB (8390): videodev: add comment and remove magic number. V4L/DVB (8389): videodev: simplify get_index() V4L/DVB (8387): Some cosmetic changes V4L/DVB (8381): ov7670: fix compile warnings V4L/DVB (8380): saa7115: use saa7115_auto instead of saa711x as the autodetect driver name. V4L/DVB (8379): saa7127: Make device detection optional V4L/DVB (8378): cx18: move cx18_av_vbi_setup to av-core.c and rename to cx18_av_std_setup V4L/DVB (8377): ivtv/cx18: ensure the default control values are correct V4L/DVB (8376): cx25840: move cx25840_vbi_setup to core.c and rename to cx25840_std_setup V4L/DVB (8374): gspca: No conflict of 0c45:6011 with the sn9c102 driver. ...
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-cards.c')
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c181
1 files changed, 170 insertions, 11 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 2618cfa592e7..6893f998d292 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -1287,6 +1287,22 @@ struct saa7134_board saa7134_boards[] = {
1287 .vmux = 8, 1287 .vmux = 8,
1288 }}, 1288 }},
1289 }, 1289 },
1290 [SAA7134_BOARD_AVERMEDIA_M103] = {
1291 /* Massimo Piccioni <dafastidio@libero.it> */
1292 .name = "AVerMedia MiniPCI DVB-T Hybrid M103",
1293 .audio_clock = 0x187de7,
1294 .tuner_type = TUNER_XC2028,
1295 .radio_type = UNSET,
1296 .tuner_addr = ADDR_UNSET,
1297 .radio_addr = ADDR_UNSET,
1298 .mpeg = SAA7134_MPEG_DVB,
1299 .inputs = {{
1300 .name = name_tv,
1301 .vmux = 1,
1302 .amux = TV,
1303 .tv = 1,
1304 } },
1305 },
1290 [SAA7134_BOARD_NOVAC_PRIMETV7133] = { 1306 [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1291 /* toshii@netbsd.org */ 1307 /* toshii@netbsd.org */
1292 .name = "Noval Prime TV 7133", 1308 .name = "Noval Prime TV 7133",
@@ -3503,6 +3519,39 @@ struct saa7134_board saa7134_boards[] = {
3503 .amux = TV, 3519 .amux = TV,
3504 .gpio = 0x0200000, 3520 .gpio = 0x0200000,
3505 }, 3521 },
3522 },
3523 [SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3524 .name = "ASUSTeK P7131 Analog",
3525 .audio_clock = 0x00187de7,
3526 .tuner_type = TUNER_PHILIPS_TDA8290,
3527 .radio_type = UNSET,
3528 .tuner_addr = ADDR_UNSET,
3529 .radio_addr = ADDR_UNSET,
3530 .gpiomask = 1 << 21,
3531 .inputs = {{
3532 .name = name_tv,
3533 .vmux = 1,
3534 .amux = TV,
3535 .tv = 1,
3536 .gpio = 0x0000000,
3537 }, {
3538 .name = name_comp1,
3539 .vmux = 3,
3540 .amux = LINE2,
3541 }, {
3542 .name = name_comp2,
3543 .vmux = 0,
3544 .amux = LINE2,
3545 }, {
3546 .name = name_svideo,
3547 .vmux = 8,
3548 .amux = LINE2,
3549 } },
3550 .radio = {
3551 .name = name_radio,
3552 .amux = TV,
3553 .gpio = 0x0200000,
3554 },
3506 }, 3555 },
3507 [SAA7134_BOARD_SABRENT_TV_PCB05] = { 3556 [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3508 .name = "Sabrent PCMCIA TV-PCB05", 3557 .name = "Sabrent PCMCIA TV-PCB05",
@@ -3940,32 +3989,111 @@ struct saa7134_board saa7134_boards[] = {
3940 [SAA7134_BOARD_BEHOLD_M6] = { 3989 [SAA7134_BOARD_BEHOLD_M6] = {
3941 /* Igor Kuznetsov <igk@igk.ru> */ 3990 /* Igor Kuznetsov <igk@igk.ru> */
3942 /* Andrey Melnikoff <temnota@kmv.ru> */ 3991 /* Andrey Melnikoff <temnota@kmv.ru> */
3943 .name = "Beholder BeholdTV M6 / BeholdTV M6 Extra", 3992 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
3993 .name = "Beholder BeholdTV M6",
3944 .audio_clock = 0x00187de7, 3994 .audio_clock = 0x00187de7,
3945 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3995 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3946 .radio_type = UNSET, 3996 .radio_type = UNSET,
3947 .tuner_addr = ADDR_UNSET, 3997 .tuner_addr = ADDR_UNSET,
3948 .radio_addr = ADDR_UNSET, 3998 .radio_addr = ADDR_UNSET,
3949 .tda9887_conf = TDA9887_PRESENT, 3999 .tda9887_conf = TDA9887_PRESENT,
3950 .inputs = {{ 4000 .inputs = { {
3951 .name = name_tv, 4001 .name = name_tv,
3952 .vmux = 3, 4002 .vmux = 3,
3953 .amux = TV, 4003 .amux = TV,
3954 .tv = 1, 4004 .tv = 1,
3955 },{ 4005 }, {
3956 .name = name_comp1, 4006 .name = name_comp1,
3957 .vmux = 1, 4007 .vmux = 1,
3958 .amux = LINE1, 4008 .amux = LINE1,
3959 },{ 4009 }, {
3960 .name = name_svideo, 4010 .name = name_svideo,
3961 .vmux = 8, 4011 .vmux = 8,
3962 .amux = LINE1, 4012 .amux = LINE1,
3963 }}, 4013 } },
3964 .radio = { 4014 .radio = {
3965 .name = name_radio, 4015 .name = name_radio,
3966 .amux = LINE2, 4016 .amux = LINE2,
3967 }, 4017 },
3968 .mpeg = SAA7134_MPEG_EMPRESS, 4018 .mpeg = SAA7134_MPEG_EMPRESS,
4019 .video_out = CCIR656,
4020 .vid_port_opts = (SET_T_CODE_POLARITY_NON_INVERTED |
4021 SET_CLOCK_NOT_DELAYED |
4022 SET_CLOCK_INVERTED |
4023 SET_VSYNC_OFF),
4024 },
4025 [SAA7134_BOARD_BEHOLD_M63] = {
4026 /* Igor Kuznetsov <igk@igk.ru> */
4027 /* Andrey Melnikoff <temnota@kmv.ru> */
4028 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4029 .name = "Beholder BeholdTV M63",
4030 .audio_clock = 0x00187de7,
4031 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4032 .radio_type = UNSET,
4033 .tuner_addr = ADDR_UNSET,
4034 .radio_addr = ADDR_UNSET,
4035 .tda9887_conf = TDA9887_PRESENT,
4036 .inputs = { {
4037 .name = name_tv,
4038 .vmux = 3,
4039 .amux = TV,
4040 .tv = 1,
4041 }, {
4042 .name = name_comp1,
4043 .vmux = 1,
4044 .amux = LINE1,
4045 }, {
4046 .name = name_svideo,
4047 .vmux = 8,
4048 .amux = LINE1,
4049 } },
4050 .radio = {
4051 .name = name_radio,
4052 .amux = LINE2,
4053 },
4054 .mpeg = SAA7134_MPEG_EMPRESS,
4055 .video_out = CCIR656,
4056 .vid_port_opts = (SET_T_CODE_POLARITY_NON_INVERTED |
4057 SET_CLOCK_NOT_DELAYED |
4058 SET_CLOCK_INVERTED |
4059 SET_VSYNC_OFF),
4060 },
4061 [SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4062 /* Igor Kuznetsov <igk@igk.ru> */
4063 /* Andrey Melnikoff <temnota@kmv.ru> */
4064 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4065 .name = "Beholder BeholdTV M6 Extra",
4066 .audio_clock = 0x00187de7,
4067 /* FIXME: Must be PHILIPS_FM1216ME_MK5*/
4068 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4069 .radio_type = UNSET,
4070 .tuner_addr = ADDR_UNSET,
4071 .radio_addr = ADDR_UNSET,
4072 .tda9887_conf = TDA9887_PRESENT,
4073 .inputs = { {
4074 .name = name_tv,
4075 .vmux = 3,
4076 .amux = TV,
4077 .tv = 1,
4078 }, {
4079 .name = name_comp1,
4080 .vmux = 1,
4081 .amux = LINE1,
4082 }, {
4083 .name = name_svideo,
4084 .vmux = 8,
4085 .amux = LINE1,
4086 } },
4087 .radio = {
4088 .name = name_radio,
4089 .amux = LINE2,
4090 },
4091 .mpeg = SAA7134_MPEG_EMPRESS,
4092 .video_out = CCIR656,
4093 .vid_port_opts = (SET_T_CODE_POLARITY_NON_INVERTED |
4094 SET_CLOCK_NOT_DELAYED |
4095 SET_CLOCK_INVERTED |
4096 SET_VSYNC_OFF),
3969 }, 4097 },
3970 [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = { 4098 [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
3971 .name = "Twinhan Hybrid DTV-DVB 3056 PCI", 4099 .name = "Twinhan Hybrid DTV-DVB 3056 PCI",
@@ -4121,9 +4249,9 @@ struct saa7134_board saa7134_boards[] = {
4121 .amux = TV, 4249 .amux = TV,
4122 .tv = 1, 4250 .tv = 1,
4123 }, { 4251 }, {
4124 .name = name_comp1, 4252 .name = name_comp,
4125 .vmux = 3, 4253 .vmux = 0,
4126 .amux = LINE2, 4254 .amux = LINE1,
4127 }, { 4255 }, {
4128 .name = name_svideo, 4256 .name = name_svideo,
4129 .vmux = 8, 4257 .vmux = 8,
@@ -4141,6 +4269,7 @@ struct saa7134_board saa7134_boards[] = {
4141 .radio_type = UNSET, 4269 .radio_type = UNSET,
4142 .tuner_addr = ADDR_UNSET, 4270 .tuner_addr = ADDR_UNSET,
4143 .radio_addr = ADDR_UNSET, 4271 .radio_addr = ADDR_UNSET,
4272 .mpeg = SAA7134_MPEG_DVB,
4144 .inputs = {{ 4273 .inputs = {{
4145 .name = name_tv, 4274 .name = name_tv,
4146 .vmux = 1, 4275 .vmux = 1,
@@ -4150,6 +4279,10 @@ struct saa7134_board saa7134_boards[] = {
4150 .name = name_svideo, 4279 .name = name_svideo,
4151 .vmux = 8, 4280 .vmux = 8,
4152 .amux = LINE1, 4281 .amux = LINE1,
4282 }, {
4283 .name = name_comp,
4284 .vmux = 0,
4285 .amux = LINE1,
4153 } }, 4286 } },
4154 .radio = { 4287 .radio = {
4155 .name = name_radio, 4288 .name = name_radio,
@@ -4163,7 +4296,6 @@ struct saa7134_board saa7134_boards[] = {
4163 .radio_type = UNSET, 4296 .radio_type = UNSET,
4164 .tuner_addr = ADDR_UNSET, 4297 .tuner_addr = ADDR_UNSET,
4165 .radio_addr = ADDR_UNSET, 4298 .radio_addr = ADDR_UNSET,
4166 .mpeg = SAA7134_MPEG_DVB,
4167 .inputs = {{ 4299 .inputs = {{
4168 .name = name_tv, 4300 .name = name_tv,
4169 .vmux = 1, 4301 .vmux = 1,
@@ -5226,13 +5358,13 @@ struct pci_device_id saa7134_pci_tbl[] = {
5226 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, 5358 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5227 .subvendor = 0x5ace, 5359 .subvendor = 0x5ace,
5228 .subdevice = 0x6193, 5360 .subdevice = 0x6193,
5229 .driver_data = SAA7134_BOARD_BEHOLD_M6, 5361 .driver_data = SAA7134_BOARD_BEHOLD_M6_EXTRA,
5230 }, { 5362 }, {
5231 .vendor = PCI_VENDOR_ID_PHILIPS, 5363 .vendor = PCI_VENDOR_ID_PHILIPS,
5232 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, 5364 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5233 .subvendor = 0x5ace, 5365 .subvendor = 0x5ace,
5234 .subdevice = 0x6191, 5366 .subdevice = 0x6191,
5235 .driver_data = SAA7134_BOARD_BEHOLD_M6, 5367 .driver_data = SAA7134_BOARD_BEHOLD_M63,
5236 },{ 5368 },{
5237 .vendor = PCI_VENDOR_ID_PHILIPS, 5369 .vendor = PCI_VENDOR_ID_PHILIPS,
5238 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, 5370 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
@@ -5284,10 +5416,22 @@ struct pci_device_id saa7134_pci_tbl[] = {
5284 }, { 5416 }, {
5285 .vendor = PCI_VENDOR_ID_PHILIPS, 5417 .vendor = PCI_VENDOR_ID_PHILIPS,
5286 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, 5418 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5419 .subvendor = 0x5169,
5420 .subdevice = 0x1502,
5421 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5422 }, {
5423 .vendor = PCI_VENDOR_ID_PHILIPS,
5424 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5287 .subvendor = 0x5ace, 5425 .subvendor = 0x5ace,
5288 .subdevice = 0x6290, 5426 .subdevice = 0x6290,
5289 .driver_data = SAA7134_BOARD_BEHOLD_H6, 5427 .driver_data = SAA7134_BOARD_BEHOLD_H6,
5290 }, { 5428 }, {
5429 .vendor = PCI_VENDOR_ID_PHILIPS,
5430 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5431 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5432 .subdevice = 0xf636,
5433 .driver_data = SAA7134_BOARD_AVERMEDIA_M103,
5434 }, {
5291 /* --- boards without eeprom + subsystem ID --- */ 5435 /* --- boards without eeprom + subsystem ID --- */
5292 .vendor = PCI_VENDOR_ID_PHILIPS, 5436 .vendor = PCI_VENDOR_ID_PHILIPS,
5293 .device = PCI_DEVICE_ID_PHILIPS_SAA7134, 5437 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -5352,6 +5496,7 @@ static int saa7134_xc2028_callback(struct saa7134_dev *dev,
5352 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000); 5496 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
5353 switch (dev->board) { 5497 switch (dev->board) {
5354 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 5498 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5499 case SAA7134_BOARD_AVERMEDIA_M103:
5355 saa7134_set_gpio(dev, 23, 0); 5500 saa7134_set_gpio(dev, 23, 0);
5356 msleep(10); 5501 msleep(10);
5357 saa7134_set_gpio(dev, 23, 1); 5502 saa7134_set_gpio(dev, 23, 1);
@@ -5493,6 +5638,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5493 case SAA7134_BOARD_FLYDVBT_LR301: 5638 case SAA7134_BOARD_FLYDVBT_LR301:
5494 case SAA7134_BOARD_ASUSTeK_P7131_DUAL: 5639 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
5495 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: 5640 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
5641 case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
5496 case SAA7134_BOARD_FLYDVBTDUO: 5642 case SAA7134_BOARD_FLYDVBTDUO:
5497 case SAA7134_BOARD_PROTEUS_2309: 5643 case SAA7134_BOARD_PROTEUS_2309:
5498 case SAA7134_BOARD_AVERMEDIA_A16AR: 5644 case SAA7134_BOARD_AVERMEDIA_A16AR:
@@ -5560,6 +5706,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5560 msleep(10); 5706 msleep(10);
5561 break; 5707 break;
5562 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 5708 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5709 case SAA7134_BOARD_AVERMEDIA_M103:
5563 saa7134_set_gpio(dev, 23, 0); 5710 saa7134_set_gpio(dev, 23, 0);
5564 msleep(10); 5711 msleep(10);
5565 saa7134_set_gpio(dev, 23, 1); 5712 saa7134_set_gpio(dev, 23, 1);
@@ -5601,6 +5748,8 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5601 case SAA7134_BOARD_HAUPPAUGE_HVR1110: 5748 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
5602 case SAA7134_BOARD_BEHOLD_607_9FM: 5749 case SAA7134_BOARD_BEHOLD_607_9FM:
5603 case SAA7134_BOARD_BEHOLD_M6: 5750 case SAA7134_BOARD_BEHOLD_M6:
5751 case SAA7134_BOARD_BEHOLD_M63:
5752 case SAA7134_BOARD_BEHOLD_M6_EXTRA:
5604 dev->has_remote = SAA7134_REMOTE_I2C; 5753 dev->has_remote = SAA7134_REMOTE_I2C;
5605 break; 5754 break;
5606 case SAA7134_BOARD_AVERMEDIA_A169_B: 5755 case SAA7134_BOARD_AVERMEDIA_A169_B:
@@ -5683,6 +5832,7 @@ static void saa7134_tuner_setup(struct saa7134_dev *dev)
5683 switch (dev->board) { 5832 switch (dev->board) {
5684 case SAA7134_BOARD_AVERMEDIA_A16D: 5833 case SAA7134_BOARD_AVERMEDIA_A16D:
5685 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 5834 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5835 case SAA7134_BOARD_AVERMEDIA_M103:
5686 ctl.demod = XC3028_FE_ZARLINK456; 5836 ctl.demod = XC3028_FE_ZARLINK456;
5687 break; 5837 break;
5688 default: 5838 default:
@@ -5825,6 +5975,15 @@ int saa7134_board_init2(struct saa7134_dev *dev)
5825 i2c_transfer(&dev->i2c_adap, &msg, 1); 5975 i2c_transfer(&dev->i2c_adap, &msg, 1);
5826 break; 5976 break;
5827 } 5977 }
5978 case SAA7134_BOARD_ASUSTeK_TVFM7135:
5979 /* The card below is detected as card=53, but is different */
5980 if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
5981 dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
5982 printk(KERN_INFO "%s: P7131 analog only, using "
5983 "entry of %s\n",
5984 dev->name, saa7134_boards[dev->board].name);
5985 }
5986 break;
5828 case SAA7134_BOARD_HAUPPAUGE_HVR1110: 5987 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
5829 hauppauge_eeprom(dev, dev->eedata+0x80); 5988 hauppauge_eeprom(dev, dev->eedata+0x80);
5830 /* break intentionally omitted */ 5989 /* break intentionally omitted */