Re: Bug: HID-Sony: DS4 touch-pad corrupts Axis0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/21/2014 13:30, Frank Praznik wrote:
On 4/21/2014 12:49, simon@xxxxxxxxxxxxx wrote:
Hi,
I've noticed a glitch with the Dualshock4 on 3.15rc1 (plus LEDs patch, if
that makes a difference).

Sometimes everything works as expected, the thumbsticks work OK and the
touch-pad changes axis 15 & 16 (as reported by jstest). Other times axis
15 and 16 do not report changes, instead axis 0 is corrupted/changed when
the touch-pad is 'swiped'.

Evtest appears to report correctly all the time.

It seems that the controller works first time it is plugged in (after
boot), but then fails subsequent times. I think that the first time I
don't get the pop-up message about battery being charged, which occurs on
other times.

I have not found a trigger yet, but was wondering whether others are
seeing this. I am using a USB connected DS4 (no BT on this machine). OS is
Xubuntu 13.10 with patched kernel,
Simon.

--
simon@slipstream:~$ jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (Sony Computer Entertainment Wireless Controller) has 14 axes (X,
Y, Z,
and 14 buttons (BtnX, BtnY, BtnZ, BtnTL, BtnTR, BtnTL2, BtnTR2, BtnSelect,
BtnSt
Testing ... (interrupt to exit)
--
Apr 21 10:21:01 slipstream kernel: [ 818.052095] usb 5-1: USB disconnect,
devic
Apr 21 10:21:33 slipstream kernel: [ 849.684027] usb 5-1: new full-speed
USB de
Apr 21 10:21:33 slipstream kernel: [ 849.855036] usb 5-1: New USB device
found,
Apr 21 10:21:33 slipstream kernel: [ 849.855041] usb 5-1: New USB device
string
Apr 21 10:21:33 slipstream kernel: [  849.855045] usb 5-1: Product:
Wireless Con
Apr 21 10:21:33 slipstream kernel: [  849.855049] usb 5-1: Manufacturer:
Sony Co
Apr 21 10:21:33 slipstream kernel: [  849.861096] sony
0003:054C:05C4.0005: Usin
Apr 21 10:21:33 slipstream kernel: [  849.906141] input: Sony Computer
Entertain
Apr 21 10:21:33 slipstream kernel: [  849.906344] sony
0003:054C:05C4.0005: inpu
--



I've seen this before and it's a bug in jstest and jstest-gtk, not the driver or event system. These programs do their own internal axis mapping and don't properly handle axes above ABS_MISC which is where the touch axes are. jstest-gtk just default maps these to 0 and the old jstest just doesn't look like it does any bounds checking at all.

Sorry, it seems that I spoke too soon (jstest-gtk has an internal bug that causes this exact problem, but the old jstest doesn't).

The joydev device *is* missing the mappings for the touchpad axes for some reason (JSIOCGAXES returns 14 instead of 17 like it should). I'm not sure why though. In the Sony driver the touchpad axis bits are set in the probe function and work correctly via the evdev interface and looking in the joydev module it should properly handle and map all axes up to ABS_MAX so the problem probably lies somewhere else. If I had to guess, it seems like the joydev device is being created after the HID descriptor is parsed, but before the device probe function is called.

Can anyone more familiar with the general input system comment on why this might be happening?
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux