Add WoW support for WCN6750.
Unlike other chips where WoW exit happens after sending WoW wakeup
WMI command, exit from WoW suspend in the case of WCN6750 happens
upon sending a WoW exit SMP2P (Shared memory point to point) message
to the firmware.
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
Manikanta Pubbisetty (2):
dt: bindings: net: add bindings to add WoW support for WCN6750
ath11k: Add WoW support for WCN6750
---
V2:
- Replaced shift/mask operation with u32_encode_bits() before sending SMP2P message
- Rebased on ToT COMMIT SHA-ID: f60b230094cbf88c73808709e4f9c1cf09eb0b01
.../bindings/net/wireless/qcom,ath11k.yaml | 17 +++
drivers/net/wireless/ath/ath11k/ahb.c | 123 +++++++++++++++++-
drivers/net/wireless/ath/ath11k/ahb.h | 16 +++
drivers/net/wireless/ath/ath11k/core.c | 7 +
drivers/net/wireless/ath/ath11k/hw.h | 1 +
drivers/net/wireless/ath/ath11k/pcic.c | 32 +++++
drivers/net/wireless/ath/ath11k/pcic.h | 4 +
drivers/net/wireless/ath/ath11k/wow.c | 8 ++
8 files changed, 207 insertions(+), 1 deletion(-)
--
2.37.1
Add required bindings to support WoW (Wake on Wireless) for
WCN6750 which is based on ath11k driver.
Signed-off-by: Manikanta Pubbisetty <[email protected]>
---
.../bindings/net/wireless/qcom,ath11k.yaml | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
index a677b056f112..307a5b9d1588 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
@@ -66,6 +66,14 @@ properties:
required:
- iommus
+ qcom,smem-states:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description: State bits used in WCN6750 to signal the firmware
+ to exit from WoW.
+
+ qcom,smem-state-names:
+ description: The names of the state bits used for SMP2P output
+
required:
- compatible
- reg
@@ -410,6 +418,13 @@ examples:
};
};
+ smp2p-wpss {
+ wlan_smp2p_out: wlan_smp2p_out {
+ qcom,entry-name = "wlan";
+ #qcom,smem-state-cells = <1>;
+ };
+ };
+
wifi: wifi@17a10040 {
compatible = "qcom,wcn6750-wifi";
reg = <0x17a10040 0x0>;
@@ -448,6 +463,8 @@ examples:
<GIC_SPI 799 IRQ_TYPE_EDGE_RISING>;
qcom,rproc = <&remoteproc_wpss>;
memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
+ qcom,smem-states = <&wlan_smp2p_out 0>;
+ qcom,smem-state-names = "wlan-smp2p-out";
wifi-firmware {
iommus = <&apps_smmu 0x1c02 0x1>;
};
--
2.37.1
On 29/08/2022 15:43, Manikanta Pubbisetty wrote:
> Add required bindings to support WoW (Wake on Wireless) for
> WCN6750 which is based on ath11k driver.
>
> Signed-off-by: Manikanta Pubbisetty <[email protected]>
Use scripts/get_maintainers.pl to CC all maintainers and relevant
mailing lists.
> ---
> .../bindings/net/wireless/qcom,ath11k.yaml | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> index a677b056f112..307a5b9d1588 100644
> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> @@ -66,6 +66,14 @@ properties:
> required:
> - iommus
>
> + qcom,smem-states:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + description: State bits used in WCN6750 to signal the firmware
> + to exit from WoW.
You need to describe the item (s).
> +
> + qcom,smem-state-names:
> + description: The names of the state bits used for SMP2P output
You need to describe the item (s).
> +
> required:
> - compatible
> - reg
> @@ -410,6 +418,13 @@ examples:
> };
> };
>
> + smp2p-wpss {
> + wlan_smp2p_out: wlan_smp2p_out {
No underscores in node names. This example is incomplete and I am not
sure what is the benefit of adding provider example to the consumer
binding... Just skip it.
Best regards,
Best regards,
Krzysztof
On 8/30/2022 10:55 PM, Krzysztof Kozlowski wrote:
> On 29/08/2022 15:43, Manikanta Pubbisetty wrote:
>> Add required bindings to support WoW (Wake on Wireless) for
>> WCN6750 which is based on ath11k driver.
>>
>> Signed-off-by: Manikanta Pubbisetty <[email protected]>
>
> Use scripts/get_maintainers.pl to CC all maintainers and relevant
> mailing lists.
>
Sure, I'll take care of this going forward.
>> ---
>> .../bindings/net/wireless/qcom,ath11k.yaml | 17 +++++++++++++++++
>> 1 file changed, 17 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
>> index a677b056f112..307a5b9d1588 100644
>> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
>> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
>> @@ -66,6 +66,14 @@ properties:
>> required:
>> - iommus
>>
>> + qcom,smem-states:
>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>> + description: State bits used in WCN6750 to signal the firmware
>> + to exit from WoW.
>
> You need to describe the item (s).
>
Okay
>> +
>> + qcom,smem-state-names:
>> + description: The names of the state bits used for SMP2P output
>
> You need to describe the item (s).
>
Okay
>> +
>> required:
>> - compatible
>> - reg
>> @@ -410,6 +418,13 @@ examples:
>> };
>> };
>>
>> + smp2p-wpss {
>> + wlan_smp2p_out: wlan_smp2p_out {
>
> No underscores in node names. This example is incomplete and I am not
> sure what is the benefit of adding provider example to the consumer
> binding... Just skip it.
>
Understood, I'll make the changes.
Thanks,
Manikanta