Skip to content

Commit

Permalink
V4L/DVB: dvb-usb: prepare drivers for using rc-core
Browse files Browse the repository at this point in the history
This is a big patch, yet trivial. It just move the RC properties
to a separate struct, in order to prepare the dvb-usb drivers to
use rc-core. There's no change on the behavior of the drivers.

With this change, it is possible to have both legacy and rc-core
based code inside the dvb-usb-remote, allowing a gradual migration
to rc-core, driver per driver.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Mauro Carvalho Chehab committed Aug 2, 2010
1 parent 34abf21 commit f72a27b
Show file tree
Hide file tree
Showing 21 changed files with 396 additions and 282 deletions.
10 changes: 6 additions & 4 deletions drivers/media/dvb/dvb-usb/a800.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,12 @@ static struct dvb_usb_device_properties a800_properties = {
.power_ctrl = a800_power_ctrl,
.identify_state = a800_identify_state,

.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = ir_codes_a800_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_a800_table),
.rc_query = a800_rc_query,
.rc.legacy = {
.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = ir_codes_a800_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_a800_table),
.rc_query = a800_rc_query,
},

.i2c_algo = &dibusb_i2c_algo,

Expand Down
16 changes: 9 additions & 7 deletions drivers/media/dvb/dvb-usb/af9005.c
Original file line number Diff line number Diff line change
Expand Up @@ -1025,10 +1025,12 @@ static struct dvb_usb_device_properties af9005_properties = {

.i2c_algo = &af9005_i2c_algo,

.rc_interval = 200,
.rc_key_map = NULL,
.rc_key_map_size = 0,
.rc_query = af9005_rc_query,
.rc.legacy = {
.rc_interval = 200,
.rc_key_map = NULL,
.rc_key_map_size = 0,
.rc_query = af9005_rc_query,
},

.generic_bulk_ctrl_endpoint = 2,
.generic_bulk_ctrl_endpoint_response = 1,
Expand Down Expand Up @@ -1072,10 +1074,10 @@ static int __init af9005_usb_module_init(void)
rc_keys_size = symbol_request(ir_codes_af9005_table_size);
if (rc_decode == NULL || rc_keys == NULL || rc_keys_size == NULL) {
err("af9005_rc_decode function not found, disabling remote");
af9005_properties.rc_query = NULL;
af9005_properties.rc.legacy.rc_query = NULL;
} else {
af9005_properties.rc_key_map = rc_keys;
af9005_properties.rc_key_map_size = *rc_keys_size;
af9005_properties.rc.legacy.rc_key_map = rc_keys;
af9005_properties.rc.legacy.rc_key_map_size = *rc_keys_size;
}

return 0;
Expand Down
30 changes: 18 additions & 12 deletions drivers/media/dvb/dvb-usb/af9015.c
Original file line number Diff line number Diff line change
Expand Up @@ -847,8 +847,8 @@ static void af9015_set_remote_config(struct usb_device *udev,
}

if (table) {
props->rc_key_map = table->rc_key_map;
props->rc_key_map_size = table->rc_key_map_size;
props->rc.legacy.rc_key_map = table->rc_key_map;
props->rc.legacy.rc_key_map_size = table->rc_key_map_size;
af9015_config.ir_table = table->ir_table;
af9015_config.ir_table_size = table->ir_table_size;
}
Expand Down Expand Up @@ -878,8 +878,8 @@ static int af9015_read_config(struct usb_device *udev)
deb_info("%s: IR mode:%d\n", __func__, val);
for (i = 0; i < af9015_properties_count; i++) {
if (val == AF9015_IR_MODE_DISABLED) {
af9015_properties[i].rc_key_map = NULL;
af9015_properties[i].rc_key_map_size = 0;
af9015_properties[i].rc.legacy.rc_key_map = NULL;
af9015_properties[i].rc.legacy.rc_key_map_size = 0;
} else
af9015_set_remote_config(udev, &af9015_properties[i]);
}
Expand Down Expand Up @@ -1063,7 +1063,7 @@ static int af9015_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
{
u8 buf[8];
struct req_t req = {GET_IR_CODE, 0, 0, 0, 0, sizeof(buf), buf};
struct ir_scancode *keymap = d->props.rc_key_map;
struct ir_scancode *keymap = d->props.rc.legacy.rc_key_map;
int i, ret;

memset(buf, 0, sizeof(buf));
Expand All @@ -1075,7 +1075,7 @@ static int af9015_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
*event = 0;
*state = REMOTE_NO_KEY_PRESSED;

for (i = 0; i < d->props.rc_key_map_size; i++) {
for (i = 0; i < d->props.rc.legacy.rc_key_map_size; i++) {
if (!buf[1] && rc5_custom(&keymap[i]) == buf[0] &&
rc5_data(&keymap[i]) == buf[2]) {
*event = keymap[i].keycode;
Expand Down Expand Up @@ -1354,8 +1354,10 @@ static struct dvb_usb_device_properties af9015_properties[] = {

.identify_state = af9015_identify_state,

.rc_query = af9015_rc_query,
.rc_interval = 150,
.rc.legacy = {
.rc_query = af9015_rc_query,
.rc_interval = 150,
},

.i2c_algo = &af9015_i2c_algo,

Expand Down Expand Up @@ -1461,8 +1463,10 @@ static struct dvb_usb_device_properties af9015_properties[] = {

.identify_state = af9015_identify_state,

.rc_query = af9015_rc_query,
.rc_interval = 150,
.rc.legacy = {
.rc_query = af9015_rc_query,
.rc_interval = 150,
},

.i2c_algo = &af9015_i2c_algo,

Expand Down Expand Up @@ -1568,8 +1572,10 @@ static struct dvb_usb_device_properties af9015_properties[] = {

.identify_state = af9015_identify_state,

.rc_query = af9015_rc_query,
.rc_interval = 150,
.rc.legacy = {
.rc_query = af9015_rc_query,
.rc_interval = 150,
},

.i2c_algo = &af9015_i2c_algo,

Expand Down
14 changes: 8 additions & 6 deletions drivers/media/dvb/dvb-usb/anysee.c
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap)
static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
{
u8 buf[] = {CMD_GET_IR_CODE};
struct ir_scancode *keymap = d->props.rc_key_map;
struct ir_scancode *keymap = d->props.rc.legacy.rc_key_map;
u8 ircode[2];
int i, ret;

Expand All @@ -388,7 +388,7 @@ static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
*event = 0;
*state = REMOTE_NO_KEY_PRESSED;

for (i = 0; i < d->props.rc_key_map_size; i++) {
for (i = 0; i < d->props.rc.legacy.rc_key_map_size; i++) {
if (rc5_custom(&keymap[i]) == ircode[0] &&
rc5_data(&keymap[i]) == ircode[1]) {
*event = keymap[i].keycode;
Expand Down Expand Up @@ -520,10 +520,12 @@ static struct dvb_usb_device_properties anysee_properties = {
}
},

.rc_key_map = ir_codes_anysee_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_anysee_table),
.rc_query = anysee_rc_query,
.rc_interval = 200, /* windows driver uses 500ms */
.rc.legacy = {
.rc_key_map = ir_codes_anysee_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_anysee_table),
.rc_query = anysee_rc_query,
.rc_interval = 200, /* windows driver uses 500ms */
},

.i2c_algo = &anysee_i2c_algo,

Expand Down
11 changes: 7 additions & 4 deletions drivers/media/dvb/dvb-usb/az6027.c
Original file line number Diff line number Diff line change
Expand Up @@ -1125,10 +1125,13 @@ static struct dvb_usb_device_properties az6027_properties = {
.power_ctrl = az6027_power_ctrl,
.read_mac_address = az6027_read_mac_addr,
*/
.rc_key_map = ir_codes_az6027_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_az6027_table),
.rc_interval = 400,
.rc_query = az6027_rc_query,
.rc.legacy = {
.rc_key_map = ir_codes_az6027_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_az6027_table),
.rc_interval = 400,
.rc_query = az6027_rc_query,
},

.i2c_algo = &az6027_i2c_algo,

.num_device_descs = 5,
Expand Down
10 changes: 6 additions & 4 deletions drivers/media/dvb/dvb-usb/cinergyT2-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,10 +217,12 @@ static struct dvb_usb_device_properties cinergyt2_properties = {

.power_ctrl = cinergyt2_power_ctrl,

.rc_interval = 50,
.rc_key_map = ir_codes_cinergyt2_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_cinergyt2_table),
.rc_query = cinergyt2_rc_query,
.rc.legacy = {
.rc_interval = 50,
.rc_key_map = ir_codes_cinergyt2_table,
.rc_key_map_size = ARRAY_SIZE(ir_codes_cinergyt2_table),
.rc_query = cinergyt2_rc_query,
},

.generic_bulk_ctrl_endpoint = 1,

Expand Down
Loading

0 comments on commit f72a27b

Please sign in to comment.