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.