* [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
@ 2026-03-19 3:10 Shuai Zhang
2026-03-19 3:51 ` Dmitry Baryshkov
2026-03-19 4:39 ` [v1] " bluez.test.bot
0 siblings, 2 replies; 8+ messages in thread
From: Shuai Zhang @ 2026-03-19 3:10 UTC (permalink / raw)
To: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz
Cc: linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu, shuai.zhang
For platforms where the bt_en GPIO is not defined, software-based power
control should be disabled when power is managed by hardware.
Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
cleared when bt_en is absent, aligning its behavior with WCN6750 and
WCN6855.
Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
---
drivers/bluetooth/hci_qca.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index c17a462aef55..4512ff7cd0c0 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
if (!qcadev->bt_en &&
(data->soc_type == QCA_WCN6750 ||
- data->soc_type == QCA_WCN6855))
+ data->soc_type == QCA_WCN6855 ||
+ data->soc_type == QCA_WCN7850))
power_ctrl_enabled = false;
qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 3:10 [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined Shuai Zhang
@ 2026-03-19 3:51 ` Dmitry Baryshkov
2026-03-19 5:21 ` Shuai Zhang
2026-03-19 4:39 ` [v1] " bluez.test.bot
1 sibling, 1 reply; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-03-19 3:51 UTC (permalink / raw)
To: Shuai Zhang
Cc: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz,
linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu
On Thu, Mar 19, 2026 at 11:10:40AM +0800, Shuai Zhang wrote:
> For platforms where the bt_en GPIO is not defined, software-based power
> control should be disabled when power is managed by hardware.
What does it mean for this chip, managing the power in hardware?
>
> Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
> cleared when bt_en is absent, aligning its behavior with WCN6750 and
> WCN6855.
>
> Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
> ---
> drivers/bluetooth/hci_qca.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index c17a462aef55..4512ff7cd0c0 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
>
> if (!qcadev->bt_en &&
> (data->soc_type == QCA_WCN6750 ||
> - data->soc_type == QCA_WCN6855))
> + data->soc_type == QCA_WCN6855 ||
> + data->soc_type == QCA_WCN7850))
> power_ctrl_enabled = false;
>
> qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 3:10 [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined Shuai Zhang
2026-03-19 3:51 ` Dmitry Baryshkov
@ 2026-03-19 4:39 ` bluez.test.bot
1 sibling, 0 replies; 8+ messages in thread
From: bluez.test.bot @ 2026-03-19 4:39 UTC (permalink / raw)
To: linux-bluetooth, shuai.zhang
[-- Attachment #1: Type: text/plain, Size: 2833 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=1068977
---Test result---
Test Summary:
CheckPatch PENDING 0.47 seconds
GitLint PENDING 0.37 seconds
SubjectPrefix PASS 0.05 seconds
BuildKernel PASS 26.00 seconds
CheckAllWarning PASS 28.61 seconds
CheckSparse PASS 27.87 seconds
BuildKernel32 PASS 25.66 seconds
TestRunnerSetup PASS 568.95 seconds
TestRunner_l2cap-tester PASS 27.73 seconds
TestRunner_iso-tester FAIL 34.88 seconds
TestRunner_bnep-tester PASS 6.18 seconds
TestRunner_mgmt-tester FAIL 114.81 seconds
TestRunner_rfcomm-tester PASS 9.34 seconds
TestRunner_sco-tester FAIL 14.22 seconds
TestRunner_ioctl-tester PASS 10.25 seconds
TestRunner_mesh-tester FAIL 11.46 seconds
TestRunner_smp-tester PASS 8.51 seconds
TestRunner_userchan-tester PASS 6.67 seconds
IncrementalBuild PENDING 0.63 seconds
Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:
##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:
##############################
Test: TestRunner_iso-tester - FAIL
Desc: Run iso-tester with test-runner
Output:
BUG: KASAN: slab-use-after-free in le_read_features_complete+0x7e/0x2b0
Total: 141, Passed: 141 (100.0%), Failed: 0, Not Run: 0
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 494, Passed: 489 (99.0%), Failed: 1, Not Run: 4
Failed Test Cases
Read Exp Feature - Success Failed 0.108 seconds
##############################
Test: TestRunner_sco-tester - FAIL
Desc: Run sco-tester with test-runner
Output:
WARNING: possible circular locking dependency detected
BUG: sleeping function called from invalid context at net/core/sock.c:3782
Total: 30, Passed: 30 (100.0%), Failed: 0, Not Run: 0
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 8 (80.0%), Failed: 2, Not Run: 0
Failed Test Cases
Mesh - Send cancel - 1 Timed out 1.854 seconds
Mesh - Send cancel - 2 Timed out 1.999 seconds
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 3:51 ` Dmitry Baryshkov
@ 2026-03-19 5:21 ` Shuai Zhang
2026-03-19 5:42 ` Dmitry Baryshkov
0 siblings, 1 reply; 8+ messages in thread
From: Shuai Zhang @ 2026-03-19 5:21 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz,
linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu
Hi Dmitry
On 3/19/2026 11:51 AM, Dmitry Baryshkov wrote:
> On Thu, Mar 19, 2026 at 11:10:40AM +0800, Shuai Zhang wrote:
>> For platforms where the bt_en GPIO is not defined, software-based power
>> control should be disabled when power is managed by hardware.
> What does it mean for this chip, managing the power in hardware?
bt_en is pulled high by hardware, or described in the device tree as a
regular always-on GPIO.
>> Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
>> cleared when bt_en is absent, aligning its behavior with WCN6750 and
>> WCN6855.
>>
>> Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
>> ---
>> drivers/bluetooth/hci_qca.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>> index c17a462aef55..4512ff7cd0c0 100644
>> --- a/drivers/bluetooth/hci_qca.c
>> +++ b/drivers/bluetooth/hci_qca.c
>> @@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
>>
>> if (!qcadev->bt_en &&
>> (data->soc_type == QCA_WCN6750 ||
>> - data->soc_type == QCA_WCN6855))
>> + data->soc_type == QCA_WCN6855 ||
>> + data->soc_type == QCA_WCN7850))
>> power_ctrl_enabled = false;
>>
>> qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 5:21 ` Shuai Zhang
@ 2026-03-19 5:42 ` Dmitry Baryshkov
2026-03-19 6:06 ` Shuai Zhang
0 siblings, 1 reply; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-03-19 5:42 UTC (permalink / raw)
To: Shuai Zhang
Cc: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz,
linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu
On Thu, Mar 19, 2026 at 01:21:58PM +0800, Shuai Zhang wrote:
> Hi Dmitry
>
> On 3/19/2026 11:51 AM, Dmitry Baryshkov wrote:
> > On Thu, Mar 19, 2026 at 11:10:40AM +0800, Shuai Zhang wrote:
> > > For platforms where the bt_en GPIO is not defined, software-based power
> > > control should be disabled when power is managed by hardware.
> > What does it mean for this chip, managing the power in hardware?
>
> bt_en is pulled high by hardware,
In which cases is it applicable?
> or described in the device tree as a
> regular always-on GPIO.
Why?
>
>
> > > Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
> > > cleared when bt_en is absent, aligning its behavior with WCN6750 and
> > > WCN6855.
> > >
> > > Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
> > > ---
> > > drivers/bluetooth/hci_qca.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> > > index c17a462aef55..4512ff7cd0c0 100644
> > > --- a/drivers/bluetooth/hci_qca.c
> > > +++ b/drivers/bluetooth/hci_qca.c
> > > @@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
> > > if (!qcadev->bt_en &&
> > > (data->soc_type == QCA_WCN6750 ||
> > > - data->soc_type == QCA_WCN6855))
> > > + data->soc_type == QCA_WCN6855 ||
> > > + data->soc_type == QCA_WCN7850))
> > > power_ctrl_enabled = false;
> > > qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
> > > --
> > > 2.34.1
> > >
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 5:42 ` Dmitry Baryshkov
@ 2026-03-19 6:06 ` Shuai Zhang
2026-03-19 6:44 ` Dmitry Baryshkov
0 siblings, 1 reply; 8+ messages in thread
From: Shuai Zhang @ 2026-03-19 6:06 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz,
linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu
On 3/19/2026 1:42 PM, Dmitry Baryshkov wrote:
> On Thu, Mar 19, 2026 at 01:21:58PM +0800, Shuai Zhang wrote:
>> Hi Dmitry
>>
>> On 3/19/2026 11:51 AM, Dmitry Baryshkov wrote:
>>> On Thu, Mar 19, 2026 at 11:10:40AM +0800, Shuai Zhang wrote:
>>>> For platforms where the bt_en GPIO is not defined, software-based power
>>>> control should be disabled when power is managed by hardware.
>>> What does it mean for this chip, managing the power in hardware?
>> bt_en is pulled high by hardware,
> In which cases is it applicable?
On platforms using an M.2 slot with both UART and USB support, bt_en is
pulled high
by hardware. The current platforms are Lemans‑EVK and Monaco‑EVK.
>
>> or described in the device tree as a
>> regular always-on GPIO.
> Why?
This is equivalent to bt_en being pulled high by hardware,
and it applies to the same scenarios and platforms mentioned above.
>
>>
>>>> Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
>>>> cleared when bt_en is absent, aligning its behavior with WCN6750 and
>>>> WCN6855.
>>>>
>>>> Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
>>>> ---
>>>> drivers/bluetooth/hci_qca.c | 3 ++-
>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>>>> index c17a462aef55..4512ff7cd0c0 100644
>>>> --- a/drivers/bluetooth/hci_qca.c
>>>> +++ b/drivers/bluetooth/hci_qca.c
>>>> @@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
>>>> if (!qcadev->bt_en &&
>>>> (data->soc_type == QCA_WCN6750 ||
>>>> - data->soc_type == QCA_WCN6855))
>>>> + data->soc_type == QCA_WCN6855 ||
>>>> + data->soc_type == QCA_WCN7850))
>>>> power_ctrl_enabled = false;
>>>> qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
>>>> --
>>>> 2.34.1
>>>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 6:06 ` Shuai Zhang
@ 2026-03-19 6:44 ` Dmitry Baryshkov
2026-03-19 7:41 ` Shuai Zhang
0 siblings, 1 reply; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-03-19 6:44 UTC (permalink / raw)
To: Shuai Zhang
Cc: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz,
linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu
On Thu, Mar 19, 2026 at 02:06:49PM +0800, Shuai Zhang wrote:
>
> On 3/19/2026 1:42 PM, Dmitry Baryshkov wrote:
> > On Thu, Mar 19, 2026 at 01:21:58PM +0800, Shuai Zhang wrote:
> > > Hi Dmitry
> > >
> > > On 3/19/2026 11:51 AM, Dmitry Baryshkov wrote:
> > > > On Thu, Mar 19, 2026 at 11:10:40AM +0800, Shuai Zhang wrote:
> > > > > For platforms where the bt_en GPIO is not defined, software-based power
> > > > > control should be disabled when power is managed by hardware.
> > > > What does it mean for this chip, managing the power in hardware?
> > > bt_en is pulled high by hardware,
> > In which cases is it applicable?
>
>
> On platforms using an M.2 slot with both UART and USB support, bt_en is
> pulled high
>
> by hardware. The current platforms are Lemans‑EVK and Monaco‑EVK.
This needs to be a part of the commit message.
>
>
> >
> > > or described in the device tree as a
> > > regular always-on GPIO.
> > Why?
>
>
> This is equivalent to bt_en being pulled high by hardware,
>
> and it applies to the same scenarios and platforms mentioned above.
No, DT would not describe the GPIO as always-on in this case.
>
>
> >
> > >
> > > > > Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
> > > > > cleared when bt_en is absent, aligning its behavior with WCN6750 and
> > > > > WCN6855.
> > > > >
> > > > > Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
> > > > > ---
> > > > > drivers/bluetooth/hci_qca.c | 3 ++-
> > > > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> > > > > index c17a462aef55..4512ff7cd0c0 100644
> > > > > --- a/drivers/bluetooth/hci_qca.c
> > > > > +++ b/drivers/bluetooth/hci_qca.c
> > > > > @@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
> > > > > if (!qcadev->bt_en &&
> > > > > (data->soc_type == QCA_WCN6750 ||
> > > > > - data->soc_type == QCA_WCN6855))
> > > > > + data->soc_type == QCA_WCN6855 ||
> > > > > + data->soc_type == QCA_WCN7850))
> > > > > power_ctrl_enabled = false;
> > > > > qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
> > > > > --
> > > > > 2.34.1
> > > > >
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined
2026-03-19 6:44 ` Dmitry Baryshkov
@ 2026-03-19 7:41 ` Shuai Zhang
0 siblings, 0 replies; 8+ messages in thread
From: Shuai Zhang @ 2026-03-19 7:41 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bartosz Golaszewski, Marcel Holtmann, Luiz Augusto von Dentz,
linux-arm-msm, linux-bluetooth, linux-kernel, cheng.jiang,
quic_chezhou, wei.deng, jinwang.li, mengshi.wu
On 3/19/2026 2:44 PM, Dmitry Baryshkov wrote:
> On Thu, Mar 19, 2026 at 02:06:49PM +0800, Shuai Zhang wrote:
>> On 3/19/2026 1:42 PM, Dmitry Baryshkov wrote:
>>> On Thu, Mar 19, 2026 at 01:21:58PM +0800, Shuai Zhang wrote:
>>>> Hi Dmitry
>>>>
>>>> On 3/19/2026 11:51 AM, Dmitry Baryshkov wrote:
>>>>> On Thu, Mar 19, 2026 at 11:10:40AM +0800, Shuai Zhang wrote:
>>>>>> For platforms where the bt_en GPIO is not defined, software-based power
>>>>>> control should be disabled when power is managed by hardware.
>>>>> What does it mean for this chip, managing the power in hardware?
>>>> bt_en is pulled high by hardware,
>>> In which cases is it applicable?
>>
>> On platforms using an M.2 slot with both UART and USB support, bt_en is
>> pulled high
>>
>> by hardware. The current platforms are Lemans‑EVK and Monaco‑EVK.
> This needs to be a part of the commit message.
I will update.
>
>>
>>>> or described in the device tree as a
>>>> regular always-on GPIO.
>>> Why?
>>
>> This is equivalent to bt_en being pulled high by hardware,
>>
>> and it applies to the same scenarios and platforms mentioned above.
> No, DT would not describe the GPIO as always-on in this case.
Yes, understood. In this case, bt_en is pulled high by hardware and is
not described as an always-on GPIO in the device tree.
>
>>
>>>>>> Add QCA_WCN7850 to the existing condition so that power_ctrl_enabled is
>>>>>> cleared when bt_en is absent, aligning its behavior with WCN6750 and
>>>>>> WCN6855.
>>>>>>
>>>>>> Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
>>>>>> ---
>>>>>> drivers/bluetooth/hci_qca.c | 3 ++-
>>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>>>>>> index c17a462aef55..4512ff7cd0c0 100644
>>>>>> --- a/drivers/bluetooth/hci_qca.c
>>>>>> +++ b/drivers/bluetooth/hci_qca.c
>>>>>> @@ -2484,7 +2484,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
>>>>>> if (!qcadev->bt_en &&
>>>>>> (data->soc_type == QCA_WCN6750 ||
>>>>>> - data->soc_type == QCA_WCN6855))
>>>>>> + data->soc_type == QCA_WCN6855 ||
>>>>>> + data->soc_type == QCA_WCN7850))
>>>>>> power_ctrl_enabled = false;
>>>>>> qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
>>>>>> --
>>>>>> 2.34.1
>>>>>>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-03-19 7:41 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-19 3:10 [PATCH v1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined Shuai Zhang
2026-03-19 3:51 ` Dmitry Baryshkov
2026-03-19 5:21 ` Shuai Zhang
2026-03-19 5:42 ` Dmitry Baryshkov
2026-03-19 6:06 ` Shuai Zhang
2026-03-19 6:44 ` Dmitry Baryshkov
2026-03-19 7:41 ` Shuai Zhang
2026-03-19 4:39 ` [v1] " bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox