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

Commit 239df2e2 authored by Manuel Capinha's avatar Manuel Capinha Committed by Linus Torvalds
Browse files

[PATCH] v4l: add support for PixelView Ultra Pro



The following patch adds support for the PixelView Ultra Pro video capture
card in v4l.

- It removes the remote control key definitions from ir-kbd-gpio.c and
  moves them to ir-common.c so that they can be shared between bt878 and
  cx88 based cards.

- The patch also moves the FUSIONHDTV_3_GOLD_Q card from number 27 to 28
  to regain compatibility with the V4L cvs.

Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d81ef559
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -213,6 +213,39 @@ IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE] = {
};
EXPORT_SYMBOL(ir_codes_hauppauge_new);

IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
	[  2 ] = KEY_KP0,
	[  1 ] = KEY_KP1,
	[ 11 ] = KEY_KP2,
	[ 27 ] = KEY_KP3,
	[  5 ] = KEY_KP4,
	[  9 ] = KEY_KP5,
	[ 21 ] = KEY_KP6,
	[  6 ] = KEY_KP7,
	[ 10 ] = KEY_KP8,
	[ 18 ] = KEY_KP9,

	[  3 ] = KEY_TUNER,       // TV/FM
	[  7 ] = KEY_SEARCH,      // scan
	[ 28 ] = KEY_ZOOM,        // full screen
	[ 30 ] = KEY_POWER,
	[ 23 ] = KEY_VOLUMEDOWN,
	[ 31 ] = KEY_VOLUMEUP,
	[ 20 ] = KEY_CHANNELDOWN,
	[ 22 ] = KEY_CHANNELUP,
	[ 24 ] = KEY_MUTE,

	[  0 ] = KEY_LIST,        // source
	[ 19 ] = KEY_INFO,        // loop
	[ 16 ] = KEY_LAST,        // +100
	[ 13 ] = KEY_CLEAR,       // reset
	[ 12 ] = BTN_RIGHT,       // fun++
	[  4 ] = BTN_LEFT,        // fun--
	[ 14 ] = KEY_GOTO,        // function
	[ 15 ] = KEY_STOP,         // freeze
};
EXPORT_SYMBOL(ir_codes_pixelview);

/* -------------------------------------------------------------------------- */

static void ir_input_key_event(struct input_dev *dev, struct ir_input_state *ir)
+21 −0
Original line number Diff line number Diff line
@@ -628,6 +628,27 @@ struct cx88_board cx88_boards[] = {
			.gpio1  = 0x0000e07f,
		}}
	},
	[CX88_BOARD_PIXELVIEW_PLAYTV_ULTRA_PRO] = {
		.name           = "PixelView PlayTV Ultra Pro (Stereo)",
		.tuner_type     = 38,
		.input          = {{
			.type   = CX88_VMUX_TELEVISION,
			.vmux   = 0,
			.gpio0  = 0xbf61,  // internal decoder
		},{
			.type   = CX88_VMUX_COMPOSITE1,
			.vmux   = 1,
			.gpio0  = 0xbf63,
		},{
			.type   = CX88_VMUX_SVIDEO,
			.vmux   = 2,
			.gpio0  = 0xbf63,
		}},
		.radio = {
			.type  = CX88_RADIO,
			.gpio0 = 0xbf60,
		},
	},
};
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);

+7 −0
Original line number Diff line number Diff line
@@ -261,6 +261,13 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
		ir->mask_keydown = 0x02;
		ir->polling      = 5; // ms
		break;
	case CX88_BOARD_PIXELVIEW_PLAYTV_ULTRA_PRO:
		ir_codes         = ir_codes_pixelview;
		ir->gpio_addr    = MO_GP1_IO;
		ir->mask_keycode = 0x1f;
		ir->mask_keyup   = 0x80;
		ir->polling      = 1; // ms
		break;
	}
	if (NULL == ir_codes) {
		kfree(ir);
+2 −1
Original line number Diff line number Diff line
@@ -162,7 +162,8 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_HAUPPAUGE_ROSLYN        24
#define CX88_BOARD_DIGITALLOGIC_MEC	       25
#define CX88_BOARD_IODATA_GVBCTV7E         26
#define CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q   27
#define CX88_BOARD_PIXELVIEW_PLAYTV_ULTRA_PRO 27
#define CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q   28

enum cx88_itype {
	CX88_VMUX_COMPOSITE1 = 1,
+0 −32
Original line number Diff line number Diff line
@@ -114,38 +114,6 @@ static IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
	[ 0x3e ] = KEY_VOLUMEUP,    // 'volume +'
};

static IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
	[  2 ] = KEY_KP0,
	[  1 ] = KEY_KP1,
	[ 11 ] = KEY_KP2,
	[ 27 ] = KEY_KP3,
	[  5 ] = KEY_KP4,
	[  9 ] = KEY_KP5,
	[ 21 ] = KEY_KP6,
	[  6 ] = KEY_KP7,
	[ 10 ] = KEY_KP8,
	[ 18 ] = KEY_KP9,

	[  3 ] = KEY_TUNER,       // TV/FM
	[  7 ] = KEY_SEARCH,      // scan
	[ 28 ] = KEY_ZOOM,        // full screen
	[ 30 ] = KEY_POWER,
	[ 23 ] = KEY_VOLUMEDOWN,
	[ 31 ] = KEY_VOLUMEUP,
	[ 20 ] = KEY_CHANNELDOWN,
	[ 22 ] = KEY_CHANNELUP,
	[ 24 ] = KEY_MUTE,

	[  0 ] = KEY_LIST,        // source
	[ 19 ] = KEY_INFO,        // loop
	[ 16 ] = KEY_LAST,        // +100
	[ 13 ] = KEY_CLEAR,       // reset
	[ 12 ] = BTN_RIGHT,       // fun++
	[  4 ] = BTN_LEFT,        // fun--
	[ 14 ] = KEY_GOTO,        // function
	[ 15 ] = KEY_STOP,         // freeze
};

/* Attila Kondoros <attila.kondoros@chello.hu> */
static IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {

Loading