• Ismael Ferreras Morezuelas's avatar
    Bluetooth: btusb: Make the CSR clone chip force-suspend workaround more generic · f4292e2f
    Ismael Ferreras Morezuelas authored
    Turns out Hans de Goede completed the work I started last year trying to
    improve Chinese-clone detection of CSR controller chips. Quirk after quirk
    these Bluetooth dongles are more usable now.
    
    Even after a few BlueZ regressions; these clones are so fickle that some
    days they stop working altogether. Except on Windows, they work fine.
    
    But this force-suspend initialization quirk seems to mostly do the trick,
    after a lot of testing Bluetooth now seems to work *all* the time.
    
    The only problem is that the solution ended up being masked under a very
    stringent check; when there are probably hundreds of fake dongle
    models out there that benefit from a good reset. Make it so.
    
    Fixes: 81cac64b ("Bluetooth: Deal with USB devices that are faking CSR vendor")
    Fixes: cde1a8a9 ("Bluetooth: btusb: Fix and detect most of the Chinese Bluetooth controllers")
    Fixes: d74e0ae7 ("Bluetooth: btusb: Fix detection of some fake CSR controllers with a bcdDevice val of 0x0134")
    Fixes: 0671c066 ("Bluetooth: btusb: Add workaround for remote-wakeup issues with Barrot 8041a02 fake CSR controllers")
    
    Cc: stable@vger.kernel.org
    Cc: Hans de Goede <hdegoede@redhat.com>
    Tested-by: default avatarIsmael Ferreras Morezuelas <swyterzone@gmail.com>
    Signed-off-by: default avatarIsmael Ferreras Morezuelas <swyterzone@gmail.com>
    Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    f4292e2f
btusb.c 133 KB