2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-25 13:43:55 +08:00

[media] cxusb: port to rc-core

The d680_dmb keymap has some new new mappings.

Tested-by: Vincent McIntyre <vincent.mcintyre@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Sean Young 2016-11-20 07:45:52 -02:00 committed by Mauro Carvalho Chehab
parent 74d47d75be
commit 517b500713
6 changed files with 322 additions and 232 deletions

View File

@ -21,6 +21,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-cec.o \
rc-cinergy-1400.o \
rc-cinergy.o \
rc-d680-dmb.o \
rc-delock-61959.o \
rc-dib0700-nec.o \
rc-dib0700-rc5.o \
@ -31,6 +32,8 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-dntv-live-dvbt-pro.o \
rc-dtt200u.o \
rc-dvbsky.o \
rc-dvico-mce.o \
rc-dvico-portable.o \
rc-em-terratec.o \
rc-encore-enltv2.o \
rc-encore-enltv.o \

View File

@ -0,0 +1,75 @@
/*
* keymap imported from cxusb.c
*
* Copyright (C) 2016 Sean Young
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2.
*/
#include <media/rc-map.h>
#include <linux/module.h>
static struct rc_map_table rc_map_d680_dmb_table[] = {
{ 0x0038, KEY_SWITCHVIDEOMODE }, /* TV/AV */
{ 0x080c, KEY_ZOOM },
{ 0x0800, KEY_0 },
{ 0x0001, KEY_1 },
{ 0x0802, KEY_2 },
{ 0x0003, KEY_3 },
{ 0x0804, KEY_4 },
{ 0x0005, KEY_5 },
{ 0x0806, KEY_6 },
{ 0x0007, KEY_7 },
{ 0x0808, KEY_8 },
{ 0x0009, KEY_9 },
{ 0x000a, KEY_MUTE },
{ 0x0829, KEY_BACK },
{ 0x0012, KEY_CHANNELUP },
{ 0x0813, KEY_CHANNELDOWN },
{ 0x002b, KEY_VOLUMEUP },
{ 0x082c, KEY_VOLUMEDOWN },
{ 0x0020, KEY_UP },
{ 0x0821, KEY_DOWN },
{ 0x0011, KEY_LEFT },
{ 0x0810, KEY_RIGHT },
{ 0x000d, KEY_OK },
{ 0x081f, KEY_RECORD },
{ 0x0017, KEY_PLAYPAUSE },
{ 0x0816, KEY_PLAYPAUSE },
{ 0x000b, KEY_STOP },
{ 0x0827, KEY_FASTFORWARD },
{ 0x0026, KEY_REWIND },
{ 0x081e, KEY_UNKNOWN }, /* Time Shift */
{ 0x000e, KEY_UNKNOWN }, /* Snapshot */
{ 0x082d, KEY_UNKNOWN }, /* Mouse Cursor */
{ 0x000f, KEY_UNKNOWN }, /* Minimize/Maximize */
{ 0x0814, KEY_SHUFFLE }, /* Shuffle */
{ 0x0025, KEY_POWER },
};
static struct rc_map_list d680_dmb_map = {
.map = {
.scan = rc_map_d680_dmb_table,
.size = ARRAY_SIZE(rc_map_d680_dmb_table),
.rc_type = RC_TYPE_UNKNOWN, /* Legacy IR type */
.name = RC_MAP_D680_DMB,
}
};
static int __init init_rc_map_d680_dmb(void)
{
return rc_map_register(&d680_dmb_map);
}
static void __exit exit_rc_map_d680_dmb(void)
{
rc_map_unregister(&d680_dmb_map);
}
module_init(init_rc_map_d680_dmb)
module_exit(exit_rc_map_d680_dmb)
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Mauro Carvalho Chehab");

View File

@ -0,0 +1,85 @@
/*
* keymap imported from cxusb.c
*
* Copyright (C) 2016 Sean Young
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2.
*/
#include <media/rc-map.h>
#include <linux/module.h>
static struct rc_map_table rc_map_dvico_mce_table[] = {
{ 0xfe02, KEY_TV },
{ 0xfe0e, KEY_MP3 },
{ 0xfe1a, KEY_DVD },
{ 0xfe1e, KEY_FAVORITES },
{ 0xfe16, KEY_SETUP },
{ 0xfe46, KEY_POWER2 },
{ 0xfe0a, KEY_EPG },
{ 0xfe49, KEY_BACK },
{ 0xfe4d, KEY_MENU },
{ 0xfe51, KEY_UP },
{ 0xfe5b, KEY_LEFT },
{ 0xfe5f, KEY_RIGHT },
{ 0xfe53, KEY_DOWN },
{ 0xfe5e, KEY_OK },
{ 0xfe59, KEY_INFO },
{ 0xfe55, KEY_TAB },
{ 0xfe0f, KEY_PREVIOUSSONG },/* Replay */
{ 0xfe12, KEY_NEXTSONG }, /* Skip */
{ 0xfe42, KEY_ENTER }, /* Windows/Start */
{ 0xfe15, KEY_VOLUMEUP },
{ 0xfe05, KEY_VOLUMEDOWN },
{ 0xfe11, KEY_CHANNELUP },
{ 0xfe09, KEY_CHANNELDOWN },
{ 0xfe52, KEY_CAMERA },
{ 0xfe5a, KEY_TUNER }, /* Live */
{ 0xfe19, KEY_OPEN },
{ 0xfe0b, KEY_1 },
{ 0xfe17, KEY_2 },
{ 0xfe1b, KEY_3 },
{ 0xfe07, KEY_4 },
{ 0xfe50, KEY_5 },
{ 0xfe54, KEY_6 },
{ 0xfe48, KEY_7 },
{ 0xfe4c, KEY_8 },
{ 0xfe58, KEY_9 },
{ 0xfe13, KEY_ANGLE }, /* Aspect */
{ 0xfe03, KEY_0 },
{ 0xfe1f, KEY_ZOOM },
{ 0xfe43, KEY_REWIND },
{ 0xfe47, KEY_PLAYPAUSE },
{ 0xfe4f, KEY_FASTFORWARD },
{ 0xfe57, KEY_MUTE },
{ 0xfe0d, KEY_STOP },
{ 0xfe01, KEY_RECORD },
{ 0xfe4e, KEY_POWER },
};
static struct rc_map_list dvico_mce_map = {
.map = {
.scan = rc_map_dvico_mce_table,
.size = ARRAY_SIZE(rc_map_dvico_mce_table),
.rc_type = RC_TYPE_UNKNOWN, /* Legacy IR type */
.name = RC_MAP_DVICO_MCE,
}
};
static int __init init_rc_map_dvico_mce(void)
{
return rc_map_register(&dvico_mce_map);
}
static void __exit exit_rc_map_dvico_mce(void)
{
rc_map_unregister(&dvico_mce_map);
}
module_init(init_rc_map_dvico_mce)
module_exit(exit_rc_map_dvico_mce)
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Mauro Carvalho Chehab");

View File

@ -0,0 +1,76 @@
/*
* keymap imported from cxusb.c
*
* Copyright (C) 2016 Sean Young
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2.
*/
#include <media/rc-map.h>
#include <linux/module.h>
static struct rc_map_table rc_map_dvico_portable_table[] = {
{ 0xfc02, KEY_SETUP }, /* Profile */
{ 0xfc43, KEY_POWER2 },
{ 0xfc06, KEY_EPG },
{ 0xfc5a, KEY_BACK },
{ 0xfc05, KEY_MENU },
{ 0xfc47, KEY_INFO },
{ 0xfc01, KEY_TAB },
{ 0xfc42, KEY_PREVIOUSSONG },/* Replay */
{ 0xfc49, KEY_VOLUMEUP },
{ 0xfc09, KEY_VOLUMEDOWN },
{ 0xfc54, KEY_CHANNELUP },
{ 0xfc0b, KEY_CHANNELDOWN },
{ 0xfc16, KEY_CAMERA },
{ 0xfc40, KEY_TUNER }, /* ATV/DTV */
{ 0xfc45, KEY_OPEN },
{ 0xfc19, KEY_1 },
{ 0xfc18, KEY_2 },
{ 0xfc1b, KEY_3 },
{ 0xfc1a, KEY_4 },
{ 0xfc58, KEY_5 },
{ 0xfc59, KEY_6 },
{ 0xfc15, KEY_7 },
{ 0xfc14, KEY_8 },
{ 0xfc17, KEY_9 },
{ 0xfc44, KEY_ANGLE }, /* Aspect */
{ 0xfc55, KEY_0 },
{ 0xfc07, KEY_ZOOM },
{ 0xfc0a, KEY_REWIND },
{ 0xfc08, KEY_PLAYPAUSE },
{ 0xfc4b, KEY_FASTFORWARD },
{ 0xfc5b, KEY_MUTE },
{ 0xfc04, KEY_STOP },
{ 0xfc56, KEY_RECORD },
{ 0xfc57, KEY_POWER },
{ 0xfc41, KEY_UNKNOWN }, /* INPUT */
{ 0xfc00, KEY_UNKNOWN }, /* HD */
};
static struct rc_map_list dvico_portable_map = {
.map = {
.scan = rc_map_dvico_portable_table,
.size = ARRAY_SIZE(rc_map_dvico_portable_table),
.rc_type = RC_TYPE_UNKNOWN, /* Legacy IR type */
.name = RC_MAP_DVICO_PORTABLE,
}
};
static int __init init_rc_map_dvico_portable(void)
{
return rc_map_register(&dvico_portable_map);
}
static void __exit exit_rc_map_dvico_portable(void)
{
rc_map_unregister(&dvico_portable_map);
}
module_init(init_rc_map_dvico_portable)
module_exit(exit_rc_map_dvico_portable)
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Mauro Carvalho Chehab");

View File

@ -450,208 +450,45 @@ static int cxusb_d680_dmb_streaming_ctrl(
}
}
static int cxusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
static int cxusb_rc_query(struct dvb_usb_device *d)
{
struct rc_map_table *keymap = d->props.rc.legacy.rc_map_table;
u8 ircode[4];
int i;
cxusb_ctrl_msg(d, CMD_GET_IR_CODE, NULL, 0, ircode, 4);
*event = 0;
*state = REMOTE_NO_KEY_PRESSED;
for (i = 0; i < d->props.rc.legacy.rc_map_size; i++) {
if (rc5_custom(&keymap[i]) == ircode[2] &&
rc5_data(&keymap[i]) == ircode[3]) {
*event = keymap[i].keycode;
*state = REMOTE_KEY_PRESSED;
return 0;
}
}
if (ircode[2] || ircode[3])
rc_keydown(d->rc_dev, RC_TYPE_UNKNOWN,
RC_SCANCODE_RC5(ircode[2], ircode[3]), 0);
return 0;
}
static int cxusb_bluebird2_rc_query(struct dvb_usb_device *d, u32 *event,
int *state)
static int cxusb_bluebird2_rc_query(struct dvb_usb_device *d)
{
struct rc_map_table *keymap = d->props.rc.legacy.rc_map_table;
u8 ircode[4];
int i;
struct i2c_msg msg = { .addr = 0x6b, .flags = I2C_M_RD,
.buf = ircode, .len = 4 };
*event = 0;
*state = REMOTE_NO_KEY_PRESSED;
if (cxusb_i2c_xfer(&d->i2c_adap, &msg, 1) != 1)
return 0;
for (i = 0; i < d->props.rc.legacy.rc_map_size; i++) {
if (rc5_custom(&keymap[i]) == ircode[1] &&
rc5_data(&keymap[i]) == ircode[2]) {
*event = keymap[i].keycode;
*state = REMOTE_KEY_PRESSED;
return 0;
}
}
if (ircode[1] || ircode[2])
rc_keydown(d->rc_dev, RC_TYPE_UNKNOWN,
RC_SCANCODE_RC5(ircode[1], ircode[2]), 0);
return 0;
}
static int cxusb_d680_dmb_rc_query(struct dvb_usb_device *d, u32 *event,
int *state)
static int cxusb_d680_dmb_rc_query(struct dvb_usb_device *d)
{
struct rc_map_table *keymap = d->props.rc.legacy.rc_map_table;
u8 ircode[2];
int i;
*event = 0;
*state = REMOTE_NO_KEY_PRESSED;
if (cxusb_ctrl_msg(d, 0x10, NULL, 0, ircode, 2) < 0)
return 0;
for (i = 0; i < d->props.rc.legacy.rc_map_size; i++) {
if (rc5_custom(&keymap[i]) == ircode[0] &&
rc5_data(&keymap[i]) == ircode[1]) {
*event = keymap[i].keycode;
*state = REMOTE_KEY_PRESSED;
if (ircode[0] || ircode[1])
rc_keydown(d->rc_dev, RC_TYPE_UNKNOWN,
RC_SCANCODE_RC5(ircode[0], ircode[1]), 0);
return 0;
}
}
return 0;
}
static struct rc_map_table rc_map_dvico_mce_table[] = {
{ 0xfe02, KEY_TV },
{ 0xfe0e, KEY_MP3 },
{ 0xfe1a, KEY_DVD },
{ 0xfe1e, KEY_FAVORITES },
{ 0xfe16, KEY_SETUP },
{ 0xfe46, KEY_POWER2 },
{ 0xfe0a, KEY_EPG },
{ 0xfe49, KEY_BACK },
{ 0xfe4d, KEY_MENU },
{ 0xfe51, KEY_UP },
{ 0xfe5b, KEY_LEFT },
{ 0xfe5f, KEY_RIGHT },
{ 0xfe53, KEY_DOWN },
{ 0xfe5e, KEY_OK },
{ 0xfe59, KEY_INFO },
{ 0xfe55, KEY_TAB },
{ 0xfe0f, KEY_PREVIOUSSONG },/* Replay */
{ 0xfe12, KEY_NEXTSONG }, /* Skip */
{ 0xfe42, KEY_ENTER }, /* Windows/Start */
{ 0xfe15, KEY_VOLUMEUP },
{ 0xfe05, KEY_VOLUMEDOWN },
{ 0xfe11, KEY_CHANNELUP },
{ 0xfe09, KEY_CHANNELDOWN },
{ 0xfe52, KEY_CAMERA },
{ 0xfe5a, KEY_TUNER }, /* Live */
{ 0xfe19, KEY_OPEN },
{ 0xfe0b, KEY_1 },
{ 0xfe17, KEY_2 },
{ 0xfe1b, KEY_3 },
{ 0xfe07, KEY_4 },
{ 0xfe50, KEY_5 },
{ 0xfe54, KEY_6 },
{ 0xfe48, KEY_7 },
{ 0xfe4c, KEY_8 },
{ 0xfe58, KEY_9 },
{ 0xfe13, KEY_ANGLE }, /* Aspect */
{ 0xfe03, KEY_0 },
{ 0xfe1f, KEY_ZOOM },
{ 0xfe43, KEY_REWIND },
{ 0xfe47, KEY_PLAYPAUSE },
{ 0xfe4f, KEY_FASTFORWARD },
{ 0xfe57, KEY_MUTE },
{ 0xfe0d, KEY_STOP },
{ 0xfe01, KEY_RECORD },
{ 0xfe4e, KEY_POWER },
};
static struct rc_map_table rc_map_dvico_portable_table[] = {
{ 0xfc02, KEY_SETUP }, /* Profile */
{ 0xfc43, KEY_POWER2 },
{ 0xfc06, KEY_EPG },
{ 0xfc5a, KEY_BACK },
{ 0xfc05, KEY_MENU },
{ 0xfc47, KEY_INFO },
{ 0xfc01, KEY_TAB },
{ 0xfc42, KEY_PREVIOUSSONG },/* Replay */
{ 0xfc49, KEY_VOLUMEUP },
{ 0xfc09, KEY_VOLUMEDOWN },
{ 0xfc54, KEY_CHANNELUP },
{ 0xfc0b, KEY_CHANNELDOWN },
{ 0xfc16, KEY_CAMERA },
{ 0xfc40, KEY_TUNER }, /* ATV/DTV */
{ 0xfc45, KEY_OPEN },
{ 0xfc19, KEY_1 },
{ 0xfc18, KEY_2 },
{ 0xfc1b, KEY_3 },
{ 0xfc1a, KEY_4 },
{ 0xfc58, KEY_5 },
{ 0xfc59, KEY_6 },
{ 0xfc15, KEY_7 },
{ 0xfc14, KEY_8 },
{ 0xfc17, KEY_9 },
{ 0xfc44, KEY_ANGLE }, /* Aspect */
{ 0xfc55, KEY_0 },
{ 0xfc07, KEY_ZOOM },
{ 0xfc0a, KEY_REWIND },
{ 0xfc08, KEY_PLAYPAUSE },
{ 0xfc4b, KEY_FASTFORWARD },
{ 0xfc5b, KEY_MUTE },
{ 0xfc04, KEY_STOP },
{ 0xfc56, KEY_RECORD },
{ 0xfc57, KEY_POWER },
{ 0xfc41, KEY_UNKNOWN }, /* INPUT */
{ 0xfc00, KEY_UNKNOWN }, /* HD */
};
static struct rc_map_table rc_map_d680_dmb_table[] = {
{ 0x0038, KEY_UNKNOWN }, /* TV/AV */
{ 0x080c, KEY_ZOOM },
{ 0x0800, KEY_0 },
{ 0x0001, KEY_1 },
{ 0x0802, KEY_2 },
{ 0x0003, KEY_3 },
{ 0x0804, KEY_4 },
{ 0x0005, KEY_5 },
{ 0x0806, KEY_6 },
{ 0x0007, KEY_7 },
{ 0x0808, KEY_8 },
{ 0x0009, KEY_9 },
{ 0x000a, KEY_MUTE },
{ 0x0829, KEY_BACK },
{ 0x0012, KEY_CHANNELUP },
{ 0x0813, KEY_CHANNELDOWN },
{ 0x002b, KEY_VOLUMEUP },
{ 0x082c, KEY_VOLUMEDOWN },
{ 0x0020, KEY_UP },
{ 0x0821, KEY_DOWN },
{ 0x0011, KEY_LEFT },
{ 0x0810, KEY_RIGHT },
{ 0x000d, KEY_OK },
{ 0x081f, KEY_RECORD },
{ 0x0017, KEY_PLAYPAUSE },
{ 0x0816, KEY_PLAYPAUSE },
{ 0x000b, KEY_STOP },
{ 0x0827, KEY_FASTFORWARD },
{ 0x0026, KEY_REWIND },
{ 0x081e, KEY_UNKNOWN }, /* Time Shift */
{ 0x000e, KEY_UNKNOWN }, /* Snapshot */
{ 0x082d, KEY_UNKNOWN }, /* Mouse Cursor */
{ 0x000f, KEY_UNKNOWN }, /* Minimize/Maximize */
{ 0x0814, KEY_UNKNOWN }, /* Shuffle */
{ 0x0025, KEY_POWER },
};
static int cxusb_dee1601_demod_init(struct dvb_frontend* fe)
{
@ -1000,7 +837,7 @@ static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap)
return -EIO;
/* try to determine if there is no IR decoder on the I2C bus */
for (i = 0; adap->dev->props.rc.legacy.rc_map_table != NULL && i < 5; i++) {
for (i = 0; adap->dev->props.rc.core.rc_codes && i < 5; i++) {
msleep(20);
if (cxusb_i2c_xfer(&adap->dev->i2c_adap, &msg, 1) != 1)
goto no_IR;
@ -1008,7 +845,7 @@ static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap)
continue;
if (ircode[2] + ircode[3] != 0xff) {
no_IR:
adap->dev->props.rc.legacy.rc_map_table = NULL;
adap->dev->props.rc.core.rc_codes = NULL;
info("No IR receiver detected on this device.");
break;
}
@ -1720,11 +1557,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgh064f_properties = {
.i2c_algo = &cxusb_i2c_algo,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_portable_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table),
.rc_codes = RC_MAP_DVICO_PORTABLE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.generic_bulk_ctrl_endpoint = 0x01,
@ -1776,11 +1614,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_dee1601_properties = {
.i2c_algo = &cxusb_i2c_algo,
.rc.legacy = {
.rc_interval = 150,
.rc_map_table = rc_map_dvico_mce_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table),
.rc.core = {
.rc_interval = 100,
.rc_codes = RC_MAP_DVICO_MCE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.generic_bulk_ctrl_endpoint = 0x01,
@ -1840,11 +1679,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgz201_properties = {
.i2c_algo = &cxusb_i2c_algo,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_portable_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table),
.rc_codes = RC_MAP_DVICO_PORTABLE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.generic_bulk_ctrl_endpoint = 0x01,
@ -1895,11 +1735,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_dtt7579_properties = {
.i2c_algo = &cxusb_i2c_algo,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_portable_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table),
.rc_codes = RC_MAP_DVICO_PORTABLE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.generic_bulk_ctrl_endpoint = 0x01,
@ -1949,11 +1790,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_dualdig4_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_mce_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table),
.rc_codes = RC_MAP_DVICO_MCE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_bluebird2_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,
@ -2002,11 +1844,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_portable_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table),
.rc_codes = RC_MAP_DVICO_PORTABLE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_bluebird2_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,
@ -2057,11 +1900,12 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_needsfirmware_prope
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_portable_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table),
.rc_codes = RC_MAP_DVICO_PORTABLE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,
@ -2155,11 +1999,12 @@ struct dvb_usb_device_properties cxusb_bluebird_dualdig4_rev2_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_dvico_mce_table,
.rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table),
.rc_codes = RC_MAP_DVICO_MCE,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,
@ -2208,11 +2053,12 @@ static struct dvb_usb_device_properties cxusb_d680_dmb_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_d680_dmb_table,
.rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table),
.rc_codes = RC_MAP_D680_DMB,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_d680_dmb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,
@ -2262,11 +2108,12 @@ static struct dvb_usb_device_properties cxusb_mygica_d689_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_d680_dmb_table,
.rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table),
.rc_codes = RC_MAP_D680_DMB,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_d680_dmb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,
@ -2315,11 +2162,12 @@ static struct dvb_usb_device_properties cxusb_mygica_t230_properties = {
.generic_bulk_ctrl_endpoint = 0x01,
.rc.legacy = {
.rc.core = {
.rc_interval = 100,
.rc_map_table = rc_map_d680_dmb_table,
.rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table),
.rc_codes = RC_MAP_D680_DMB,
.module_name = KBUILD_MODNAME,
.rc_query = cxusb_d680_dmb_rc_query,
.allowed_protos = RC_BIT_UNKNOWN,
},
.num_device_descs = 1,

View File

@ -198,6 +198,7 @@ struct rc_map *rc_map_get(const char *name);
#define RC_MAP_CEC "rc-cec"
#define RC_MAP_CINERGY_1400 "rc-cinergy-1400"
#define RC_MAP_CINERGY "rc-cinergy"
#define RC_MAP_D680_DMB "rc-d680-dmb"
#define RC_MAP_DELOCK_61959 "rc-delock-61959"
#define RC_MAP_DIB0700_NEC_TABLE "rc-dib0700-nec"
#define RC_MAP_DIB0700_RC5_TABLE "rc-dib0700-rc5"
@ -208,6 +209,8 @@ struct rc_map *rc_map_get(const char *name);
#define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t"
#define RC_MAP_DTT200U "rc-dtt200u"
#define RC_MAP_DVBSKY "rc-dvbsky"
#define RC_MAP_DVICO_MCE "rc-dvico-mce"
#define RC_MAP_DVICO_PORTABLE "rc-dvico-portable"
#define RC_MAP_EMPTY "rc-empty"
#define RC_MAP_EM_TERRATEC "rc-em-terratec"
#define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2"