https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285215

            Bug ID: 285215
           Summary: /usr/src/sys/dev/hid/ps4dshock.c: add support for V1
                    DualShock4 controller
           Product: Base System
           Version: 14.2-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: usb
          Assignee: usb@FreeBSD.org
          Reporter: kreinh...@gmail.com

/usr/src/sys/dev/hid/ps4dshock.c hardcodes a single device id into its
ps4dshock definitions:

 static const struct hid_device_id ps4dshock_devs[] = {
        { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
          HID_TLC(HUP_GENERIC_DESKTOP, HUG_GAME_PAD) },
 };
 static const struct hid_device_id ps4dsacc_devs[] = {
        { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
          HID_TLC(HUP_GENERIC_DESKTOP, HUG_MULTIAXIS_CNTROLLER) },
 };
 static const struct hid_device_id ps4dshead_devs[] = {
        { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
          HID_TLC(HUP_CONSUMER, HUC_HEADPHONE) },
 };
 static const struct hid_device_id ps4dsmtp_devs[] = {
        { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
          HID_TLC(HUP_DIGITIZERS, HUD_TOUCHPAD) },
 };

This causes the `ps4dshock` driver to detect V2 of the DualShock4 controller,
but not older versions such as the original DualShock4 controller that was
released in 2014. 

There are at least 3 unique device IDs for different versions of the DualShock4
controller noted in the RPCS3 wiki
(https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration):

0x05c4
0x0ba0
0x09cc

V1 DualShock4 controllers (device id 0x05c4) like the one I have are picked up
by `hgame`, not `ps4dshock`, because they don't match the V2 device id.

Editing `ps4dshock.c` and replacing the 4 instances of '0x9cc' with '0x5c4' and
rebuilding lets the `ps4dshock` driver recognize my V1 DualShock4. Touchpad and
rumble now work. No issues popped up during brief play testing.

Please add the missing DualShock4 device ids so owners of those versions can
enjoy the additional features provided by the `ps4dshock` driver instead of the
generic `hgame` driver. Thanks!

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to