* [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750.
@ 2021-11-25 13:17 pharish
2021-11-25 13:17 ` [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF pharish
2021-11-25 18:44 ` [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750 Marcel Holtmann
0 siblings, 2 replies; 5+ messages in thread
From: pharish @ 2021-11-25 13:17 UTC (permalink / raw)
To: marcel, johan.hedberg
Cc: mka, linux-kernel, linux-bluetooth, hemantg, linux-arm-msm,
bgodavar, rjliao, hbandi, abhishekpandit, mcchou, saluvala,
pharish
This change adds optimazation in init sequence for WCN6750.
Signed-off-by: pharish <pharish@codeaurora.org>
---
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
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF
2021-11-25 13:17 [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750 pharish
@ 2021-11-25 13:17 ` pharish
2021-11-25 18:42 ` Marcel Holtmann
2021-11-25 18:44 ` [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750 Marcel Holtmann
1 sibling, 1 reply; 5+ messages in thread
From: pharish @ 2021-11-25 13:17 UTC (permalink / raw)
To: marcel, johan.hedberg
Cc: mka, linux-kernel, linux-bluetooth, hemantg, linux-arm-msm,
bgodavar, rjliao, hbandi, abhishekpandit, mcchou, saluvala,
pharish
This change stops IBS timers during BT OFF.
Signed-off-by: pharish <pharish@codeaurora.org>
---
drivers/bluetooth/hci_qca.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index dd768a8..6f44b26 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1928,6 +1928,9 @@ static int qca_power_off(struct hci_dev *hdev)
hu->hdev->hw_error = NULL;
hu->hdev->cmd_timeout = NULL;
+ mod_timer(&qca->tx_idle_timer, 0);
+ mod_timer(&qca->wake_retrans_timer, 0);
+
/* Stop sending shutdown command if soc crashes. */
if (soc_type != QCA_ROME
&& qca->memdump_state == QCA_MEMDUMP_IDLE) {
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF
2021-11-25 13:17 ` [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF pharish
@ 2021-11-25 18:42 ` Marcel Holtmann
2021-12-07 5:39 ` pharish
0 siblings, 1 reply; 5+ messages in thread
From: Marcel Holtmann @ 2021-11-25 18:42 UTC (permalink / raw)
To: pharish
Cc: Johan Hedberg, mka, linux-kernel, linux-bluetooth, hemantg,
linux-arm-msm, bgodavar, rjliao, hbandi, abhishekpandit, mcchou,
saluvala
Hi,
> This change stops IBS timers during BT OFF.
>
> Signed-off-by: pharish <pharish@codeaurora.org>
clear name please.
> ---
> drivers/bluetooth/hci_qca.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index dd768a8..6f44b26 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -1928,6 +1928,9 @@ static int qca_power_off(struct hci_dev *hdev)
> hu->hdev->hw_error = NULL;
> hu->hdev->cmd_timeout = NULL;
>
> + mod_timer(&qca->tx_idle_timer, 0);
> + mod_timer(&qca->wake_retrans_timer, 0);
> +
And I would really prefer if this gets changed to use a workqueue instead of a timer.
Regards
Marcel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750.
2021-11-25 13:17 [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750 pharish
2021-11-25 13:17 ` [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF pharish
@ 2021-11-25 18:44 ` Marcel Holtmann
1 sibling, 0 replies; 5+ messages in thread
From: Marcel Holtmann @ 2021-11-25 18:44 UTC (permalink / raw)
To: pharish
Cc: Johan Hedberg, Matthias Kaehlcke, linux-kernel, linux-bluetooth,
hemantg, linux-arm-msm, bgodavar, rjliao, hbandi, abhishekpandit,
mcchou, saluvala
Hi,
> This change adds optimazation in init sequence for WCN6750.
you need to explain what you are doing.
>
> Signed-off-by: pharish <pharish@codeaurora.org>
> ---
> 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;
> + }
I am really not doing this. You need to stop doing this SoC X or SoC Y crap. I said this before and I am saying this again, start from scratch and write a clean serdev only driver. Adding things to hci_qca is just a hack.
> }
> }
>
> @@ -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.
> */
> +
Unrelated change.
> serdev_device_close(hu->serdev);
> ret = serdev_device_open(hu->serdev);
> if (ret) {
Regards
Marcel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF
2021-11-25 18:42 ` Marcel Holtmann
@ 2021-12-07 5:39 ` pharish
0 siblings, 0 replies; 5+ messages in thread
From: pharish @ 2021-12-07 5:39 UTC (permalink / raw)
To: Marcel Holtmann
Cc: Johan Hedberg, mka, linux-kernel, linux-bluetooth, hemantg,
linux-arm-msm, bgodavar, rjliao, hbandi, abhishekpandit, mcchou,
saluvala
On 2021-11-26 00:12, Marcel Holtmann wrote:
> Hi,
>
>> This change stops IBS timers during BT OFF.
>>
>> Signed-off-by: pharish <pharish@codeaurora.org>
>
> clear name please.
[Harish]: will update
>
>> ---
>> drivers/bluetooth/hci_qca.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>> index dd768a8..6f44b26 100644
>> --- a/drivers/bluetooth/hci_qca.c
>> +++ b/drivers/bluetooth/hci_qca.c
>> @@ -1928,6 +1928,9 @@ static int qca_power_off(struct hci_dev *hdev)
>> hu->hdev->hw_error = NULL;
>> hu->hdev->cmd_timeout = NULL;
>>
>> + mod_timer(&qca->tx_idle_timer, 0);
>> + mod_timer(&qca->wake_retrans_timer, 0);
>> +
>
> And I would really prefer if this gets changed to use a workqueue
> instead of a timer.
[Harish]: The full implementation of IBS is based on timers
to that reason I have switched to timers.
>
> Regards
>
> Marcel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-12-07 5:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-25 13:17 [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750 pharish
2021-11-25 13:17 ` [PATCH v1] Bluetooth: hci_qca: Stop IBS timer during BT OFF pharish
2021-11-25 18:42 ` Marcel Holtmann
2021-12-07 5:39 ` pharish
2021-11-25 18:44 ` [PATCH v1] Bluetooth: hci_qca: Optimizations in init sequence for WCN6750 Marcel Holtmann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.