aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/anysee.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/dvb-usb/anysee.c')
-rw-r--r--drivers/media/dvb/dvb-usb/anysee.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c
index faca1ad88a6..4685259e161 100644
--- a/drivers/media/dvb/dvb-usb/anysee.c
+++ b/drivers/media/dvb/dvb-usb/anysee.c
@@ -377,7 +377,7 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap)
377static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state) 377static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
378{ 378{
379 u8 buf[] = {CMD_GET_IR_CODE}; 379 u8 buf[] = {CMD_GET_IR_CODE};
380 struct dvb_usb_rc_key *keymap = d->props.rc_key_map; 380 struct ir_scancode *keymap = d->props.rc.legacy.rc_key_map;
381 u8 ircode[2]; 381 u8 ircode[2];
382 int i, ret; 382 int i, ret;
383 383
@@ -388,10 +388,10 @@ static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
388 *event = 0; 388 *event = 0;
389 *state = REMOTE_NO_KEY_PRESSED; 389 *state = REMOTE_NO_KEY_PRESSED;
390 390
391 for (i = 0; i < d->props.rc_key_map_size; i++) { 391 for (i = 0; i < d->props.rc.legacy.rc_key_map_size; i++) {
392 if (rc5_custom(&keymap[i]) == ircode[0] && 392 if (rc5_custom(&keymap[i]) == ircode[0] &&
393 rc5_data(&keymap[i]) == ircode[1]) { 393 rc5_data(&keymap[i]) == ircode[1]) {
394 *event = keymap[i].event; 394 *event = keymap[i].keycode;
395 *state = REMOTE_KEY_PRESSED; 395 *state = REMOTE_KEY_PRESSED;
396 return 0; 396 return 0;
397 } 397 }
@@ -399,7 +399,7 @@ static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
399 return 0; 399 return 0;
400} 400}
401 401
402static struct dvb_usb_rc_key ir_codes_anysee_table[] = { 402static struct ir_scancode ir_codes_anysee_table[] = {
403 { 0x0100, KEY_0 }, 403 { 0x0100, KEY_0 },
404 { 0x0101, KEY_1 }, 404 { 0x0101, KEY_1 },
405 { 0x0102, KEY_2 }, 405 { 0x0102, KEY_2 },
@@ -463,6 +463,11 @@ static int anysee_probe(struct usb_interface *intf,
463 if (intf->num_altsetting < 1) 463 if (intf->num_altsetting < 1)
464 return -ENODEV; 464 return -ENODEV;
465 465
466 /*
467 * Anysee is always warm (its USB-bridge, Cypress FX2, uploads
468 * firmware from eeprom). If dvb_usb_device_init() succeeds that
469 * means d is a valid pointer.
470 */
466 ret = dvb_usb_device_init(intf, &anysee_properties, THIS_MODULE, &d, 471 ret = dvb_usb_device_init(intf, &anysee_properties, THIS_MODULE, &d,
467 adapter_nr); 472 adapter_nr);
468 if (ret) 473 if (ret)
@@ -479,10 +484,7 @@ static int anysee_probe(struct usb_interface *intf,
479 if (ret) 484 if (ret)
480 return ret; 485 return ret;
481 486
482 if (d) 487 return anysee_init(d);
483 ret = anysee_init(d);
484
485 return ret;
486} 488}
487 489
488static struct usb_device_id anysee_table[] = { 490static struct usb_device_id anysee_table[] = {
@@ -518,10 +520,12 @@ static struct dvb_usb_device_properties anysee_properties = {
518 } 520 }
519 }, 521 },
520 522
521 .rc_key_map = ir_codes_anysee_table, 523 .rc.legacy = {
522 .rc_key_map_size = ARRAY_SIZE(ir_codes_anysee_table), 524 .rc_key_map = ir_codes_anysee_table,
523 .rc_query = anysee_rc_query, 525 .rc_key_map_size = ARRAY_SIZE(ir_codes_anysee_table),
524 .rc_interval = 200, /* windows driver uses 500ms */ 526 .rc_query = anysee_rc_query,
527 .rc_interval = 200, /* windows driver uses 500ms */
528 },
525 529
526 .i2c_algo = &anysee_i2c_algo, 530 .i2c_algo = &anysee_i2c_algo,
527 531