|
@@ -1701,8 +1701,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
|
|
|
BT_INFO("%s: Intel device is already patched. patch num: %02x",
|
|
|
hdev->name, ver->fw_patch_num);
|
|
|
kfree_skb(skb);
|
|
|
- btintel_check_bdaddr(hdev);
|
|
|
- return 0;
|
|
|
+ goto complete;
|
|
|
}
|
|
|
|
|
|
/* Opens the firmware patch file based on the firmware version read
|
|
@@ -1714,8 +1713,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
|
|
|
fw = btusb_setup_intel_get_fw(hdev, ver);
|
|
|
if (!fw) {
|
|
|
kfree_skb(skb);
|
|
|
- btintel_check_bdaddr(hdev);
|
|
|
- return 0;
|
|
|
+ goto complete;
|
|
|
}
|
|
|
fw_ptr = fw->data;
|
|
|
|
|
@@ -1788,8 +1786,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
|
|
|
BT_INFO("%s: Intel Bluetooth firmware patch completed and activated",
|
|
|
hdev->name);
|
|
|
|
|
|
- btintel_check_bdaddr(hdev);
|
|
|
- return 0;
|
|
|
+ goto complete;
|
|
|
|
|
|
exit_mfg_disable:
|
|
|
/* Disable the manufacturer mode without reset */
|
|
@@ -1804,8 +1801,7 @@ exit_mfg_disable:
|
|
|
|
|
|
BT_INFO("%s: Intel Bluetooth firmware patch completed", hdev->name);
|
|
|
|
|
|
- btintel_check_bdaddr(hdev);
|
|
|
- return 0;
|
|
|
+ goto complete;
|
|
|
|
|
|
exit_mfg_deactivate:
|
|
|
release_firmware(fw);
|
|
@@ -1825,6 +1821,12 @@ exit_mfg_deactivate:
|
|
|
BT_INFO("%s: Intel Bluetooth firmware patch completed and deactivated",
|
|
|
hdev->name);
|
|
|
|
|
|
+complete:
|
|
|
+ /* Set the event mask for Intel specific vendor events. This enables
|
|
|
+ * a few extra events that are useful during general operation.
|
|
|
+ */
|
|
|
+ btintel_set_event_mask_mfg(hdev, false);
|
|
|
+
|
|
|
btintel_check_bdaddr(hdev);
|
|
|
return 0;
|
|
|
}
|
|
@@ -2339,6 +2341,15 @@ done:
|
|
|
*/
|
|
|
btintel_load_ddc_config(hdev, fwname);
|
|
|
|
|
|
+ /* Set the event mask for Intel specific vendor events. This enables
|
|
|
+ * a few extra events that are useful during general operation. It
|
|
|
+ * does not enable any debugging related events.
|
|
|
+ *
|
|
|
+ * The device will function correctly without these events enabled
|
|
|
+ * and thus no need to fail the setup.
|
|
|
+ */
|
|
|
+ btintel_set_event_mask(hdev, false);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|