|
@@ -6376,6 +6376,16 @@ ath10k_wmi_peer_assoc_fill_10_2(struct ath10k *ar, void *buf,
|
|
|
cmd->info0 = __cpu_to_le32(info0);
|
|
|
}
|
|
|
|
|
|
+static void
|
|
|
+ath10k_wmi_peer_assoc_fill_10_4(struct ath10k *ar, void *buf,
|
|
|
+ const struct wmi_peer_assoc_complete_arg *arg)
|
|
|
+{
|
|
|
+ struct wmi_10_4_peer_assoc_complete_cmd *cmd = buf;
|
|
|
+
|
|
|
+ ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg);
|
|
|
+ cmd->peer_bw_rxnss_override = 0;
|
|
|
+}
|
|
|
+
|
|
|
static int
|
|
|
ath10k_wmi_peer_assoc_check_arg(const struct wmi_peer_assoc_complete_arg *arg)
|
|
|
{
|
|
@@ -6464,6 +6474,31 @@ ath10k_wmi_10_2_op_gen_peer_assoc(struct ath10k *ar,
|
|
|
return skb;
|
|
|
}
|
|
|
|
|
|
+static struct sk_buff *
|
|
|
+ath10k_wmi_10_4_op_gen_peer_assoc(struct ath10k *ar,
|
|
|
+ const struct wmi_peer_assoc_complete_arg *arg)
|
|
|
+{
|
|
|
+ size_t len = sizeof(struct wmi_10_4_peer_assoc_complete_cmd);
|
|
|
+ struct sk_buff *skb;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = ath10k_wmi_peer_assoc_check_arg(arg);
|
|
|
+ if (ret)
|
|
|
+ return ERR_PTR(ret);
|
|
|
+
|
|
|
+ skb = ath10k_wmi_alloc_skb(ar, len);
|
|
|
+ if (!skb)
|
|
|
+ return ERR_PTR(-ENOMEM);
|
|
|
+
|
|
|
+ ath10k_wmi_peer_assoc_fill_10_4(ar, skb->data, arg);
|
|
|
+
|
|
|
+ ath10k_dbg(ar, ATH10K_DBG_WMI,
|
|
|
+ "wmi peer assoc vdev %d addr %pM (%s)\n",
|
|
|
+ arg->vdev_id, arg->addr,
|
|
|
+ arg->peer_reassoc ? "reassociate" : "new");
|
|
|
+ return skb;
|
|
|
+}
|
|
|
+
|
|
|
static struct sk_buff *
|
|
|
ath10k_wmi_10_2_op_gen_pdev_get_temperature(struct ath10k *ar)
|
|
|
{
|
|
@@ -7584,6 +7619,7 @@ static const struct wmi_ops wmi_10_4_ops = {
|
|
|
.gen_peer_delete = ath10k_wmi_op_gen_peer_delete,
|
|
|
.gen_peer_flush = ath10k_wmi_op_gen_peer_flush,
|
|
|
.gen_peer_set_param = ath10k_wmi_op_gen_peer_set_param,
|
|
|
+ .gen_peer_assoc = ath10k_wmi_10_4_op_gen_peer_assoc,
|
|
|
.gen_set_psmode = ath10k_wmi_op_gen_set_psmode,
|
|
|
.gen_set_sta_ps = ath10k_wmi_op_gen_set_sta_ps,
|
|
|
.gen_set_ap_ps = ath10k_wmi_op_gen_set_ap_ps,
|
|
@@ -7603,7 +7639,6 @@ static const struct wmi_ops wmi_10_4_ops = {
|
|
|
.fw_stats_fill = ath10k_wmi_10_4_op_fw_stats_fill,
|
|
|
|
|
|
/* shared with 10.2 */
|
|
|
- .gen_peer_assoc = ath10k_wmi_10_2_op_gen_peer_assoc,
|
|
|
.gen_request_stats = ath10k_wmi_op_gen_request_stats,
|
|
|
.gen_pdev_get_temperature = ath10k_wmi_10_2_op_gen_pdev_get_temperature,
|
|
|
};
|