Hi,

I have guessed which gpio line to use and activated the ir-remote receiver.
The keymap seems to work fairly well with the supplied DSR-0112 remote, mostly
tested it with xev as I do not have a working lircd on this computer.

The patch is against 2.6.34.

Richard

Jun 15 16:46:27 localhost kernel: [24399.381936] usb 5-6: New USB device found, 
idVendor=2040, idProduct=5500
Jun 15 16:46:27 localhost kernel: [24399.381939] usb 5-6: New USB device 
strings: Mfr=1, Product=2, SerialNumber=3
Jun 15 16:46:27 localhost kernel: [24399.381941] usb 5-6: Product: WinTV 
MiniStick
Jun 15 16:46:27 localhost kernel: [24399.381943] usb 5-6: Manufacturer: 
Hauppauge Computer Works
Jun 15 16:46:27 localhost kernel: [24399.381945] usb 5-6: SerialNumber: f069684c
Jun 15 16:46:27 localhost kernel: [24399.384194] usb 5-6: firmware: requesting 
sms1xxx-hcw-55xxx-dvbt-02.fw
Jun 15 16:46:28 localhost kernel: [24400.000075] smscore_set_device_mode: 
firmware download success: sms1xxx-hcw-55
xxx-dvbt-02.fw
Jun 15 16:46:28 localhost kernel: [24400.000303] DVB: registering new adapter 
(Hauppauge WinTV MiniStick)
Jun 15 16:46:28 localhost kernel: [24400.000796] DVB: registering adapter 0 
frontend 0 (Siano Mobile Digital MDTV R
eceiver)...
Jun 15 16:46:28 localhost kernel: [24400.001798] sms_ir_init: Allocating input 
device
Jun 15 16:46:28 localhost kernel: [24400.001802] sms_ir_init: IR remote 
keyboard type is 1
Jun 15 16:46:28 localhost kernel: [24400.001804] sms_ir_init: IR port 0, 
timeout 100 ms
Jun 15 16:46:28 localhost kernel: [24400.001807] sms_ir_init: Input device (IR) 
SMS IR w/kbd type 1 is set for key 
events
Jun 15 16:46:28 localhost kernel: [24400.001887] input: SMS IR w/kbd type 1 as 
/devices/pci0000:00/0000:00:1d.7/usb
5/5-6/input/input9


--- linux-2.6.34/drivers/media/dvb/siano/smsir.h.rz     2010-06-11 
11:24:20.000000000 +0200
+++ linux-2.6.34/drivers/media/dvb/siano/smsir.h        2010-06-11 
01:12:54.000000000 +0200
@@ -30,6 +30,7 @@
 
 enum ir_kb_type {
        SMS_IR_KB_DEFAULT_TV,
+       SMS_IR_KB_HCW_DSR0112,
        SMS_IR_KB_HCW_SILVER
 };
 
--- linux-2.6.34/drivers/media/dvb/siano/smsir.c.rz     2010-06-11 
10:07:32.000000000 +0200
+++ linux-2.6.34/drivers/media/dvb/siano/smsir.c        2010-06-15 
18:08:37.000000000 +0200
@@ -54,6 +54,34 @@
                                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                        }
                },
+               [SMS_IR_KB_HCW_DSR0112] = {
+                       .ir_protocol = IR_RC5,
+                       .rc5_kbd_address = KEYBOARD_ADDRESS_LIGHTING,
+                       .keyboard_layout_map = {
+                                       KEY_0, KEY_1, KEY_2,
+                                       KEY_3, KEY_4, KEY_5,
+                                       KEY_6, KEY_7, KEY_8,
+                                       KEY_9, KEY_TEXT, KEY_RED,
+                                       KEY_RADIO, KEY_MENU,
+                                       KEY_SUBTITLE,
+                                       KEY_MUTE, KEY_VOLUMEUP,
+                                       KEY_VOLUMEDOWN, KEY_PREVIOUS, 0,
+                                       KEY_UP, KEY_DOWN, KEY_LEFT,
+                                       KEY_RIGHT, KEY_VIDEO, KEY_AUDIO,
+                                       KEY_MHP, KEY_EPG, KEY_TV,
+                                       0, KEY_NEXTSONG, KEY_EXIT,
+                                       KEY_CHANNELUP,  KEY_CHANNELDOWN,
+                                       KEY_CHANNEL, 0,
+                                       KEY_PREVIOUSSONG, KEY_ENTER,
+                                       KEY_SLEEP, 0, 0, KEY_BLUE,
+                                       0, 0, 0, 0, KEY_GREEN, 0,
+                                       KEY_PAUSE, 0, KEY_REWIND,
+                                       0, KEY_FASTFORWARD, KEY_PLAY,
+                                       KEY_STOP, KEY_RECORD,
+                                       KEY_YELLOW, 0, 0, KEY_SELECT,
+                                       KEY_ZOOM, KEY_POWER, 0, 0
+                       }
+               },
                [SMS_IR_KB_HCW_SILVER] = {
                        .ir_protocol = IR_RC5,
                        .rc5_kbd_address = KEYBOARD_ADDRESS_LIGHTING1,
@@ -120,6 +148,7 @@
 
        sms_log("kernel input keycode (from ir) %d", keycode);
        input_report_key(coredev->ir.input_dev, keycode, 1);
+       input_report_key(coredev->ir.input_dev, keycode, 0);
        input_sync(coredev->ir.input_dev);
 
 }
@@ -247,6 +276,8 @@
 int sms_ir_init(struct smscore_device_t *coredev)
 {
        struct input_dev *input_dev;
+       int i;
+       u16 *key_map;
 
        sms_log("Allocating input device");
        input_dev = input_allocate_device();
@@ -278,7 +309,14 @@
 
        /* Key press events only */
        input_dev->evbit[0] = BIT_MASK(EV_KEY);
-       input_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
+
+       key_map = 
keyboard_layout_maps[coredev->ir.ir_kb_type].keyboard_layout_map;
+               
+       memset (input_dev->keybit, 0, sizeof(input_dev->keybit));
+       for (i=0; i<IR_KEYBOARD_LAYOUT_SIZE; i++) {
+               if (key_map[i])
+                       set_bit (key_map[i], input_dev->keybit);
+       }
 
        sms_log("Input device (IR) %s is set for key events", input_dev->name);
 
--- linux-2.6.34/drivers/media/dvb/siano/sms-cards.c.rz 2010-06-09 
14:37:19.000000000 +0200
+++ linux-2.6.34/drivers/media/dvb/siano/sms-cards.c    2010-06-11 
01:08:49.000000000 +0200
@@ -64,6 +64,8 @@
                .type   = SMS_NOVA_B0,
                .fw[DEVICE_MODE_ISDBT_BDA] = "sms1xxx-hcw-55xxx-isdbt-02.fw",
                .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
+               .ir_kb_type = SMS_IR_KB_HCW_DSR0112,
+               .board_cfg.ir = 4,
                .board_cfg.leds_power = 26,
                .board_cfg.led0 = 27,
                .board_cfg.led1 = 28,


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to