diff options
author | Petri Gynther <pgynther@google.com> | 2016-02-10 12:00:46 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-02-23 20:29:37 +0100 |
commit | ad750fa142747f3f42b66ae051a0f275bd2035df (patch) | |
tree | a69ec889eb2ddf9303bdebcbc767c8af0d445414 /drivers/bluetooth | |
parent | 2791b44d6b4a2280568e0dc84be51992b7b367f1 (diff) | |
download | linux-stable-ad750fa142747f3f42b66ae051a0f275bd2035df.tar.gz linux-stable-ad750fa142747f3f42b66ae051a0f275bd2035df.tar.bz2 linux-stable-ad750fa142747f3f42b66ae051a0f275bd2035df.zip |
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')
-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) err = request_firmware(&fw, fw_name, &hdev->dev); if (err < 0) { BT_INFO("%s: BCM: Patch %s not found", hdev->name, fw_name); - return 0; + goto done; } btbcm_patchram(hdev, fw); @@ -501,6 +501,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev) BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); kfree_skb(skb); +done: btbcm_check_bdaddr(hdev); set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks); |