Bug 195225

Summary: Dualshock controllers have different names when it is connected with USB and bluetooth
Product: Drivers Reporter: haakobja
Component: Input DevicesAssignee: drivers_input-devices
Status: NEW ---    
Severity: normal CC: nicolas.werner, thunderbird2k
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.10.6 Subsystem:
Regression: No Bisected commit-id:
Attachments: bluez patch for sixaxis

Description haakobja 2017-04-02 15:05:12 UTC
My dualshock controllers report different names when connected using USB and bluetooth. I think they should report the same name, as it is the same controller. Could this be the reason for some games not correctly discovering the dualshock-controllers when using bluetooth?

I know my Steam installation is having trouble correctly detecting my Dualshock 4 when connected with bluetooth. It works as expected if connected with USB.

These are my findings:

Dualshock 4v2
USB:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x54c product 0x9cc version 0x8111
Input device name: "Sony Interactive Entertainment Wireless Controller”

Bluetooth:
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x54c product 0x9cc version 0x8100
Input device name: "Wireless Controller"

Dualshock 3:
Wired:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x54c product 0x268 version 0x111
Input device name: "Sony PLAYSTATION(R)3 Controller”

Bluetooth:
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x54c product 0x268 version 0x100
Input device name: "PLAYSTATION(R)3 Controller"
Comment 1 Nicolas Werner 2017-08-04 19:29:44 UTC
Created attachment 257819 [details]
bluez patch for sixaxis

I had the same problem with my Dual Shock 3. I actually wrote a patch that fixes this issue and sent it to the bluez mailing list, but I got no responses. Maybe I should poke them again...
Comment 2 Roderick Colenbrander 2018-01-10 01:34:39 UTC
At least in the USB case (need trace BT kernel path) the device strings just come from the device. Applications typically don't use (and should not use) strings, but instead use hardware device ids. In case of steam in early 2017, I'm not sure if they handled the new ds4 model yet and maybe because of that fell back to strings, but that's just a guess.