diff options
Diffstat (limited to 'drivers/bluetooth/btusb.c')
-rw-r--r-- | drivers/bluetooth/btusb.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 708b6574d805..1521dad3d460 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c | |||
@@ -2458,6 +2458,25 @@ static int btusb_setup_bcm_patchram(struct hci_dev *hdev) | |||
2458 | subver = le16_to_cpu(ver->lmp_subver); | 2458 | subver = le16_to_cpu(ver->lmp_subver); |
2459 | kfree_skb(skb); | 2459 | kfree_skb(skb); |
2460 | 2460 | ||
2461 | /* Read Verbose Config Version Info */ | ||
2462 | skb = __hci_cmd_sync(hdev, 0xfc79, 0, NULL, HCI_INIT_TIMEOUT); | ||
2463 | if (IS_ERR(skb)) { | ||
2464 | ret = PTR_ERR(skb); | ||
2465 | BT_ERR("%s: BCM: Read Verbose Version failed (%ld)", | ||
2466 | hdev->name, ret); | ||
2467 | return ret; | ||
2468 | } | ||
2469 | |||
2470 | if (skb->len != 7) { | ||
2471 | BT_ERR("%s: BCM: Read Verbose Version event length mismatch", | ||
2472 | hdev->name); | ||
2473 | kfree_skb(skb); | ||
2474 | return -EIO; | ||
2475 | } | ||
2476 | |||
2477 | BT_INFO("%s: BCM: chip id %u", hdev->name, skb->data[1]); | ||
2478 | kfree_skb(skb); | ||
2479 | |||
2461 | for (i = 0; bcm_subver_table[i].name; i++) { | 2480 | for (i = 0; bcm_subver_table[i].name; i++) { |
2462 | if (subver == bcm_subver_table[i].subver) { | 2481 | if (subver == bcm_subver_table[i].subver) { |
2463 | hw_name = bcm_subver_table[i].name; | 2482 | hw_name = bcm_subver_table[i].name; |