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