ath10k: remove the p2p notice of absence info from 10.2.4 FW beacon info
The p2p NOA never been supported at 10.2.4 FW, remove it to avoid SWBA event parse error for multi beacon interval case. Signed-off-by: Yanbo Li <yanbol@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
@@ -3256,6 +3256,50 @@ static int ath10k_wmi_op_pull_swba_ev(struct ath10k *ar, struct sk_buff *skb,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ath10k_wmi_10_2_4_op_pull_swba_ev(struct ath10k *ar,
|
||||
struct sk_buff *skb,
|
||||
struct wmi_swba_ev_arg *arg)
|
||||
{
|
||||
struct wmi_10_2_4_host_swba_event *ev = (void *)skb->data;
|
||||
u32 map;
|
||||
size_t i;
|
||||
|
||||
if (skb->len < sizeof(*ev))
|
||||
return -EPROTO;
|
||||
|
||||
skb_pull(skb, sizeof(*ev));
|
||||
arg->vdev_map = ev->vdev_map;
|
||||
|
||||
for (i = 0, map = __le32_to_cpu(ev->vdev_map); map; map >>= 1) {
|
||||
if (!(map & BIT(0)))
|
||||
continue;
|
||||
|
||||
/* If this happens there were some changes in firmware and
|
||||
* ath10k should update the max size of tim_info array.
|
||||
*/
|
||||
if (WARN_ON_ONCE(i == ARRAY_SIZE(arg->tim_info)))
|
||||
break;
|
||||
|
||||
if (__le32_to_cpu(ev->bcn_info[i].tim_info.tim_len) >
|
||||
sizeof(ev->bcn_info[i].tim_info.tim_bitmap)) {
|
||||
ath10k_warn(ar, "refusing to parse invalid swba structure\n");
|
||||
return -EPROTO;
|
||||
}
|
||||
|
||||
arg->tim_info[i].tim_len = ev->bcn_info[i].tim_info.tim_len;
|
||||
arg->tim_info[i].tim_mcast = ev->bcn_info[i].tim_info.tim_mcast;
|
||||
arg->tim_info[i].tim_bitmap =
|
||||
ev->bcn_info[i].tim_info.tim_bitmap;
|
||||
arg->tim_info[i].tim_changed =
|
||||
ev->bcn_info[i].tim_info.tim_changed;
|
||||
arg->tim_info[i].tim_num_ps_pending =
|
||||
ev->bcn_info[i].tim_info.tim_num_ps_pending;
|
||||
i++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ath10k_wmi_10_4_op_pull_swba_ev(struct ath10k *ar,
|
||||
struct sk_buff *skb,
|
||||
struct wmi_swba_ev_arg *arg)
|
||||
@@ -7584,7 +7628,7 @@ static const struct wmi_ops wmi_10_2_4_ops = {
|
||||
.pull_ch_info = ath10k_wmi_op_pull_ch_info_ev,
|
||||
.pull_vdev_start = ath10k_wmi_op_pull_vdev_start_ev,
|
||||
.pull_peer_kick = ath10k_wmi_op_pull_peer_kick_ev,
|
||||
.pull_swba = ath10k_wmi_op_pull_swba_ev,
|
||||
.pull_swba = ath10k_wmi_10_2_4_op_pull_swba_ev,
|
||||
.pull_phyerr_hdr = ath10k_wmi_op_pull_phyerr_ev_hdr,
|
||||
.pull_phyerr = ath10k_wmi_op_pull_phyerr_ev,
|
||||
.pull_rdy = ath10k_wmi_op_pull_rdy_ev,
|
||||
|
Reference in New Issue
Block a user