[PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750.

From: pharish
Date: Thu Nov 25 2021 - 08:19:35 EST


This change adds optimazation in init sequence for WCN6750.

Signed-off-by: pharish <pharish@xxxxxxxxxxxxxx>
---
drivers/bluetooth/hci_qca.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 6f44b26..4dedaaa 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1603,15 +1603,19 @@ static int qca_regulator_init(struct hci_uart *hu)
*/
qcadev = serdev_device_get_drvdata(hu->serdev);
if (!qcadev->bt_power->vregs_on) {
- serdev_device_close(hu->serdev);
+ if (qca_is_wcn399x(soc_type))
+ serdev_device_close(hu->serdev);
+
ret = qca_regulator_enable(qcadev);
if (ret)
return ret;

- ret = serdev_device_open(hu->serdev);
- if (ret) {
- bt_dev_err(hu->hdev, "failed to open port");
- return ret;
+ if (qca_is_wcn399x(soc_type)) {
+ ret = serdev_device_open(hu->serdev);
+ if (ret) {
+ bt_dev_err(hu->hdev, "failed to open port");
+ return ret;
+ }
}
}

@@ -1635,9 +1639,8 @@ static int qca_regulator_init(struct hci_uart *hu)
}
}

- qca_set_speed(hu, QCA_INIT_SPEED);
-
if (qca_is_wcn399x(soc_type)) {
+ qca_set_speed(hu, QCA_INIT_SPEED);
ret = qca_send_power_pulse(hu, true);
if (ret)
return ret;
@@ -1648,6 +1651,7 @@ static int qca_regulator_init(struct hci_uart *hu)
* Without this, we will have RTS and CTS synchronization
* issues.
*/
+
serdev_device_close(hu->serdev);
ret = serdev_device_open(hu->serdev);
if (ret) {
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation