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

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

 



On 4/22/2014 12:50, simon@xxxxxxxxxxxxx wrote:
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?
I find it suspicious that it doesn't happen the first time (after boot)
that the controller is plugged in, but then does every subsequent time...
maybe some un-init memory somewhere.

Is this kernel behaviour, or down to the controller state (ie alive after
first plug)? We see that the DS3 behaves differently wrt leds depending on
whether it is asleep or alive when plugged in.

I'll dig a little deeper tonight to see if I can track the problem down.
Simon.


It might be a matter of the joydev module not being loaded into memory the first time thus allowing the probe function to complete and set the proper axis bits before the js* device is created. On subsequent connects the module would already be loaded so the js* device would be created before the extra axis bits are set, assuming that my earlier hypothesis is correct and the joystick device is being created before the probe function returns.

The joydev system also zero initializes the mapping arrays and doesn't filter out unmapped axis or button events, which is why the unmapped axes always effect axis 0.
--
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