• Frank Praznik's avatar
    HID: sony: Prevent duplicate controller connections. · d2d782fc
    Frank Praznik authored
    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: default avatarFrank Praznik <frank.praznik@oh.rr.com>
    Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    d2d782fc
hid-sony.c 65.5 KB