Re: [PATCH 2/2] Bluetooth: hidp: remove wrong send_report at init
From: David Herrmann <hidden>
Date: 2013-07-11 13:51:32
Also in:
linux-bluetooth, lkml
Hi On Thu, Jul 11, 2013 at 3:41 PM, Benjamin Tissoires [off-list ref] wrote:
The USB hid implementation does retrieve the reports during the start. However, this implementation does not call the HID command GET_REPORT (which would fetch the current status of each report), but use the DATA command, which is an Output Report (so transmitting data from the host to the device). The Wiimote controller is already guarded against this problem in the protocol, but it is not conformant to the specification to set all the reports to 0 on start.
I always wondered whether report-setup is really needed for BT-HIDP. The BT profile doesn't mention it but I thought it was part of the USBHID core specification. During hid-wiimote development I added support for HID_QUIRK_NO_INIT_REPORTS to HIDP to silence the wiimote errors. But if you say that it's specific to USBHID, I am fine with this. I never read the USBHID specs, though, I rely on your comment here. Anyway, code looks good: Reviewed-by: David Herrmann [off-list ref] Thanks! David
quoted hunk ↗ jump to hunk
Signed-off-by: Benjamin Tissoires <redacted> --- net/bluetooth/hidp/core.c | 14 -------------- 1 file changed, 14 deletions(-)diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index 9c8b50d..59d132a 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c@@ -703,20 +703,6 @@ static int hidp_parse(struct hid_device *hid) static int hidp_start(struct hid_device *hid) { - struct hidp_session *session = hid->driver_data; - struct hid_report *report; - - if (hid->quirks & HID_QUIRK_NO_INIT_REPORTS) - return 0; - - list_for_each_entry(report, &hid->report_enum[HID_INPUT_REPORT]. - report_list, list) - hidp_send_report(session, report); - - list_for_each_entry(report, &hid->report_enum[HID_FEATURE_REPORT]. - report_list, list) - hidp_send_report(session, report); - return 0; } --1.8.3.1