1
0
Fork 0

Bluetooth: btbcm: Make btbcm_setup_patchram use btbcm_finalize

On UART attached devices we do:

1. btbcm_initialize()
2. Setup UART baudrate, etc.
3. btbcm_finalize()

After our previous changes we can now also use btbcm_finalize() from
the btbcm_setup_patchram() function used on USB devices without any
functional changes. This completes unifying the USB and UART paths
as much as possible.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
alistair/sunxi64-5.8
Hans de Goede 2020-04-17 19:15:29 +02:00 committed by Marcel Holtmann
parent 2fcdd562b9
commit 0383f16a87
3 changed files with 11 additions and 22 deletions

View File

@ -502,15 +502,16 @@ int btbcm_initialize(struct hci_dev *hdev, bool *fw_load_done)
}
EXPORT_SYMBOL_GPL(btbcm_initialize);
int btbcm_finalize(struct hci_dev *hdev)
int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done)
{
bool fw_load_done = true;
int err;
/* Re-initialize */
err = btbcm_initialize(hdev, &fw_load_done);
if (err)
return err;
/* Re-initialize if necessary */
if (*fw_load_done) {
err = btbcm_initialize(hdev, fw_load_done);
if (err)
return err;
}
btbcm_check_bdaddr(hdev);
@ -530,20 +531,8 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
if (err)
return err;
if (!fw_load_done)
goto done;
/* Re-initialize after loading Patch */
err = btbcm_initialize(hdev, &fw_load_done);
if (err)
return err;
done:
btbcm_check_bdaddr(hdev);
set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
return 0;
return btbcm_finalize(hdev, &fw_load_done);
}
EXPORT_SYMBOL_GPL(btbcm_setup_patchram);

View File

@ -63,7 +63,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev);
int btbcm_setup_apple(struct hci_dev *hdev);
int btbcm_initialize(struct hci_dev *hdev, bool *fw_load_done);
int btbcm_finalize(struct hci_dev *hdev);
int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done);
#else
@ -109,7 +109,7 @@ static inline int btbcm_initialize(struct hci_dev *hdev, bool *fw_load_done)
return 0;
}
static inline int btbcm_finalize(struct hci_dev *hdev)
static inline int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done)
{
return 0;
}

View File

@ -606,7 +606,7 @@ static int bcm_setup(struct hci_uart *hu)
btbcm_write_pcm_int_params(hu->hdev, &params);
}
err = btbcm_finalize(hu->hdev);
err = btbcm_finalize(hu->hdev, &fw_load_done);
if (err)
return err;