HID: sony: do not rely on hid_output_raw_report
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Sun, 9 Mar 2014 03:52:42 +0000 (22:52 -0500)
committerJiri Kosina <jkosina@suse.cz>
Fri, 14 Mar 2014 14:30:20 +0000 (15:30 +0100)
commite534a9352237e84263cecedff283387b144b3ed8
tree59ef11db183e22e6192c7a5ab9587a62c0ad7dd1
parent65ab2fc479fa8554e26d6d1726a4ebe6f29a73be
HID: sony: do not rely on hid_output_raw_report

hid_out_raw_report is going to be obsoleted as it is not part of the
unified HID low level transport documentation
(Documentation/hid/hid-transport.txt)

To do so, we need to introduce two new quirks:
* HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP: this quirks prevents the
  transport driver to use the interrupt channel to send output report
  (and thus force to use HID_REQ_SET_REPORT command)
* HID_QUIRK_SKIP_OUTPUT_REPORT_ID: this one forces usbhid to not
  include the report ID in the buffer it sends to the device through
  HID_REQ_SET_REPORT in case of an output report

This also fixes a regression introduced in commit 3a75b24949a8
(HID: hidraw: replace hid_output_raw_report() calls by appropriates ones).
The hidraw API was not able to communicate with the PS3 SixAxis
controllers in USB mode.

Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Tested-by: Antonio Ospite <ao2@ao2.it>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-sony.c
drivers/hid/hidraw.c
drivers/hid/usbhid/hid-core.c
include/linux/hid.h