mbox series

[v3,0/6] Bluetooth: hci_qca: use the power sequencer for wcn7850

Message ID 20240709-hci_qca_refactor-v3-0-5f48ca001fed@linaro.org (mailing list archive)
Headers show
Series Bluetooth: hci_qca: use the power sequencer for wcn7850 | expand

Message

Bartosz Golaszewski July 9, 2024, 12:18 p.m. UTC
The following series extend the usage of the power sequencing subsystem
in the hci_qca driver.

The end goal is to convert the entire driver to be exclusively pwrseq-based
and simplify it in the process. However due to a large number of users we
need to be careful and consider every case separately.

Right now the only model that fully uses the power sequencer is QCA6390 on
the RB5 board. The next steps are enabling pwrseq for Bluetooth on sm8650
and the X13s laptop. To that end we need to make wcn7850 and wcn6855 aware
of the power sequencing but also keep backward compatibility with older
device trees.

This series contains changes to mainline DT bindings for wcn7850, some
refactoring of the hci_qca driver, making pwrseq the default for the two
models mentioned above and finally modifies the device-tree for sm8650-qrd
to correctly represent the way the Bluetooth module is powered.

I made the last patch part of this series as it has a run-time dependency
on previous changes in it and bluetooth support on the board will break
without them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
Changes in v3:
- Add a missing break in a switch case
- Link to v2: https://lore.kernel.org/r/20240708-hci_qca_refactor-v2-0-b6e83b3d1ca5@linaro.org

Changes in v2:
- Fix a switch issue reported by the test bot
- Link to v1: https://lore.kernel.org/r/20240705-hci_qca_refactor-v1-0-e2442121c13e@linaro.org

---
Bartosz Golaszewski (6):
      dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
      Bluetooth: hci_qca: schedule a devm action for disabling the clock
      Bluetooth: hci_qca: unduplicate calls to hci_uart_register_device()
      Bluetooth: hci_qca: make pwrseq calls the default if available
      Bluetooth: hci_qca: use the power sequencer for wcn7850 and wcn6855
      arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth

 .../bindings/net/bluetooth/qualcomm-bluetooth.yaml | 18 +++--
 arch/arm64/boot/dts/qcom/sm8650-qrd.dts            | 28 +++----
 drivers/bluetooth/hci_qca.c                        | 87 +++++++++++++---------
 3 files changed, 72 insertions(+), 61 deletions(-)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240704-hci_qca_refactor-0770e9931fb4

Best regards,

Comments

Neil Armstrong July 9, 2024, 1:24 p.m. UTC | #1
On 09/07/2024 14:18, Bartosz Golaszewski wrote:
> The following series extend the usage of the power sequencing subsystem
> in the hci_qca driver.
> 
> The end goal is to convert the entire driver to be exclusively pwrseq-based
> and simplify it in the process. However due to a large number of users we
> need to be careful and consider every case separately.
> 
> Right now the only model that fully uses the power sequencer is QCA6390 on
> the RB5 board. The next steps are enabling pwrseq for Bluetooth on sm8650
> and the X13s laptop. To that end we need to make wcn7850 and wcn6855 aware
> of the power sequencing but also keep backward compatibility with older
> device trees.
> 
> This series contains changes to mainline DT bindings for wcn7850, some
> refactoring of the hci_qca driver, making pwrseq the default for the two
> models mentioned above and finally modifies the device-tree for sm8650-qrd
> to correctly represent the way the Bluetooth module is powered.
> 
> I made the last patch part of this series as it has a run-time dependency
> on previous changes in it and bluetooth support on the board will break
> without them.
> 
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> Changes in v3:
> - Add a missing break in a switch case
> - Link to v2: https://lore.kernel.org/r/20240708-hci_qca_refactor-v2-0-b6e83b3d1ca5@linaro.org
> 
> Changes in v2:
> - Fix a switch issue reported by the test bot
> - Link to v1: https://lore.kernel.org/r/20240705-hci_qca_refactor-v1-0-e2442121c13e@linaro.org
> 
> ---
> Bartosz Golaszewski (6):
>        dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
>        Bluetooth: hci_qca: schedule a devm action for disabling the clock
>        Bluetooth: hci_qca: unduplicate calls to hci_uart_register_device()
>        Bluetooth: hci_qca: make pwrseq calls the default if available
>        Bluetooth: hci_qca: use the power sequencer for wcn7850 and wcn6855
>        arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
> 
>   .../bindings/net/bluetooth/qualcomm-bluetooth.yaml | 18 +++--
>   arch/arm64/boot/dts/qcom/sm8650-qrd.dts            | 28 +++----
>   drivers/bluetooth/hci_qca.c                        | 87 +++++++++++++---------
>   3 files changed, 72 insertions(+), 61 deletions(-)
> ---
> base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
> change-id: 20240704-hci_qca_refactor-0770e9931fb4
> 
> Best regards,

Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-QRD

Still works on SM8550-QRD, and properly works with power sequencer on SM8650-QRD

Thanks,
Neil
patchwork-bot+bluetooth@kernel.org July 10, 2024, 7:50 p.m. UTC | #2
Hello:

This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Tue, 09 Jul 2024 14:18:31 +0200 you wrote:
> The following series extend the usage of the power sequencing subsystem
> in the hci_qca driver.
> 
> The end goal is to convert the entire driver to be exclusively pwrseq-based
> and simplify it in the process. However due to a large number of users we
> need to be careful and consider every case separately.
> 
> [...]

Here is the summary with links:
  - [v3,1/6] dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
    https://git.kernel.org/bluetooth/bluetooth-next/c/e1c54afa8526
  - [v3,2/6] Bluetooth: hci_qca: schedule a devm action for disabling the clock
    https://git.kernel.org/bluetooth/bluetooth-next/c/a887c8dede8e
  - [v3,3/6] Bluetooth: hci_qca: unduplicate calls to hci_uart_register_device()
    https://git.kernel.org/bluetooth/bluetooth-next/c/cdd10964f76f
  - [v3,4/6] Bluetooth: hci_qca: make pwrseq calls the default if available
    https://git.kernel.org/bluetooth/bluetooth-next/c/958a33c3f9fc
  - [v3,5/6] Bluetooth: hci_qca: use the power sequencer for wcn7850 and wcn6855
    https://git.kernel.org/bluetooth/bluetooth-next/c/4fa54d8731ec
  - [v3,6/6] arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
    (no matching commit)

You are awesome, thank you!
Luiz Augusto von Dentz July 10, 2024, 8:43 p.m. UTC | #3
Hi Bartosz,

On Wed, Jul 10, 2024 at 3:50 PM <patchwork-bot+bluetooth@kernel.org> wrote:
>
> Hello:
>
> This series was applied to bluetooth/bluetooth-next.git (master)
> by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
>
> On Tue, 09 Jul 2024 14:18:31 +0200 you wrote:
> > The following series extend the usage of the power sequencing subsystem
> > in the hci_qca driver.
> >
> > The end goal is to convert the entire driver to be exclusively pwrseq-based
> > and simplify it in the process. However due to a large number of users we
> > need to be careful and consider every case separately.
> >
> > [...]
>
> Here is the summary with links:
>   - [v3,1/6] dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
>     https://git.kernel.org/bluetooth/bluetooth-next/c/e1c54afa8526
>   - [v3,2/6] Bluetooth: hci_qca: schedule a devm action for disabling the clock
>     https://git.kernel.org/bluetooth/bluetooth-next/c/a887c8dede8e
>   - [v3,3/6] Bluetooth: hci_qca: unduplicate calls to hci_uart_register_device()
>     https://git.kernel.org/bluetooth/bluetooth-next/c/cdd10964f76f
>   - [v3,4/6] Bluetooth: hci_qca: make pwrseq calls the default if available
>     https://git.kernel.org/bluetooth/bluetooth-next/c/958a33c3f9fc
>   - [v3,5/6] Bluetooth: hci_qca: use the power sequencer for wcn7850 and wcn6855
>     https://git.kernel.org/bluetooth/bluetooth-next/c/4fa54d8731ec
>   - [v3,6/6] arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
>     (no matching commit)

Last one doesn't apply so you will probably need to rebase or
something if it really needs to go thru bluetooth-next.

> You are awesome, thank you!
> --
> Deet-doot-dot, I am a bot.
> https://korg.docs.kernel.org/patchwork/pwbot.html
>
>
Konrad Dybcio July 10, 2024, 10:08 p.m. UTC | #4
On 10.07.2024 10:43 PM, Luiz Augusto von Dentz wrote:
> Hi Bartosz,
> 
> On Wed, Jul 10, 2024 at 3:50 PM <patchwork-bot+bluetooth@kernel.org> wrote:
>>
>> Hello:
>>
>> This series was applied to bluetooth/bluetooth-next.git (master)
>> by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
>>
>> On Tue, 09 Jul 2024 14:18:31 +0200 you wrote:
>>> The following series extend the usage of the power sequencing subsystem
>>> in the hci_qca driver.
>>>
>>> The end goal is to convert the entire driver to be exclusively pwrseq-based
>>> and simplify it in the process. However due to a large number of users we
>>> need to be careful and consider every case separately.
>>>
>>> [...]
>>
>> Here is the summary with links:
>>   - [v3,1/6] dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
>>     https://git.kernel.org/bluetooth/bluetooth-next/c/e1c54afa8526
>>   - [v3,2/6] Bluetooth: hci_qca: schedule a devm action for disabling the clock
>>     https://git.kernel.org/bluetooth/bluetooth-next/c/a887c8dede8e
>>   - [v3,3/6] Bluetooth: hci_qca: unduplicate calls to hci_uart_register_device()
>>     https://git.kernel.org/bluetooth/bluetooth-next/c/cdd10964f76f
>>   - [v3,4/6] Bluetooth: hci_qca: make pwrseq calls the default if available
>>     https://git.kernel.org/bluetooth/bluetooth-next/c/958a33c3f9fc
>>   - [v3,5/6] Bluetooth: hci_qca: use the power sequencer for wcn7850 and wcn6855
>>     https://git.kernel.org/bluetooth/bluetooth-next/c/4fa54d8731ec
>>   - [v3,6/6] arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
>>     (no matching commit)
> 
> Last one doesn't apply so you will probably need to rebase or
> something if it really needs to go thru bluetooth-next.

Bartosz forgot to mention it should go through qcom

Konrad
Bartosz Golaszewski July 11, 2024, 7:11 a.m. UTC | #5
On Thu, Jul 11, 2024 at 12:08 AM Konrad Dybcio <konrad.dybcio@linaro.org> wrote:
>
> On 10.07.2024 10:43 PM, Luiz Augusto von Dentz wrote:
> > Hi Bartosz,
> >
> > On Wed, Jul 10, 2024 at 3:50 PM <patchwork-bot+bluetooth@kernel.org> wrote:
> >>
> >> Hello:
> >>
> >> This series was applied to bluetooth/bluetooth-next.git (master)
> >> by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
> >>
> >> On Tue, 09 Jul 2024 14:18:31 +0200 you wrote:
> >>> The following series extend the usage of the power sequencing subsystem
> >>> in the hci_qca driver.
> >>>
> >>> The end goal is to convert the entire driver to be exclusively pwrseq-based
> >>> and simplify it in the process. However due to a large number of users we
> >>> need to be careful and consider every case separately.
> >>>
> >>> [...]
> >>
> >> Here is the summary with links:
> >>   - [v3,1/6] dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
> >>     https://git.kernel.org/bluetooth/bluetooth-next/c/e1c54afa8526
> >>   - [v3,2/6] Bluetooth: hci_qca: schedule a devm action for disabling the clock
> >>     https://git.kernel.org/bluetooth/bluetooth-next/c/a887c8dede8e
> >>   - [v3,3/6] Bluetooth: hci_qca: unduplicate calls to hci_uart_register_device()
> >>     https://git.kernel.org/bluetooth/bluetooth-next/c/cdd10964f76f
> >>   - [v3,4/6] Bluetooth: hci_qca: make pwrseq calls the default if available
> >>     https://git.kernel.org/bluetooth/bluetooth-next/c/958a33c3f9fc
> >>   - [v3,5/6] Bluetooth: hci_qca: use the power sequencer for wcn7850 and wcn6855
> >>     https://git.kernel.org/bluetooth/bluetooth-next/c/4fa54d8731ec
> >>   - [v3,6/6] arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
> >>     (no matching commit)
> >
> > Last one doesn't apply so you will probably need to rebase or
> > something if it really needs to go thru bluetooth-next.
>
> Bartosz forgot to mention it should go through qcom
>
> Konrad

Yes, sorry. That's alright, if patches 1-5/6 make v6.11 then I'll just
resend patch 6/6 to Bjorn directly next release and we'll avoid a
cross-tree merge this way.

Thanks!
Bart
Bjorn Andersson Aug. 1, 2024, 3:22 a.m. UTC | #6
On Tue, 09 Jul 2024 14:18:31 +0200, Bartosz Golaszewski wrote:
> The following series extend the usage of the power sequencing subsystem
> in the hci_qca driver.
> 
> The end goal is to convert the entire driver to be exclusively pwrseq-based
> and simplify it in the process. However due to a large number of users we
> need to be careful and consider every case separately.
> 
> [...]

Applied, thanks!

[6/6] arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
      commit: 4e71c38244dbeb6619156b417d469771bba52b83

Best regards,