Thread (15 messages) 15 messages, 7 authors, 2015-03-19

Re: [PATCH] HID: sony: Enable Gasia third-party PS3 controllers

From: David Herrmann <hidden>
Date: 2015-03-19 10:26:32
Also in: lkml

Hi

On Sat, Feb 7, 2015 at 10:48 PM, Lauri Kasanen [off-list ref] wrote:
Hi,

On Sat, 7 Feb 2015 17:31:33 +0100
Antonio Ospite [off-list ref] wrote:
quoted
quoted
quoted
+#include <linux/usb/input.h>
Please don't.
HID should be transport agnostic, so please refrain from directly call usb.
I agree with Benjamin here.
quoted
quoted
+
+       ret = usb_interrupt_msg(dev, usb_sndintpipe(dev, 0x02),
+                               buf2, sizeof(buf2),
+                               &transfered, USB_CTRL_SET_TIMEOUT);
Can't you simply use a hid_hw_output_report request instead of hard
coding the device specific endpoint?
And I'd also prefer it to be guarded against your specific controller.
usb_interrupt_msg() is called in usbhid_output_report() indeed, so it
should be possible to use the generic HID interface.
Regarding the USB. This is a comment from Andrew's patch:

// doesn't work. gets sent as a SET_REPORT Request intstead of a
// URB_INTERRUPT out. I guess usbhid->urbout is null
//if ( hdev->hid_output_raw_report(hdev, buf2, sizeof(buf2),

I took his word for it, and did not attempt it. Do you think it would
work with the current kernel? If so, I can test later. Had quite an
enjoyable evening playing some FF7 once I had the controller working ;)
Yes, hid_hw_request() and hid_hw_raw_request() send
SET_REPORT/GET_REPORT in the ctrl line. If you want output-reports on
the intr line, you have to use hid_hw_output_report(). So according to
your quote, hid_hw_output_report() should work.

Background: Documentation/hid/hid-transport.txt

Thanks
David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help