[Bug 60824] [PATCH][regression] Cambridge Silicon Radio, Ltd Bluetooth Dongle unusable

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

 



https://bugzilla.kernel.org/show_bug.cgi?id=60824

--- Comment #35 from Arthur Fragoso (arthur@xxxxxxxxxxx) ---

The code for these devices are bellow.

You are right, the patch is way too old for this.

I will probably buy a different device while we wait for someone with more
knowledge to fix this.


/linux/drivers/bluetooth/btusb.c

kenel 5.2.8

static const struct usb_device_id blacklist_table[] = {
        /* CSR BlueCore devices */
        { USB_DEVICE(0x0a12, 0x0001), .driver_info = BTUSB_CSR },


static int btusb_setup_csr(struct hci_dev *hdev)
{
        struct hci_rp_read_local_version *rp;
        struct sk_buff *skb;

        BT_DBG("%s", hdev->name);

        skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL,
                             HCI_INIT_TIMEOUT);
        if (IS_ERR(skb)) {
                int err = PTR_ERR(skb);
                bt_dev_err(hdev, "CSR: Local version failed (%d)", err);
                return err;
        }

        if (skb->len != sizeof(struct hci_rp_read_local_version)) {
                bt_dev_err(hdev, "CSR: Local version length mismatch");
                kfree_skb(skb);
                return -EIO;
        }

        rp = (struct hci_rp_read_local_version *)skb->data;

        /* Detect controllers which aren't real CSR ones. */
        if (le16_to_cpu(rp->manufacturer) != 10 ||
            le16_to_cpu(rp->lmp_subver) == 0x0c5c) {
                /* Clear the reset quirk since this is not an actual
                 * early Bluetooth 1.1 device from CSR.
                 */
                clear_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);

                /* These fake CSR controllers have all a broken
                 * stored link key handling and so just disable it.
                 */
                set_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY, &hdev->quirks);
        }

        kfree_skb(skb);

        return 0;
}

-- 
You are receiving this mail because:
You are the assignee for the bug.



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux