[Bug 285215] /usr/src/sys/dev/hid/ps4dshock.c: add support for V1 DualShock4 controller
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 285215] /usr/src/sys/dev/hid/ps4dshock.c: add support for V1 DualShock4 controller"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 285215] /usr/src/sys/dev/hid/ps4dshock.c: add support for V1 DualShock4 controller"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 07 Mar 2025 03:01:53 UTC
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: kreinholz@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.