diff options
author | Petri Gynther <pgynther@google.com> | 2016-02-10 15:00:46 -0500 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-02-23 14:29:37 -0500 |
commit | ad750fa142747f3f42b66ae051a0f275bd2035df (patch) | |
tree | a69ec889eb2ddf9303bdebcbc767c8af0d445414 /drivers/bluetooth/btbcm.c | |
parent | 2791b44d6b4a2280568e0dc84be51992b7b367f1 (diff) |
Bluetooth: btbcm: Fix handling of firmware not found
If the call to request_firmware() fails in btbcm_setup_patchram(),
the BCM chip will be operating with its default firmware.
In this case, btbcm_setup_patchram() should not return immediately
but instead should skip to btbcm_check_bdaddr() and quirk setup.
Signed-off-by: Petri Gynther <pgynther@google.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/btbcm.c')
-rw-r--r-- | drivers/bluetooth/btbcm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c index 0b697946e9bc..fdb44829ab6f 100644 --- a/drivers/bluetooth/btbcm.c +++ b/drivers/bluetooth/btbcm.c | |||
@@ -467,7 +467,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev) | |||
467 | err = request_firmware(&fw, fw_name, &hdev->dev); | 467 | err = request_firmware(&fw, fw_name, &hdev->dev); |
468 | if (err < 0) { | 468 | if (err < 0) { |
469 | BT_INFO("%s: BCM: Patch %s not found", hdev->name, fw_name); | 469 | BT_INFO("%s: BCM: Patch %s not found", hdev->name, fw_name); |
470 | return 0; | 470 | goto done; |
471 | } | 471 | } |
472 | 472 | ||
473 | btbcm_patchram(hdev, fw); | 473 | btbcm_patchram(hdev, fw); |
@@ -501,6 +501,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev) | |||
501 | BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); | 501 | BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); |
502 | kfree_skb(skb); | 502 | kfree_skb(skb); |
503 | 503 | ||
504 | done: | ||
504 | btbcm_check_bdaddr(hdev); | 505 | btbcm_check_bdaddr(hdev); |
505 | 506 | ||
506 | set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks); | 507 | set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks); |