HID: bt hidp: send Output reports using SET_REPORT on the Control channel
authorAntonio Ospite <ospite@studenti.unina.it>
Sun, 20 Feb 2011 17:26:46 +0000 (18:26 +0100)
committerJiri Kosina <jkosina@suse.cz>
Tue, 22 Feb 2011 10:08:13 +0000 (11:08 +0100)
commit97e1efbbe1c8492ea4f804618e26b19325c879fe
tree9a46a400faa2ee60cd1f70aaaa97df26d27cfd00
parent5710fabf315efcd53c54ad4ecc6158f2964745e3
HID: bt hidp: send Output reports using SET_REPORT on the Control channel

The current implementation of hidp_output_raw_report() relies only on
the Control channel even for Output reports, and the BT HID
specification [1] does not mention using the DATA message for Output
reports on the Control channel (see section 7.9.1 and also Figure 11:
SET_ Flow Chart), so let us just use SET_REPORT.

This also fixes sending Output reports to some devices (like Sony
Sixaxis) which are not able to handle DATA messages on the Control
channel.

Ideally hidp_output_raw_report() could be improved to use this scheme:
  Feature Report -- SET_REPORT on the Control channel
  Output Report  -- DATA on the Interrupt channel
for more efficiency, but as said above, right now only the Control
channel is used.

[1] http://www.bluetooth.com/Specification%20Documents/HID_SPEC_V10.pdf

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Acked-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
net/bluetooth/hidp/core.c