diff mbox

set default protocol for TerraTec Cinergy XXS to "nec"

Message ID 50181DF7.8080807@gmx.de (mailing list archive)
State New, archived
Headers show

Commit Message

Toralf Förster July 31, 2012, 6:03 p.m. UTC
On 07/30/2012 06:13 PM, Mauro Carvalho Chehab wrote:
> Em 16-07-2012 17:22, Toralf Förster escreveu:
>> For a TerraTec Cinergy XXS USB stick (Bus 001 Device 008: ID 0ccd:00ab TerraTec Electronic GmbH )
>> I've to switch the protocol every time after plugin to get (at least few) keys working :
>>
>> $> sudo ir-keytable --protocol=nec --sysdev=`ir-keytable 2>&1 | head -n 1 | cut -f5 -d'/'`
>>
>> /me wonders whether "nec" should be set as the default for this key in kernel or not
> 
> It makes sense to patch it to use the nec protocol. If not all keys are working, it also makes
> sense to fix the kernel table to handle all codes, or to point to a new table where all
> Terratec keys are defined.
> 
> Could you please write such patch?
> 
> Thank you!
> Mauro

I tried it, but the attached (naive) approach doesn't work.
The kernel dmesg shows "kernel: Registered IR keymap rc-dib0700-nec"
but keys aren't recognized.
diff mbox

Patch

diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 510001d..46215cc 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -4276,8 +4276,7 @@  struct dvb_usb_device_properties dib0700_devices[] = {
 			},
 			{   "Terratec Cinergy T USB XXS (HD)/ T3",
 				{ &dib0700_usb_id_table[33],
-					&dib0700_usb_id_table[52],
-					&dib0700_usb_id_table[60], NULL},
+					&dib0700_usb_id_table[52], NULL},
 				{ NULL },
 			},
 			{   "TechniSat AirStar TeleStick 2",
@@ -4301,6 +4300,45 @@  struct dvb_usb_device_properties dib0700_devices[] = {
 			.change_protocol  = dib0700_change_protocol,
 		},
 	}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
+
+		.num_adapters = 1,
+		.adapter = {
+			{
+			.num_frontends = 1,
+			.fe = {{
+				.caps = DVB_USB_ADAP_HAS_PID_FILTER | DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
+				.pid_filter_count = 32,
+				.pid_filter       = stk70x0p_pid_filter,
+				.pid_filter_ctrl  = stk70x0p_pid_filter_ctrl,
+				.frontend_attach  = stk7770p_frontend_attach,
+				.tuner_attach     = dib7770p_tuner_attach,
+
+				DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
+			}},
+				.size_of_priv =
+					sizeof(struct dib0700_adapter_state),
+			},
+		},
+
+		.num_device_descs = 1,
+		.devices = {
+			{   "Terratec Cinergy T USB XXS (HD)/ T3 _2",
+				{ &dib0700_usb_id_table[60], NULL},
+				{ NULL },
+			},
+		},
+
+		.rc.core = {
+			.rc_interval      = DEFAULT_RC_INTERVAL,
+			.rc_codes         = RC_MAP_DIB0700_NEC_TABLE,
+			.module_name	  = "dib0700",
+			.rc_query         = dib0700_rc_query_old_firmware,
+			.allowed_protos   = RC_TYPE_RC5 |
+					    RC_TYPE_RC6 |
+					    RC_TYPE_NEC,
+			.change_protocol  = dib0700_change_protocol,
+		},
+	}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
 		.num_adapters = 1,
 		.adapter = {
 			{