Commit 9c91738d authored by GEORGE's avatar GEORGE Committed by Mauro Carvalho Chehab

[media] saa7134: Add support for Snazio TvPVR PRO

This board has PCI ID: 1779:13cf

[mchehab@osg.samsung.com: Make scripts/checkpatch.pl happy]
Signed-off-by: default avatarPojar George <geoubuntu@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 174ced21
...@@ -194,3 +194,4 @@ ...@@ -194,3 +194,4 @@
193 -> WIS Voyager or compatible [1905:7007] 193 -> WIS Voyager or compatible [1905:7007]
194 -> AverMedia AverTV/505 [1461:a10a] 194 -> AverMedia AverTV/505 [1461:a10a]
195 -> Leadtek Winfast TV2100 FM [107d:6f3a] 195 -> Leadtek Winfast TV2100 FM [107d:6f3a]
196 -> SnaZio* TVPVR PRO [1779:13cf]
...@@ -5733,7 +5733,36 @@ struct saa7134_board saa7134_boards[] = { ...@@ -5733,7 +5733,36 @@ struct saa7134_board saa7134_boards[] = {
.gpio = 0x08, .gpio = 0x08,
}, },
}, },
[SAA7134_BOARD_SNAZIO_TVPVR_PRO] = {
.name = "SnaZio* TVPVR PRO",
.audio_clock = 0x00187de7,
.tuner_type = TUNER_PHILIPS_TDA8290,
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.gpiomask = 1 << 21,
.inputs = { {
.type = SAA7134_INPUT_TV,
.vmux = 1,
.amux = TV,
.gpio = 0x0000000,
}, {
.type = SAA7134_INPUT_COMPOSITE1,
.vmux = 3,
.amux = LINE2,
.gpio = 0x0000000,
}, {
.type = SAA7134_INPUT_SVIDEO,
.vmux = 8,
.amux = LINE2,
.gpio = 0x0000000,
} },
.radio = {
.type = SAA7134_INPUT_RADIO,
.amux = TV,
.gpio = 0x0200000,
},
},
}; };
const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
...@@ -7003,6 +7032,12 @@ struct pci_device_id saa7134_pci_tbl[] = { ...@@ -7003,6 +7032,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
.subvendor = 0x107d, .subvendor = 0x107d,
.subdevice = 0x6f3a, .subdevice = 0x6f3a,
.driver_data = SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM, .driver_data = SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM,
}, {
.vendor = PCI_VENDOR_ID_PHILIPS,
.device = PCI_DEVICE_ID_PHILIPS_SAA7133,
.subvendor = 0x1779, /* V One Multimedia PTE Ltd */
.subdevice = 0x13cf,
.driver_data = SAA7134_BOARD_SNAZIO_TVPVR_PRO,
}, { }, {
/* --- boards without eeprom + subsystem ID --- */ /* --- boards without eeprom + subsystem ID --- */
.vendor = PCI_VENDOR_ID_PHILIPS, .vendor = PCI_VENDOR_ID_PHILIPS,
...@@ -7534,6 +7569,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) ...@@ -7534,6 +7569,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
case SAA7134_BOARD_BEHOLD_H7: case SAA7134_BOARD_BEHOLD_H7:
case SAA7134_BOARD_BEHOLD_A7: case SAA7134_BOARD_BEHOLD_A7:
case SAA7134_BOARD_KWORLD_PC150U: case SAA7134_BOARD_KWORLD_PC150U:
case SAA7134_BOARD_SNAZIO_TVPVR_PRO:
dev->has_remote = SAA7134_REMOTE_I2C; dev->has_remote = SAA7134_REMOTE_I2C;
break; break;
case SAA7134_BOARD_AVERMEDIA_A169_B: case SAA7134_BOARD_AVERMEDIA_A169_B:
......
...@@ -975,6 +975,27 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev) ...@@ -975,6 +975,27 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
msg_msi.addr, dev->i2c_adap.name, msg_msi.addr, dev->i2c_adap.name,
(1 == rc) ? "yes" : "no"); (1 == rc) ? "yes" : "no");
break; break;
case SAA7134_BOARD_SNAZIO_TVPVR_PRO:
dev->init_data.name = "SnaZio* TVPVR PRO";
dev->init_data.get_key = get_key_msi_tvanywhere_plus;
dev->init_data.ir_codes = RC_MAP_MSI_TVANYWHERE_PLUS;
/*
* MSI TV@nyware Plus requires more frequent polling
* otherwise it will miss some keypresses
*/
dev->init_data.polling_interval = 50;
info.addr = 0x30;
/*
* MSI TV@nywhere Plus controller doesn't seem to
* respond to probes unless we read something from
* an existing device. Weird...
* REVISIT: might no longer be needed
*/
rc = i2c_transfer(&dev->i2c_adap, &msg_msi, 1);
input_dbg("probe 0x%02x @ %s: %s\n",
msg_msi.addr, dev->i2c_adap.name,
(rc == 1) ? "yes" : "no");
break;
case SAA7134_BOARD_KWORLD_PC150U: case SAA7134_BOARD_KWORLD_PC150U:
/* copied and modified from MSI TV@nywhere Plus */ /* copied and modified from MSI TV@nywhere Plus */
dev->init_data.name = "Kworld PC150-U"; dev->init_data.name = "Kworld PC150-U";
......
...@@ -343,6 +343,7 @@ struct saa7134_card_ir { ...@@ -343,6 +343,7 @@ struct saa7134_card_ir {
#define SAA7134_BOARD_WIS_VOYAGER 193 #define SAA7134_BOARD_WIS_VOYAGER 193
#define SAA7134_BOARD_AVERMEDIA_505 194 #define SAA7134_BOARD_AVERMEDIA_505 194
#define SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM 195 #define SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM 195
#define SAA7134_BOARD_SNAZIO_TVPVR_PRO 196
#define SAA7134_MAXBOARDS 32 #define SAA7134_MAXBOARDS 32
#define SAA7134_INPUT_MAX 8 #define SAA7134_INPUT_MAX 8
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment