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

Commit b04c1baf authored by Michal Majchrowicz's avatar Michal Majchrowicz Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (4629): Saa7134: add card support for Proteus Pro 2309



Add card support for Proteus Pro 2309, based on saa7130 bridge

Signed-off-by: default avatarMichal Majchrowicz <mmajchrowicz@gmail.com>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 666c73d9
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -96,3 +96,4 @@
 95 -> LifeView FlyVIDEO3000 (NTSC)             [5169:0138]
 95 -> LifeView FlyVIDEO3000 (NTSC)             [5169:0138]
 96 -> Medion Md8800 Quadro                     [16be:0007,16be:0008]
 96 -> Medion Md8800 Quadro                     [16be:0007,16be:0008]
 97 -> LifeView FlyDVB-S /Acorp TV134DS         [5168:0300,4e42:0300]
 97 -> LifeView FlyDVB-S /Acorp TV134DS         [5168:0300,4e42:0300]
 98 -> Proteus Pro 2309                         [0919:2003]
+31 −0
Original line number Original line Diff line number Diff line
@@ -32,6 +32,37 @@ IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE] = {


EXPORT_SYMBOL_GPL(ir_codes_empty);
EXPORT_SYMBOL_GPL(ir_codes_empty);


/* Michal Majchrowicz <mmajchrowicz@gmail.com> */
IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {
	/* numeric */
	[ 0x00 ] = KEY_0,
	[ 0x01 ] = KEY_1,
	[ 0x02 ] = KEY_2,
	[ 0x03 ] = KEY_3,
	[ 0x04 ] = KEY_4,
	[ 0x05 ] = KEY_5,
	[ 0x06 ] = KEY_6,
	[ 0x07 ] = KEY_7,
	[ 0x08 ] = KEY_8,
	[ 0x09 ] = KEY_9,

	[ 0x5c ] = KEY_POWER,     /* power       */
	[ 0x20 ] = KEY_F,         /* full screen */
	[ 0x0f ] = KEY_BACKSPACE, /* recall      */
	[ 0x1b ] = KEY_ENTER,     /* mute        */
	[ 0x41 ] = KEY_RECORD,    /* record      */
	[ 0x43 ] = KEY_STOP,      /* stop        */
	[ 0x16 ] = KEY_S,
	[ 0x1a ] = KEY_Q,         /* off         */
	[ 0x2e ] = KEY_RED,
	[ 0x1f ] = KEY_DOWN,      /* channel -   */
	[ 0x1c ] = KEY_UP,        /* channel +   */
	[ 0x10 ] = KEY_LEFT,      /* volume -    */
	[ 0x1e ] = KEY_RIGHT,     /* volume +    */
	[ 0x14 ] = KEY_F1,
};

EXPORT_SYMBOL_GPL(ir_codes_proteus_2309);
/* Matt Jesson <dvb@jesson.eclipse.co.uk */
/* Matt Jesson <dvb@jesson.eclipse.co.uk */
IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
	[ 0x28 ] = KEY_0,         //'0' / 'enter'
	[ 0x28 ] = KEY_0,         //'0' / 'enter'
+38 −1
Original line number Original line Diff line number Diff line
@@ -2934,7 +2934,37 @@ struct saa7134_board saa7134_boards[] = {
			.amux = LINE1,
			.amux = LINE1,
		}},
		}},
	},
	},

	[SAA7134_BOARD_PROTEUS_2309] = {
		.name           = "Proteus Pro 2309",
		.audio_clock    = 0x00187de7,
		.tuner_type	= TUNER_PHILIPS_FM1216ME_MK3,
		.radio_type     = UNSET,
		.tuner_addr	= ADDR_UNSET,
		.radio_addr	= ADDR_UNSET,
		.tda9887_conf   = TDA9887_PRESENT,
		.inputs         = {{
			.name = name_tv,
			.vmux = 1,
			.amux = LINE2,
			.tv   = 1,
		},{
			.name = name_comp1,
			.vmux = 0,
			.amux = LINE2,
		},{
			.name = name_comp2,
			.vmux = 3,
			.amux = LINE2,
		},{
			.name = name_svideo,
			.vmux = 8,
			.amux = LINE2,
		}},
		.mute = {
			.name = name_mute,
			.amux = LINE1,
		},
	},
};
};


const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -3525,6 +3555,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
		.subvendor    = 0x1489,
		.subvendor    = 0x1489,
		.subdevice    = 0x0502,                /* Cardbus version */
		.subdevice    = 0x0502,                /* Cardbus version */
		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
	},{
		.vendor       = PCI_VENDOR_ID_PHILIPS,
		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
		.subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
		.subdevice    = 0x2003,
		.driver_data  = SAA7134_BOARD_PROTEUS_2309,
	},{
	},{
		/* --- boards without eeprom + subsystem ID --- */
		/* --- boards without eeprom + subsystem ID --- */
		.vendor       = PCI_VENDOR_ID_PHILIPS,
		.vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -3628,6 +3664,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
	case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
	case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
	case SAA7134_BOARD_FLYDVBT_LR301:
	case SAA7134_BOARD_FLYDVBT_LR301:
	case SAA7134_BOARD_FLYDVBTDUO:
	case SAA7134_BOARD_FLYDVBTDUO:
	case SAA7134_BOARD_PROTEUS_2309:
		dev->has_remote = SAA7134_REMOTE_GPIO;
		dev->has_remote = SAA7134_REMOTE_GPIO;
		break;
		break;
	case SAA7134_BOARD_FLYDVBS_LR300:
	case SAA7134_BOARD_FLYDVBS_LR300:
+6 −0
Original line number Original line Diff line number Diff line
@@ -228,6 +228,12 @@ int saa7134_input_init1(struct saa7134_dev *dev)
		mask_keyup   = 0x400000;
		mask_keyup   = 0x400000;
		polling      = 50; // ms
		polling      = 50; // ms
		break;
		break;
	case SAA7134_BOARD_PROTEUS_2309:
		ir_codes     = ir_codes_proteus_2309;
		mask_keycode = 0x00007F;
		mask_keyup   = 0x000080;
		polling      = 50; // ms
		break;
	case SAA7134_BOARD_VIDEOMATE_DVBT_300:
	case SAA7134_BOARD_VIDEOMATE_DVBT_300:
	case SAA7134_BOARD_VIDEOMATE_DVBT_200:
	case SAA7134_BOARD_VIDEOMATE_DVBT_200:
		ir_codes     = ir_codes_videomate_tv_pvr;
		ir_codes     = ir_codes_videomate_tv_pvr;
+1 −0
Original line number Original line Diff line number Diff line
@@ -225,6 +225,7 @@ struct saa7134_format {
#define SAA7134_BOARD_FLYVIDEO3000_NTSC 95
#define SAA7134_BOARD_FLYVIDEO3000_NTSC 95
#define SAA7134_BOARD_MEDION_MD8800_QUADRO 96
#define SAA7134_BOARD_MEDION_MD8800_QUADRO 96
#define SAA7134_BOARD_FLYDVBS_LR300 97
#define SAA7134_BOARD_FLYDVBS_LR300 97
#define SAA7134_BOARD_PROTEUS_2309 98


#define SAA7134_MAXBOARDS 8
#define SAA7134_MAXBOARDS 8
#define SAA7134_INPUT_MAX 8
#define SAA7134_INPUT_MAX 8
Loading