The current version of get_js_numbers() won't work correctly on
Bluetooth gamepads if more than one is connected. Currently it looks
for the correct js* device via just the PHYS attribute which works on
USB, but PHYS is the same value for all Bluetooth devices on a single
adapter (MAC of the host Bluetooth adapter). As is, all Bluetooth DS3
controllers will end up with the LEDs set to the controller number of
the first js* device on the Bluetooth adapter. A simple fix would be to
compare against PHYS and UNIQ when searching for the correct js device
since UNIQ contains the individual device MAC address.
On 5/14/2014 17:40, Antonio Ospite wrote:
Hi,
here's the updated patch series, the commit messages have been fixed too!
I am leaving out patch 1/5 for now:
plugins/sixaxis: Simplify get_js_numbers()
I decided to do so because there is still some timing issue: the new
procedure to retrieve the js number is faster, and on the _very_first_
run it fails and returns 0, I suspect this has to do with the fact that
the joydev module gets loaded after the hidraw uevent and the
enumeration in the plugin completes before the js node shows up in
sysfs, I'll do some more experiments on that.
So please apply only patches from 2 to 5, thanks, I kept the numbering
as in v1 for clarity.
Changes since v1 are annotated in each patch.
The changes have been tested with libudev-204 along with linux-3.13,
linux 3.14 and linux-3.15-rc4.
To recap:
- on kernels < 3.14 the hidraw mechanism is used
- on kernels >= 3,14 the sysfs mechanism is used to avoid
inconsistencies with rumble effects.
Thanks,
Antonio
Antonio Ospite (4):
plugins/sixaxis: Factor out a set_leds_hidraw() function
plugins/sixaxis: Factor out a calc_leds_bitmap() function
plugins/sixaxis: Add a get_leds_data() function
plugins/sixaxis: Add a set_leds_sysfs() function
configure.ac | 4 +-
plugins/sixaxis.c | 178 +++++++++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 158 insertions(+), 24 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html