Re: [PATCH v2 0/3] new driver for Valve Steam Controller

From: Pierre-Loup A. Griffais
Date: Tue Feb 20 2018 - 17:36:14 EST


Hi Rodrigo,

Thanks for working on that! I have a few questions and remarks.

For the reverse-engineering part, there's a lot of existing reference in existing (user-space) drivers for the controllers like sc-controller, but feel free to reach out if you have any questions. It's overall pretty simple and there's nothing secret about how it functions; there are some quirks, however. Nothing secret about it, but also no documentation, so might as well be... Have you tried deflecting the analog stick while touching the left trackpad? You'll most likely need special handling there. How are you planning to expose enabling/disabling auxiliary data like gyro over wireless?

Will this driver being loaded affect functionality of existing applications that talk to it through HID directly, like Steam or sc-controller? Will they be able to keep getting the same HID data they do today? If so, the extent of the work needed to support it in Steam might just be to ignore the controller device it's exposing, since Steam will expose that itself through its own means.

Thanks,
- Pierre-Loup

On 02/20/2018 11:33 AM, Rodrigo Rivas Costa wrote:
This patchset implements a driver for Valve Steam Controller, based on a
reverse analysis by myself.

Notable changes from patchset v1:
* Remove references to USB. Now the interesting interfaces are selected by
looking for the ones with feature reports.
* Feature reports buffers are allocated with hid_alloc_report_buf().
* Feature report length is checked, to avoid overflows in case of
corrupt/malicius USB devices.
* Resolution added to the ABS axes.
* A lot of minor cleanups.

Rodrigo Rivas Costa (3):
HID: add driver for Valve Steam Controller
HID: steam: add serial number information.
HID: steam: add battery device.

drivers/hid/Kconfig | 8 +
drivers/hid/Makefile | 1 +
drivers/hid/hid-ids.h | 4 +
drivers/hid/hid-quirks.c | 4 +
drivers/hid/hid-steam.c | 703 +++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 720 insertions(+)
create mode 100644 drivers/hid/hid-steam.c