diff options
Diffstat (limited to 'drivers/hid/hid-logitech-dj.c')
| -rw-r--r-- | drivers/hid/hid-logitech-dj.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c index 5e8a7ed42344..0f9c146fc00d 100644 --- a/drivers/hid/hid-logitech-dj.c +++ b/drivers/hid/hid-logitech-dj.c | |||
| @@ -436,27 +436,37 @@ static int logi_dj_recv_send_report(struct dj_receiver_dev *djrcv_dev, | |||
| 436 | 436 | ||
| 437 | static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev) | 437 | static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev) |
| 438 | { | 438 | { |
| 439 | struct dj_report dj_report; | 439 | struct dj_report *dj_report; |
| 440 | int retval; | ||
| 440 | 441 | ||
| 441 | memset(&dj_report, 0, sizeof(dj_report)); | 442 | dj_report = kzalloc(sizeof(dj_report), GFP_KERNEL); |
| 442 | dj_report.report_id = REPORT_ID_DJ_SHORT; | 443 | if (!dj_report) |
| 443 | dj_report.device_index = 0xFF; | 444 | return -ENOMEM; |
| 444 | dj_report.report_type = REPORT_TYPE_CMD_GET_PAIRED_DEVICES; | 445 | dj_report->report_id = REPORT_ID_DJ_SHORT; |
| 445 | return logi_dj_recv_send_report(djrcv_dev, &dj_report); | 446 | dj_report->device_index = 0xFF; |
| 447 | dj_report->report_type = REPORT_TYPE_CMD_GET_PAIRED_DEVICES; | ||
| 448 | retval = logi_dj_recv_send_report(djrcv_dev, dj_report); | ||
| 449 | kfree(dj_report); | ||
| 450 | return retval; | ||
| 446 | } | 451 | } |
| 447 | 452 | ||
| 448 | static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev, | 453 | static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev, |
| 449 | unsigned timeout) | 454 | unsigned timeout) |
| 450 | { | 455 | { |
| 451 | struct dj_report dj_report; | 456 | struct dj_report *dj_report; |
| 457 | int retval; | ||
| 452 | 458 | ||
| 453 | memset(&dj_report, 0, sizeof(dj_report)); | 459 | dj_report = kzalloc(sizeof(dj_report), GFP_KERNEL); |
| 454 | dj_report.report_id = REPORT_ID_DJ_SHORT; | 460 | if (!dj_report) |
| 455 | dj_report.device_index = 0xFF; | 461 | return -ENOMEM; |
| 456 | dj_report.report_type = REPORT_TYPE_CMD_SWITCH; | 462 | dj_report->report_id = REPORT_ID_DJ_SHORT; |
| 457 | dj_report.report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x3F; | 463 | dj_report->device_index = 0xFF; |
| 458 | dj_report.report_params[CMD_SWITCH_PARAM_TIMEOUT_SECONDS] = (u8)timeout; | 464 | dj_report->report_type = REPORT_TYPE_CMD_SWITCH; |
| 459 | return logi_dj_recv_send_report(djrcv_dev, &dj_report); | 465 | dj_report->report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x3F; |
| 466 | dj_report->report_params[CMD_SWITCH_PARAM_TIMEOUT_SECONDS] = (u8)timeout; | ||
| 467 | retval = logi_dj_recv_send_report(djrcv_dev, dj_report); | ||
| 468 | kfree(dj_report); | ||
| 469 | return retval; | ||
| 460 | } | 470 | } |
| 461 | 471 | ||
| 462 | 472 | ||
