Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: logitech-dj: remove hid_output_raw_report call

hid-input do not use anymore hid_output_raw_report() to set the LEDs.
Use the correct implementation now and make them working again.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Benjamin Tissoires and committed by
Jiri Kosina
bd27e202 ddea1af9

+6 -15
+6 -15
drivers/hid/hid-logitech-dj.c
··· 193 193 194 194 static struct hid_ll_driver logi_dj_ll_driver; 195 195 196 - static int logi_dj_output_hidraw_report(struct hid_device *hid, u8 * buf, 197 - size_t count, 198 - unsigned char report_type); 199 196 static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev); 200 197 201 198 static void logi_dj_recv_destroy_djhid_device(struct dj_receiver_dev *djrcv_dev, ··· 259 262 } 260 263 261 264 dj_hiddev->ll_driver = &logi_dj_ll_driver; 262 - dj_hiddev->hid_output_raw_report = logi_dj_output_hidraw_report; 263 265 264 266 dj_hiddev->dev.parent = &djrcv_hdev->dev; 265 267 dj_hiddev->bus = BUS_USB; ··· 540 544 dbg_hid("%s:%s\n", __func__, hid->phys); 541 545 } 542 546 543 - static int logi_dj_output_hidraw_report(struct hid_device *hid, u8 * buf, 544 - size_t count, 545 - unsigned char report_type) 547 + static int logi_dj_ll_raw_request(struct hid_device *hid, 548 + unsigned char reportnum, __u8 *buf, 549 + size_t count, unsigned char report_type, 550 + int reqtype) 546 551 { 547 552 struct dj_device *djdev = hid->driver_data; 548 553 struct dj_receiver_dev *djrcv_dev = djdev->dj_receiver_dev; ··· 564 567 out_buf[1] = djdev->device_index; 565 568 memcpy(out_buf + 2, buf, count); 566 569 567 - /* 568 - * hid-generic calls us with hid_output_raw_report(), but the LEDs 569 - * are set through a SET_REPORT command. It works for USB-HID devices 570 - * because usbhid either calls a SET_REPORT or directly send the output 571 - * report depending if the device presents an urbout. 572 - * Let be simple, send a SET_REPORT request. 573 - */ 574 570 ret = hid_hw_raw_request(djrcv_dev->hdev, out_buf[0], out_buf, 575 - DJREPORT_SHORT_LENGTH, report_type, HID_REQ_SET_REPORT); 571 + DJREPORT_SHORT_LENGTH, report_type, reqtype); 576 572 577 573 kfree(out_buf); 578 574 return ret; ··· 652 662 .stop = logi_dj_ll_stop, 653 663 .open = logi_dj_ll_open, 654 664 .close = logi_dj_ll_close, 665 + .raw_request = logi_dj_ll_raw_request, 655 666 }; 656 667 657 668