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

Commit 0faa2ed5 authored by Dmitri Belimov's avatar Dmitri Belimov Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB: saa7134: Add support new Behold TV cards



[dougsland@redhat.com: Fixed cards numbers reject due changes in saa7134.h]

Signed-off-by: default avatarBeholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com>
Signed-off-by: default avatarDouglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 1b0e48ad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -176,3 +176,5 @@
175 -> Leadtek Winfast DTV1000S                 [107d:6655]
176 -> Beholder BeholdTV 505 RDS                [0000:5051]
177 -> Hawell HW-404M7
179 -> Beholder BeholdTV H7			[5ace:7190]
180 -> Beholder BeholdTV A7			[5ace:7090]
+72 −0
Original line number Diff line number Diff line
@@ -5372,6 +5372,62 @@ struct saa7134_board saa7134_boards[] = {
			.gpio = 0x01fc00,
		} },
	},
	[SAA7134_BOARD_BEHOLD_H7] = {
		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
		.name           = "Beholder BeholdTV H7",
		.audio_clock    = 0x00187de7,
		.tuner_type     = TUNER_XC5000,
		.radio_type     = UNSET,
		.tuner_addr     = ADDR_UNSET,
		.radio_addr     = ADDR_UNSET,
		.mpeg           = SAA7134_MPEG_DVB,
		.ts_type	= SAA7134_MPEG_TS_PARALLEL,
		.inputs         = { {
			.name = name_tv,
			.vmux = 2,
			.amux = TV,
			.tv   = 1,
		}, {
			.name = name_comp1,
			.vmux = 0,
			.amux = LINE1,
		}, {
			.name = name_svideo,
			.vmux = 9,
			.amux = LINE1,
		} },
		.radio = {
			.name = name_radio,
			.amux = TV,
		},
	},
	[SAA7134_BOARD_BEHOLD_A7] = {
		/* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
		.name           = "Beholder BeholdTV A7",
		.audio_clock    = 0x00187de7,
		.tuner_type     = TUNER_XC5000,
		.radio_type     = UNSET,
		.tuner_addr     = ADDR_UNSET,
		.radio_addr     = ADDR_UNSET,
		.inputs         = { {
			.name = name_tv,
			.vmux = 2,
			.amux = TV,
			.tv   = 1,
		}, {
			.name = name_comp1,
			.vmux = 0,
			.amux = LINE1,
		}, {
			.name = name_svideo,
			.vmux = 9,
			.amux = LINE1,
		} },
		.radio = {
			.name = name_radio,
			.amux = TV,
		},
	},

};

@@ -6566,6 +6622,18 @@ struct pci_device_id saa7134_pci_tbl[] = {
		.subvendor    = PCI_ANY_ID,
		.subdevice    = PCI_ANY_ID,
		.driver_data  = SAA7134_BOARD_UNKNOWN,
	}, {
		.vendor       = PCI_VENDOR_ID_PHILIPS,
		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
		.subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
		.subdevice    = 0x7190,
		.driver_data  = SAA7134_BOARD_BEHOLD_H7,
	}, {
		.vendor       = PCI_VENDOR_ID_PHILIPS,
		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
		.subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
		.subdevice    = 0x7090,
		.driver_data  = SAA7134_BOARD_BEHOLD_A7,
	},{
		/* --- end of list --- */
	}
@@ -6619,6 +6687,8 @@ static int saa7134_xc5000_callback(struct saa7134_dev *dev,
{
	switch (dev->board) {
	case SAA7134_BOARD_BEHOLD_X7:
	case SAA7134_BOARD_BEHOLD_H7:
	case SAA7134_BOARD_BEHOLD_A7:
		if (command == XC5000_TUNER_RESET) {
		/* Down and UP pheripherial RESET pin for reset all chips */
			saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
@@ -6990,6 +7060,8 @@ int saa7134_board_init1(struct saa7134_dev *dev)
	case SAA7134_BOARD_BEHOLD_M6_EXTRA:
	case SAA7134_BOARD_BEHOLD_H6:
	case SAA7134_BOARD_BEHOLD_X7:
	case SAA7134_BOARD_BEHOLD_H7:
	case SAA7134_BOARD_BEHOLD_A7:
		dev->has_remote = SAA7134_REMOTE_I2C;
		break;
	case SAA7134_BOARD_AVERMEDIA_A169_B:
+9 −0
Original line number Diff line number Diff line
@@ -1532,6 +1532,15 @@ static int dvb_init(struct saa7134_dev *dev)
				   &dev->i2c_adap, &behold_x7_tunerconfig);
		}
		break;
	case SAA7134_BOARD_BEHOLD_H7:
		fe0->dvb.frontend = dvb_attach(zl10353_attach,
						&behold_x7_config,
						&dev->i2c_adap);
		if (fe0->dvb.frontend) {
			dvb_attach(xc5000_attach, fe0->dvb.frontend,
				   &dev->i2c_adap, &behold_x7_tunerconfig);
		}
		break;
	case SAA7134_BOARD_AVERMEDIA_A700_PRO:
	case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
		/* Zarlink ZL10313 */
+2 −0
Original line number Diff line number Diff line
@@ -982,6 +982,8 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
	case SAA7134_BOARD_BEHOLD_M6_EXTRA:
	case SAA7134_BOARD_BEHOLD_H6:
	case SAA7134_BOARD_BEHOLD_X7:
	case SAA7134_BOARD_BEHOLD_H7:
	case SAA7134_BOARD_BEHOLD_A7:
		dev->init_data.name = "BeholdTV";
		dev->init_data.get_key = get_key_beholdm6xx;
		dev->init_data.ir_codes = RC_MAP_BEHOLD;
+2 −0
Original line number Diff line number Diff line
@@ -301,6 +301,8 @@ struct saa7134_format {
#define SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S 175
#define SAA7134_BOARD_BEHOLD_505RDS_MK3     176
#define SAA7134_BOARD_HAWELL_HW_404M7		177
#define SAA7134_BOARD_BEHOLD_H7             178
#define SAA7134_BOARD_BEHOLD_A7             179

#define SAA7134_MAXBOARDS 32
#define SAA7134_INPUT_MAX 8