Some Sony Dualshock 4 controllers do not work in kernel 3.15+

Bug #1511855 reported by Chris Osgood
40
This bug affects 7 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

I'm testing in Ubuntu 15.10 with kernel 4.2.0-16.19 but this bug report actually applies to ALL kernels starting at 3.15 until the current 4.3rc7 and is not limited to Ubuntu.

I have a brand new Sony DualShock 4 that seems to use a slightly different protocol than the hid-sony driver expects. I'm not sure why this controller is different. Maybe updated firmware from Sony or maybe because it has never been connected to a PS4. Whatever the case, the device descriptor size is different from what hid-sony expects and because of that it does not remap the descriptor table as required. This causes only the trackpad to function (the trackpad uses a different code path) and none of the other controls work. So basically the controller does not work at all.

I have created a patch that fixes it. I have only tested the patch against kernel 4.2 and 4.3 but it's simple enough that it should be trivially portable to any 3.15+ kernel. The attached patch is based against the Ubuntu mainline-crack git v4.2 kernel.

I posted to the LKML asking if the descriptor size check was even necessary but never got a response so I left it in.

Tags: patch
Revision history for this message
Chris Osgood (ubuntu-functionalfuture) wrote :
affects: apport (Ubuntu) → linux-meta (Ubuntu)
Brad Figg (brad-figg)
affects: linux-meta (Ubuntu) → linux (Ubuntu)
Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1511855

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
tags: added: patch
penalvch (penalvch)
Changed in linux (Ubuntu):
importance: Undecided → Low
Revision history for this message
Chris Osgood (ubuntu-functionalfuture) wrote :
Revision history for this message
Mariusz (knoife-1) wrote :

In SteamOS kernel the descriptor size check is skipped entirely.

https://github.com/ValveSoftware/steamos_kernel/commit/7d6f2508304edddc5ab07f87f62b5b267840ab17

Revision history for this message
Mariusz (knoife-1) wrote :

Fixed as of kernel 4.5rc1

Revision history for this message
Radoslaw (radraw) wrote :

I confirm the issue is present in Ubuntu 15.10 (kernel 4.2) and fixed by running latest 4.5 RC kernel. It is maybe worth to note the the issue regards only bluetooth connection. The controler works fine using USB cable also with previous kernel versions.

Changed in linux (Ubuntu):
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.