ath11k: add support for extended wmi service bit
authorWen Gong <quic_wgong@quicinc.com>
Tue, 12 Apr 2022 13:15:50 +0000 (16:15 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Sat, 23 Apr 2022 09:27:09 +0000 (12:27 +0300)
commite2e23a791745a194aa8e6fb4983c2e7b408ab6e1
treec9446608385d261329285e17328446f5155bfd6f
parentd7ceee8051ba226f1a481edadd06e34e200fcbab
ath11k: add support for extended wmi service bit

When the WMI service bits are reported from firmware they are divided into
multiple segments, with 128 bits in each segment. The first segment is
processed by ath11k_wmi_service_bitmap_copy(), the second segment is processed
by ath11k_service_available_event() with WMI_TAG_SERVICE_AVAILABLE_EVENT. When
the service bit exceed 256 bits, then firmware reports it by tag
WMI_TAG_ARRAY_UINT32 in WMI_SERVICE_AVAILABLE_EVENTID.

Currently ath11k does not process the third segment. Upcoming features
need to know if firmware support is available for the features, so add
processing of the third segment.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1

Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220401120948.1312956-2-quic_bqiang@quicinc.com
drivers/net/wireless/ath/ath11k/wmi.c
drivers/net/wireless/ath/ath11k/wmi.h