GoTView remote control
- From: Pedro <roginovicci (at) nm.ru>
- Date: Thu, 08 Feb 2007 01:18:13 +0300
A wile ago (that was the times of 2.6.18 kernel) I've posted here a
patch. The patch fix the problem with infinite key press events while
working with GoTView pci 7135 tuner.It seems the patch was lost since
now 2.6.20 kernel is out and the patch is not applied. The message is
repost of the mentioned above patch adopted to 2.6.20 kernel. Should I
do additional steps to this patch will be applied to 2.6 kernel tree
some day?
signed: Eugene M. Roginskii
diff -U 3 -H -d -r -N -- o/drivers/media/common/ir-keymaps.c p/drivers/media/common/ir-keymaps.c
--- o/drivers/media/common/ir-keymaps.c 2007-02-04 21:44:54.000000000 +0300
+++ p/drivers/media/common/ir-keymaps.c 2007-02-07 21:33:03.000000000 +0300
(at) (at) -1074,43 +1074,44 (at) (at)
EXPORT_SYMBOL_GPL(ir_codes_manli);
/* Mike Baikov <mike (at) baikov.com> */
+/* Improved by Eugene Roginskii <roginovicci (at) gmx.net> */
IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
- [ 0x21 ] = KEY_POWER,
- [ 0x69 ] = KEY_TV,
- [ 0x33 ] = KEY_0,
- [ 0x51 ] = KEY_1,
- [ 0x31 ] = KEY_2,
- [ 0x71 ] = KEY_3,
- [ 0x3b ] = KEY_4,
- [ 0x58 ] = KEY_5,
- [ 0x41 ] = KEY_6,
- [ 0x48 ] = KEY_7,
- [ 0x30 ] = KEY_8,
- [ 0x53 ] = KEY_9,
- [ 0x73 ] = KEY_AGAIN, /* LOOP */
- [ 0x0a ] = KEY_AUDIO,
- [ 0x61 ] = KEY_PRINT, /* PREVIEW */
- [ 0x7a ] = KEY_VIDEO,
- [ 0x20 ] = KEY_CHANNELUP,
- [ 0x40 ] = KEY_CHANNELDOWN,
- [ 0x18 ] = KEY_VOLUMEDOWN,
- [ 0x50 ] = KEY_VOLUMEUP,
- [ 0x10 ] = KEY_MUTE,
- [ 0x4a ] = KEY_SEARCH,
- [ 0x7b ] = KEY_SHUFFLE, /* SNAPSHOT */
- [ 0x22 ] = KEY_RECORD,
- [ 0x62 ] = KEY_STOP,
- [ 0x78 ] = KEY_PLAY,
- [ 0x39 ] = KEY_REWIND,
- [ 0x59 ] = KEY_PAUSE,
- [ 0x19 ] = KEY_FORWARD,
- [ 0x09 ] = KEY_ZOOM,
+ [ 0x11 ] = KEY_POWER,
+ [ 0x35 ] = KEY_TV,
+ [ 0x1b ] = KEY_0,
+ [ 0x29 ] = KEY_1,
+ [ 0x19 ] = KEY_2,
+ [ 0x39 ] = KEY_3,
+ [ 0x1f ] = KEY_4,
+ [ 0x2c ] = KEY_5,
+ [ 0x21 ] = KEY_6,
+ [ 0x24 ] = KEY_7,
+ [ 0x18 ] = KEY_8,
+ [ 0x2b ] = KEY_9,
+ [ 0x3b ] = KEY_AGAIN, /* LOOP */
+ [ 0x06 ] = KEY_AUDIO,
+ [ 0x31 ] = KEY_PRINT, /* PREVIEW */
+ [ 0x3e ] = KEY_VIDEO,
+ [ 0x10 ] = KEY_CHANNELUP,
+ [ 0x20 ] = KEY_CHANNELDOWN,
+ [ 0x0c ] = KEY_VOLUMEDOWN,
+ [ 0x28 ] = KEY_VOLUMEUP,
+ [ 0x08 ] = KEY_MUTE,
+ [ 0x26 ] = KEY_SEARCH, /*SCAN*/
+ [ 0x3f ] = KEY_SHUFFLE, /* SNAPSHOT */
+ [ 0x12 ] = KEY_RECORD,
+ [ 0x32 ] = KEY_STOP,
+ [ 0x3c ] = KEY_PLAY,
+ [ 0x1d ] = KEY_REWIND,
+ [ 0x2d ] = KEY_PAUSE,
+ [ 0x0d ] = KEY_FORWARD,
+ [ 0x05 ] = KEY_ZOOM, /*FULL*/
- [ 0x52 ] = KEY_F21, /* LIVE TIMESHIFT */
- [ 0x1a ] = KEY_F22, /* MIN TIMESHIFT */
- [ 0x3a ] = KEY_F23, /* TIMESHIFT */
- [ 0x70 ] = KEY_F24, /* NORMAL TIMESHIFT */
+ [ 0x2a ] = KEY_F21, /* LIVE TIMESHIFT */
+ [ 0x0e ] = KEY_F22, /* MIN TIMESHIFT */
+ [ 0x1e ] = KEY_F23, /* TIMESHIFT */
+ [ 0x38 ] = KEY_F24, /* NORMAL TIMESHIFT */
};
EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
diff -U 3 -H -d -r -N -- o/drivers/media/video/saa7134/saa7134-cards.c p/drivers/media/video/saa7134/saa7134-cards.c
--- o/drivers/media/video/saa7134/saa7134-cards.c 2007-02-04 21:44:54.000000000 +0300
+++ p/drivers/media/video/saa7134/saa7134-cards.c 2007-02-07 21:33:03.000000000 +0300
(at) (at) -2165,6 +2165,8 (at) (at)
[SAA7134_BOARD_GOTVIEW_7135] = {
/* Mike Baikov <mike (at) baikov.com> */
/* Andrey Cvetcov <ays14 (at) yandex.ru> */
+ /* Improved remote control by Eugene Roginskii <roginovicci (at) gmx.net> */
+
.name = "GoTView 7135 PCI",
.audio_clock = 0x00187de7,
.tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
diff -U 3 -H -d -r -N -- o/drivers/media/video/saa7134/saa7134-input.c p/drivers/media/video/saa7134/saa7134-input.c
--- o/drivers/media/video/saa7134/saa7134-input.c 2007-02-04 21:44:54.000000000 +0300
+++ p/drivers/media/video/saa7134/saa7134-input.c 2007-02-07 21:43:51.000000000 +0300
(at) (at) -41,6 +41,11 (at) (at)
module_param(pinnacle_remote, int, 0644); /* Choose Pinnacle PCTV remote */
MODULE_PARM_DESC(pinnacle_remote, "Specify Pinnacle PCTV remote: 0=coloured, 1=grey (defaults to 0)");
+static int repeat_delay = 400;
+module_param(repeat_delay, int, 0644);
+static int repeat_period = 50;
+module_param(repeat_period, int, 0644);
+
#define dprintk(fmt, arg...) if (ir_debug) \
printk(KERN_DEBUG "%s/ir: " fmt, dev->name , ## arg)
#define i2cdprintk(fmt, arg...) if (ir_debug) \
(at) (at) -52,6 +57,14 (at) (at)
{
struct saa7134_ir *ir = dev->remote;
u32 gpio, data;
+
+ /* here comes the additional handshake steps for some cards */
+ switch (dev->board) {
+ case SAA7134_BOARD_GOTVIEW_7135:
+ saa_setb(SAA7134_GPIO_GPSTATUS1, 0x80);
+ saa_clearb(SAA7134_GPIO_GPSTATUS1, 0x80);
+ break;
+ }
/* rising SAA7134_GPIO_GPRESCAN reads the status */
saa_clearb(SAA7134_GPIO_GPMODE3,SAA7134_GPIO_GPRESCAN);
(at) (at) -265,10 +278,12 (at) (at)
break;
case SAA7134_BOARD_GOTVIEW_7135:
ir_codes = ir_codes_gotview7135;
- mask_keycode = 0x0003EC;
- mask_keyup = 0x008000;
+ mask_keycode = 0x0003CC;
mask_keydown = 0x000010;
- polling = 50; // ms
+ polling = 5; // ms
+ /* Set GPIO pin15 to high to enable possibility of the IR controller
+ state refresh*/
+ saa_setb(SAA7134_GPIO_GPMODE1, 0x80);
break;
case SAA7134_BOARD_VIDEOMATE_TV_PVR:
case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
(at) (at) -344,6 +359,10 (at) (at)
err = input_register_device(ir->dev);
if (err)
goto err_out_stop;
+
+ /* the remote isn't as bouncy as a keyboard */
+ ir->dev->rep[REP_DELAY] = repeat_delay;
+ ir->dev->rep[REP_PERIOD] = repeat_period;
return 0;
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request (at) redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list