Bluetooth: btusb: Enable Intel events even if already in operational mode
authorMarcel Holtmann <marcel@holtmann.org>
Fri, 3 Apr 2020 19:44:02 +0000 (21:44 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Sun, 5 Apr 2020 11:53:07 +0000 (14:53 +0300)
In case the controller is already in operation mode, the Intel specific
events will not be enabled. Fix this by jumping to a common finish
section that will allow setting final details for the controller.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
drivers/bluetooth/btusb.c

index 110e96b245e5013df66ab69350601e8674fa32a1..43925bdeaa81b1db127281be64ee1746ea5c8765 100644 (file)
@@ -2334,7 +2334,7 @@ static int btusb_setup_intel_new(struct hci_dev *hdev)
        if (ver.fw_variant == 0x23) {
                clear_bit(BTUSB_BOOTLOADER, &data->flags);
                btintel_check_bdaddr(hdev);
-               return 0;
+               goto finish;
        }
 
        /* If the device is not in bootloader mode, then the only possible
@@ -2534,6 +2534,14 @@ done:
         */
        btintel_load_ddc_config(hdev, fwname);
 
+       /* Read the Intel version information after loading the FW  */
+       err = btintel_read_version(hdev, &ver);
+       if (err)
+               return err;
+
+       btintel_version_info(hdev, &ver);
+
+finish:
        /* 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.
@@ -2543,13 +2551,6 @@ done:
         */
        btintel_set_event_mask(hdev, false);
 
-       /* Read the Intel version information after loading the FW  */
-       err = btintel_read_version(hdev, &ver);
-       if (err)
-               return err;
-
-       btintel_version_info(hdev, &ver);
-
        return 0;
 }