Skip to content

Commit

Permalink
[PATCH] v4l: add support for PixelView Ultra Pro
Browse files Browse the repository at this point in the history
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: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
mcapinha authored and Linus Torvalds committed Jun 24, 2005
1 parent d81ef55 commit 239df2e
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 33 deletions.
33 changes: 33 additions & 0 deletions drivers/media/common/ir-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
21 changes: 21 additions & 0 deletions drivers/media/video/cx88/cx88-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
7 changes: 7 additions & 0 deletions drivers/media/video/cx88/cx88-input.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
3 changes: 2 additions & 1 deletion drivers/media/video/cx88/cx88.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
32 changes: 0 additions & 32 deletions drivers/media/video/ir-kbd-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]> */
static IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {

Expand Down
1 change: 1 addition & 0 deletions include/media/ir-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ extern IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE];

void ir_input_init(struct input_dev *dev, struct ir_input_state *ir,
int ir_type, IR_KEYTAB_TYPE *ir_codes);
Expand Down

0 comments on commit 239df2e

Please sign in to comment.