* [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
0 siblings, 1 reply; 7+ 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 [flat|nested] 7+ 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
0 siblings, 1 reply; 7+ 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] 7+ 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; 7+ 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] 7+ 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; 7+ 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] 7+ 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; 7+ 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] 7+ 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; 7+ 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] 7+ 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; 7+ 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] 7+ messages in thread
end of thread, other threads:[~2026-03-19 7:41 UTC | newest]
Thread overview: 7+ 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®