[PATCH v6 05/11] wifi: ath12k: implement handling of P2P NoA event
Kang Yang
quic_kangyang at quicinc.com
Mon Feb 5 18:21:13 PST 2024
On 2/2/2024 9:53 PM, Kalle Valo wrote:
> Kang Yang <quic_kangyang at quicinc.com> writes:
>
>> The NoA(Notice of Absence) attribute is used by the P2P Group Owner to
>> signal its absence due to power save timing, concurrent operation, or
>> off-channel scanning. It is also used in the P2P Presence Request-Response
>> mechanism.
>>
>> The NoA attribute shall be present in the P2P IE in the beacon frames
>> transmitted by a P2P Group Owner when a NoA schedule is being advertised,
>> or when the CTWindow is non-zero.
>>
>> So add support to update P2P information after P2P GO is up through
>> event WMI_P2P_NOA_EVENTID, and always put it in probe resp.
>>
>> Create p2p.c and p2p.h for P2P related functions and definitions.
>>
>> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>
>> Signed-off-by: Kang Yang <quic_kangyang at quicinc.com>
>
> This patch 5 had simple conflicts in wmi.c, please check:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=cbcb45c458a93d32a48b9280c13294e0853fa5dd
>
Sorry for late reply, I am in Spring Festival holiday. It seems i have
conflict in adding WMI event, because you merge TWT patch-set before.
conflict:
root at Mayan:/home/yk/ath12k-upstream/drivers/net/wireless/ath/ath12k# cat
wmi.c.rej
diff a/drivers/net/wireless/ath/ath12k/wmi.c
b/drivers/net/wireless/ath/ath12k/wmi.c (rejected hunks)
@@ -162,6 +163,10 @@ static const struct ath12k_wmi_tlv_policy
ath12k_wmi_tlv_policies[] = {
.min_len = sizeof(struct wmi_probe_resp_tx_status_event) },
[WMI_TAG_VDEV_DELETE_RESP_EVENT] = {
.min_len = sizeof(struct wmi_vdev_delete_resp_event) },
+ [WMI_TAG_P2P_NOA_INFO] = {
+ .min_len = sizeof(struct ath12k_wmi_p2p_noa_info) },
+ [WMI_TAG_P2P_NOA_EVENT] = {
+ .min_len = sizeof(struct wmi_p2p_noa_event) },
};
static __le32 ath12k_wmi_tlv_hdr(u32 cmd, u32 len)
@@ -6807,6 +6853,9 @@ static void ath12k_wmi_op_rx(struct ath12k_base
*ab, struct sk_buff *skb)
case WMI_RFKILL_STATE_CHANGE_EVENTID:
ath12k_rfkill_state_change_event(ab, skb);
break;
+ case WMI_P2P_NOA_EVENTID:
+ ath12k_wmi_p2p_noa_event(ab, skb);
+ break;
/* add Unsupported events here */
case WMI_TBTTOFFSET_EXT_UPDATE_EVENTID:
case WMI_PEER_OPER_MODE_CHANGE_EVENTID:
TWT patch change:
@@ -164,6 +164,8 @@ static const struct ath12k_wmi_tlv_policy
ath12k_wmi_tlv_policies[] = {
.min_len = sizeof(struct wmi_vdev_delete_resp_event) },
[WMI_TAG_TWT_ENABLE_COMPLETE_EVENT] = {
.min_len = sizeof(struct wmi_twt_enable_event) },
+ [WMI_TAG_TWT_DISABLE_COMPLETE_EVENT] = {
+ .min_len = sizeof(struct wmi_twt_disable_event) },
};
@@ -6798,10 +6829,12 @@ static void ath12k_wmi_op_rx(struct ath12k_base
*ab, struct sk_buff *skb)
case WMI_TWT_ENABLE_EVENTID:
ath12k_wmi_twt_enable_event(ab, skb);
break;
+ case WMI_TWT_DISABLE_EVENTID:
+ ath12k_wmi_twt_disable_event(ab, skb);
+ break;
/* add Unsupported events here */
Do i need to send a new version ?
More information about the ath12k
mailing list