[PATCH v4] HID: joycon

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



TODO:
  - Gyroscope support
  - Figure out more details on not breaking SDL

Version 4 changes:
  - Added support for the Home button LED for the pro controller and
    right joy-con
  - Changed name from hid-switchcon to hid-joycon
  - Added rumble support
  - Removed ctlr->type and use hdev->product instead
  - Use POWER_SUPPLY_CAPACITY_LEVEL enum instead of manually translating
    to capacity percentages 
  - Misc. minor refactors based on v3 feedback

Version 3 changes:
  - Added led_classdev support for the 4 player LEDs
  - Added power_supply support for the controller's battery
  - Made the controller number mutex static
  - Minor refactoring/style fixes based on Roderick's feedback from v2

Version 2 changes:
  - Switched to using a synchronous method for configuring the 
	controller.
  - Removed any pairing/orientation logic in the driver. Every
    controller now corresponds to its own input device.
  - Store controller button data as a single u32.
  - Style corrections

This patch revision adds support for setting the Home LED brightness in
addition to rumble support. The switch controllers have configurable
motor frequencies. This is useful for playing different tones or sound
effects on the controllers. I added sysfs attributes for controlling the
rumble frequencies from userspace. I didn't see an obvious existing
sysfs class that provided that functionality. Please let me know if
there's a preferable way to do this.

I think the last major feature to add is the gyro support. I assume the
preferred way to handle this would be to create a new input device for
the gyro which is separate from the gamepad.

I'm still running into the issue of led classdev errors when unplugging
the controller (it returns -ENOSYS). See the patch v3 summary for more
info on what I've tried so far.

Roderick,
As a followup to the prior discussion about patching the version to
prevent breaking SDL compatibility:

I took a look at libsdl, and it looks like it's using hidraw to
implement its own userspace switch pro controller driver. When it
detects compatibility it's only checking the vendor and id values (the
function takes in a version argument, but it doesn't use it).

If I start up Steam, it seems to yank control away from my kernel driver
and do everything itself. I'm not sure what the correct way forward is
on this. Do I need to patch the version if SDL seems unaffected by the
kernel driver?

Thanks,
Daniel





[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux