From: sashiko-bot@kernel.org
To: "Loic Poulain" <loic.poulain@oss.qualcomm.com>
Cc: devicetree@vger.kernel.org, linux-pci@vger.kernel.org,
conor+dt@kernel.org, robh@kernel.org
Subject: Re: [PATCH v6 08/11] Bluetooth: hci_qca: Support QCA2066 on M.2 connector via pwrseq
Date: Fri, 04 Sep 2026 16:00:19 +0000 [thread overview]
Message-ID: <20260904160019.C4D221F00A3E@smtp.kernel.org> (raw)
In-Reply-To: <20260904-monza-wireless-v6-8-d8c5042b3efd@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Early return in `qca_power_off()` skips GPIO de-assertion for default branch devices with a power sequencer.
--
commit 6c86f185e6dc88f0462c04e46b64a4f809caeae3
Author: Loic Poulain <loic.poulain@oss.qualcomm.com>
Bluetooth: hci_qca: Support QCA2066 on M.2 connector via pwrseq
For QCA2066 (and other QCA chips) on M.2 connectors, the UART enable is
controlled by the W_DISABLE2# signal managed by the pcie-m2 power sequencer
rather than a dedicated BT enable GPIO.
When the serdev controller has an OF graph (indicating it is connected to
an M.2 connector), acquire the uart pwrseq target from the connector's
power sequencer and use it to control BT power instead of the bt-enable
GPIO. This is factored out into qca_serdev_get_m2_pwrseq().
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index 30586120c4a73..db0a968dfb00f 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -1875,6 +1875,9 @@ static int qca_power_on(struct hci_dev *hdev)
> /* Controller needs time to bootup. */
> msleep(150);
> }
> +
> + if (qcadev->bt_power.pwrseq)
> + pwrseq_power_on(qcadev->bt_power.pwrseq);
> }
>
> clear_bit(QCA_BT_OFF, &qca->flags);
[Severity: Medium]
For devices in the default switch case, if the device tree contains both an
enable GPIO and an M.2 power sequencer, qca_serdev_probe() will acquire both.
This block asserts the enable GPIO and then turns on the power sequencer.
However, in qca_power_off(), the presence of a power sequencer causes an early
return:
drivers/bluetooth/hci_qca.c:qca_power_off() {
...
if (power->pwrseq) {
pwrseq_disable(power->pwrseq);
set_bit(QCA_BT_OFF, &qca->flags);
return;
}
switch (soc_type) {
...
default:
gpiod_set_value_cansleep(qcadev->bt_en, 0);
}
...
}
Will this early return cause the enable GPIO to be left asserted indefinitely
upon power off for these devices?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260904-monza-wireless-v6-0-d8c5042b3efd@oss.qualcomm.com?part=8
next prev parent reply other threads:[~2026-09-04 16:00 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 15:42 [PATCH v6 00/11] arm64: dts: monaco-arduino-monza: Add support for LGA WiFi/BT module Loic Poulain
2026-09-04 15:42 ` [PATCH v6 01/11] Bluetooth: hci_qca: Add M.2 Bluetooth device support using pwrseq Loic Poulain
2026-09-04 16:02 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 02/11] Bluetooth: hci_qca: Rename 'power_ctrl_enabled' to 'bt_en_available' Loic Poulain
2026-09-04 16:00 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 03/11] power: sequencing: Add pwrseq_is_controllable() API Loic Poulain
2026-09-04 15:52 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 04/11] power: sequencing: pcie-m2: Report power controllability Loic Poulain
2026-09-04 15:48 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 05/11] power: sequencing: qcom-wcn: " Loic Poulain
2026-09-04 15:51 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 06/11] Bluetooth: hci_qca: Set 'bt_en_available' based on pwrseq " Loic Poulain
2026-09-04 15:59 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 07/11] Bluetooth: hci_qca: Embed bt_power in struct qca_serdev Loic Poulain
2026-09-04 15:53 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 08/11] Bluetooth: hci_qca: Support QCA2066 on M.2 connector via pwrseq Loic Poulain
2026-09-04 16:00 ` sashiko-bot [this message]
2026-09-04 15:42 ` [PATCH v6 09/11] Bluetooth: hci_qca: Flatten struct qca_power into struct qca_serdev Loic Poulain
2026-09-04 15:57 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 10/11] dt-bindings: connector: pcie-m2-e: Add vendor LGA connector compatible Loic Poulain
2026-09-04 15:51 ` sashiko-bot
2026-09-04 15:42 ` [PATCH v6 11/11] arm64: dts: qcom: monaco-arduino-monza: Add QCA2066 M.2 WiFi/BT support Loic Poulain
2026-09-04 16:08 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260904160019.C4D221F00A3E@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=loic.poulain@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox