Skip to contentSkip to conversation

support for IR remote TerraTec Cinergy T USB XXS

PATCH Stefan Kriwanek 2 participants 2 messages Dec 29, 2010 – Dec 31, 2010 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

Dear linux-media developers,

I think I found a bug in the support of the TerraTec Cinergy T USB XXS remote control, or maybe just a new hardware revision appeared.

When I recently bought such a USB-stick I found the remote not working, instead 'dib0700: Unknown remote controller key' lines appearing in syslog on each keypress. The dvb_usb_dib0700 kernel module got autoloaded by my Ubuntu 10.10. I am using current hg revision of v4l-dvb and load the kernel module using the 'dvb_usb_dib0700_ir_proto=0' option. Simply adding the keycodes to the driver file (linux/drivers/media/dvb/dvb-usb/dib0700_devices.c,
patch appended) made things work.

However, by incident I found those very keycodes are already defined in the linux/drivers/media/IR/keymaps/rc-nec-terratec-cinergy-xs.c file, so maybe the issue is just about loading it?

'lsusb' lists my device as
Bus 001 Device 006: ID 0ccd:00ab TerraTec Electronic GmbH despite I do not own the 'HD' version of the device, your wiki
http://linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_USB_XXS
says that ID corresponds to. The output of 'lsusb -v' is appended to this mail.

'cat /proc/bus/input/devices' lists the input device as
I: Bus=0003 Vendor=0ccd Product=00ab Version=0100
N: Name="IR-receiver inside an USB DVB receiver"
P: Phys=usb-0000:00:12.2-2/ir0
S: Sysfs=/devices/pci0000:00/0000:00:12.2/usb1/1-2/input/input13
U: Uniq=
H: Handlers=kbd event8
B: EV=3
B: KEY=14afc336 2b4285f00000000 0 480158000 219040000801 9e96c000000000 90024010004ffc

I hope you could add support for my stick; I'd be happy to provide further information if necessary.

Best regards
Stefan

linux/drivers/media/dvb/dvb-usb/dib0700_devices.c +51 -0
diff -r abd3aac6644e linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -831,6 +831,57 @@
 	{ 0x4540, KEY_RECORD }, /* Font 'Size' for Teletext */
 	{ 0x4541, KEY_SCREEN }, /*  Full screen toggle, 'Hold' for Teletext */
 	{ 0x4542, KEY_SELECT }, /* Select video input, 'Select' for Teletext */
+
+	/* Key codes for the Terratec Cinergy T USB XXS remote, copied from rc-nec-terratec-cinergy-xs.c
+	   set dvb_usb_dib0700_ir_proto=0 */
+	{ 0x1401, KEY_POWER2 },
+	{ 0x1402, KEY_1 },
+	{ 0x1403, KEY_2 },
+	{ 0x1404, KEY_3 },
+	{ 0x1405, KEY_4 },
+	{ 0x1406, KEY_5 },
+	{ 0x1407, KEY_6 },
+	{ 0x1408, KEY_7 },
+	{ 0x1409, KEY_8 },
+	{ 0x140a, KEY_9 },
+	{ 0x140b, KEY_TUNER },  /* AV */
+	{ 0x140c, KEY_0 },
+	{ 0x140d, KEY_MODE }, /* A.B, alternatively match to KEY_AB? */
+	{ 0x140f, KEY_EPG }, /* EPG / GUIDE */
+	{ 0x1410, KEY_UP },
+	{ 0x1411, KEY_LEFT },
+	{ 0x1412, KEY_OK },
+	{ 0x1413, KEY_RIGHT },
+	{ 0x1414, KEY_DOWN },
+	{ 0x1416, KEY_INFO },
+	{ 0x1417, KEY_RED },
+	{ 0x1418, KEY_GREEN },
+	{ 0x1419, KEY_YELLOW },
+	{ 0x141a, KEY_BLUE },
+	{ 0x141b, KEY_CHANNELUP },
+	{ 0x141c, KEY_VOLUMEUP },
+	{ 0x141d, KEY_MUTE },
+	{ 0x141e, KEY_VOLUMEDOWN },
+	{ 0x141f, KEY_CHANNELDOWN },
+	{ 0x1440, KEY_PAUSE },
+	{ 0x1441, KEY_HOME },
+	{ 0x1442, KEY_MENU },
+	{ 0x1443, KEY_SUBTITLE },
+	{ 0x1444, KEY_TEXT },
+	{ 0x1445, KEY_DELETE },
+	{ 0x1446, KEY_TV },
+	{ 0x1447, KEY_DVD },
+	{ 0x1448, KEY_STOP },
+	{ 0x1449, KEY_VIDEO },
+	{ 0x144a, KEY_RADIO }, /* Music */
+	{ 0x144b, KEY_CAMERA }, /* Pic */
+	{ 0x144c, KEY_PLAY },
+	{ 0x144d, KEY_BACKSPACE },
+	{ 0x144e, KEY_REWIND },
+	{ 0x144f, KEY_FASTFORWARD },
+	{ 0x1454, KEY_LAST },
+	{ 0x1458, KEY_RECORD },
+	{ 0x145c, KEY_NEXT },
 };
 
 /* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */

Bus 001 Device 006: ID 0ccd:00ab TerraTec Electronic GmbH Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0ccd TerraTec Electronic GmbH
  idProduct          0x00ab 
  bcdDevice            1.00
  iManufacturer           1 TerraTec GmbH
  iProduct                2 Cinergy T XXS
  iSerial                 3 0000000001
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 46
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 

bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)

#1 lore raw

Em 29-12-2010 12:49, Stefan Kriwanek escreveu:

Quoted 5 lines

Dear linux-media developers,

I think I found a bug in the support of the TerraTec Cinergy T USB XXS remote control, or maybe just a new hardware revision appeared.

Quoted 8 lines

When I recently bought such a USB-stick I found the remote not working, instead 'dib0700: Unknown remote controller key' lines appearing in syslog on each keypress. The dvb_usb_dib0700 kernel module got autoloaded by my Ubuntu 10.10. I am using current hg revision of v4l-dvb and load the kernel module using the 'dvb_usb_dib0700_ir_proto=0' option. Simply adding the keycodes to the driver file (linux/drivers/media/dvb/dvb-usb/dib0700_devices.c,
patch appended) made things work.

Don't use a legacy, obsoleted, discontinued tree when writing patches. The mercurial tree is obsolete, and it is there just to preserve the tree history.

Instead, you should use the git tree. The media_build tree[1] provides a feature similar to the old hg tree.

[1] http://git.linuxtv.org/media_build.git

The IR code has changed _a_lot_ since the last update in -hg. Basically, the entire support were rewritten, and now the protocol is (or should) be auto-detected.

Douglas,

It would be a good idea to write a patch for the legacy mercurial tree warning people about that.

Quoted 28 lines

However, by incident I found those very keycodes are already defined in the linux/drivers/media/IR/keymaps/rc-nec-terratec-cinergy-xs.c file, so maybe the issue is just about loading it?

'lsusb' lists my device as
Bus 001 Device 006: ID 0ccd:00ab TerraTec Electronic GmbH despite I do not own the 'HD' version of the device, your wiki
http://linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_USB_XXS
says that ID corresponds to. The output of 'lsusb -v' is appended to this mail.

'cat /proc/bus/input/devices' lists the input device as
I: Bus=0003 Vendor=0ccd Product=00ab Version=0100
N: Name="IR-receiver inside an USB DVB receiver"
P: Phys=usb-0000:00:12.2-2/ir0
S: Sysfs=/devices/pci0000:00/0000:00:12.2/usb1/1-2/input/input13
U: Uniq=
H: Handlers=kbd event8
B: EV=3
B: KEY=14afc336 2b4285f00000000 0 480158000 219040000801 9e96c000000000 90024010004ffc

I hope you could add support for my stick; I'd be happy to provide further information if necessary.

Best regards
Stefan