Re: [PATCH v3 00/13] HID: new driver for PS5 'DualSense' controller

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

 



Please ignore v3. Somehow during a last minute rebase, the sensors
patch got folded into the touchpad patch. I will separate that out
ASAP. I'm a little annoyed at myself for letting that slip through.

Thanks,
Roderick

On Sun, Jan 17, 2021 at 3:10 PM Roderick Colenbrander
<roderick@xxxxxxxxxx> wrote:
>
> From: Roderick Colenbrander <roderick.colenbrander@xxxxxxxx>
>
> Hi,
>
> I would like to share an updated version of the hid-playstation driver.
> This new revision contains a few bug fixes, but mostly features small
> code changes and minor improvements.
>
> In terms of bugs there were bugs in the sensor code. There was an overflow
> issue and EV_MSC/MSC_TIMESTAMP were not set on the device. In addition,
> the ps_device spinlock was not initialized.
>
> The biggest change in the driver was the addition of a new 'ps_get_report'
> helper function. It handles GET_FEATURE report retrieval and any error handling
> including CRC checks for PlayStation Bluetooth devices. This greatly simplified
> all the functions (dualsense_get_mac_address, dualsense_calibration_info, ..)
> dealing, which used their own report handling and error checking.
>
> Aside for these changes, there were mostly little code style changes like defining
> magic constants, cleaning up comments, cleaning up log messages, static_assert
> checks etcetera.
>
> Thanks to everyone who provided feedback through the mailing list or privately.
>
> Changes since v2:
> - Removed !Expert setting for hid-playstation from Kconfig.
> - Removed DualSense from hid-quirks table.
> - Added report size checks to dualsense_parse_report.
> - Moved mac address endianess comment to struct ps_device.
> - Added static_asserts for packed structure size checks.
> - Improved readability of battery capacity calculation using 'min'.
> - Added spin_lock_init to dualsense_create to initialize ps_device lock.
> - Fixed sensors timestamp overflow.
> - Fixed missing MSC_TIMESTAMP and EV_MSC capabilities in ps_sensors_create.
> - Used DIV_ROUND_CLOSEST for timestamp calculations to minimize rounding errors.
> - Switched to devm_kmalloc_array for lightbar allocation.
> - Added CRC32 and NEW_LEDS dependency to Kconfig.
> - Added defines for crc32 seed constants.
> - Added crc32 check for dualsense_get_mac_address and increased report size to 20.
> - Added new ps_get_report call to obtain feature reports.
> - Switched to ARRAY_SIZE in dualsense_parse_reports for touch points, accel and gyro data.
> - Changed touch point parse loop to use "struct dualsense_touch_point".
> - Improved consistency of info and error messages.
> - Unified comment style.
>
> Thanks,
>
> Roderick Colenbrander
> Sony Interactive Entertainment, LLC
>
> Roderick Colenbrander (13):
>   HID: playstation: initial DualSense USB support.
>   HID: playstation: use DualSense MAC address as unique identifier.
>   HID: playstation: add DualSense battery support.
>   HID: playstation: add DualSense touchpad support.
>   HID: playstation: add DualSense accelerometer and gyroscope support.
>   HID: playstation: track devices in list.
>   HID: playstation: add DualSense Bluetooth support.
>   HID: playstation: add DualSense classic rumble support.
>   HID: playstation: add DualSense lightbar support
>   HID: playstation: add microphone mute support for DualSense.
>   HID: playstation: add DualSense player LEDs support.
>   HID: playstation: DualSense set LEDs to default player id.
>   HID: playstation: report DualSense hardware and firmware version.
>
>  MAINTAINERS                   |    6 +
>  drivers/hid/Kconfig           |   21 +
>  drivers/hid/Makefile          |    1 +
>  drivers/hid/hid-ids.h         |    1 +
>  drivers/hid/hid-playstation.c | 1492 +++++++++++++++++++++++++++++++++
>  5 files changed, 1521 insertions(+)
>  create mode 100644 drivers/hid/hid-playstation.c
>
> --
> 2.26.2
>


-- 
Roderick Colenbrander
Senior Manager of Hardware & Systems Engineering
Sony Interactive Entertainment LLC
roderick.colenbrander@xxxxxxxx



[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