Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -194,3 +194,4 @@
193 -> WIS Voyager or compatible                [1905:7007]
194 -> AverMedia AverTV/505                     [1461:a10a]
195 -> Leadtek Winfast TV2100 FM                [107d:6f3a]
196 -> SnaZio* TVPVR PRO                        [1779:13cf]
+37 −1
Original line number Diff line number Diff line
@@ -5733,7 +5733,36 @@ struct saa7134_board saa7134_boards[] = {
			.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);
@@ -7003,6 +7032,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
		.subvendor    = 0x107d,
		.subdevice    = 0x6f3a,
		.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 --- */
		.vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -7534,6 +7569,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
	case SAA7134_BOARD_BEHOLD_H7:
	case SAA7134_BOARD_BEHOLD_A7:
	case SAA7134_BOARD_KWORLD_PC150U:
	case SAA7134_BOARD_SNAZIO_TVPVR_PRO:
		dev->has_remote = SAA7134_REMOTE_I2C;
		break;
	case SAA7134_BOARD_AVERMEDIA_A169_B:
+21 −0
Original line number Diff line number Diff line
@@ -975,6 +975,27 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
			msg_msi.addr, dev->i2c_adap.name,
			(1 == rc) ? "yes" : "no");
		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:
		/* copied and modified from MSI TV@nywhere Plus */
		dev->init_data.name = "Kworld PC150-U";
+1 −0
Original line number Diff line number Diff line
@@ -343,6 +343,7 @@ struct saa7134_card_ir {
#define SAA7134_BOARD_WIS_VOYAGER           193
#define SAA7134_BOARD_AVERMEDIA_505         194
#define SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM 195
#define SAA7134_BOARD_SNAZIO_TVPVR_PRO      196

#define SAA7134_MAXBOARDS 32
#define SAA7134_INPUT_MAX 8