diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb/anysee.c')
| -rw-r--r-- | drivers/media/dvb/dvb-usb/anysee.c | 28 |
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) | |||
| 377 | static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | 377 | static 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 | ||
| 402 | static struct dvb_usb_rc_key ir_codes_anysee_table[] = { | 402 | static 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 | ||
| 488 | static struct usb_device_id anysee_table[] = { | 490 | static 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 | ||
