]> git.baikalelectronics.ru Git - kernel.git/commit
HID: sony: Prevent duplicate controller connections.
authorFrank Praznik <frank.praznik@oh.rr.com>
Thu, 20 Feb 2014 16:36:03 +0000 (11:36 -0500)
committerJiri Kosina <jkosina@suse.cz>
Mon, 24 Feb 2014 16:38:46 +0000 (17:38 +0100)
commit178ebf613221a27f7d47c5414ee94497d6dadd49
treeea947847d645a59d102f487b04fe5e63d209d436
parentb19bbddeba674071cd33db5f45119ea4a1ebb2c4
HID: sony: Prevent duplicate controller connections.

If a Sixaxis or Dualshock 4 controller is connected via USB while already
connected via Bluetooth it will cause duplicate devices to be added to the
input device list.

To prevent this a global list of controllers and their MAC addresses is
maintained and new controllers are checked against this list.  If a duplicate
is found, the probe function will exit with -EEXIST.

On USB the MAC is retrieved via a feature report.  On Bluetooth neither
controller reports the MAC address in a feature report so the MAC is parsed from
the uniq string.  As uniq cannot be guaranteed to be a MAC address in every case
(uHID or the behavior of HIDP changing) a parsing failure will not prevent the
connection.

Signed-off-by: Frank Praznik <frank.praznik@oh.rr.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-sony.c