qtnfmac: pass VIF info to SendChannel command
authorIgor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Thu, 21 Sep 2017 21:34:34 +0000 (14:34 -0700)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 25 Sep 2017 08:27:16 +0000 (11:27 +0300)
Do not assume whether wireless device can or can not handle switching
several interfaces on a single radio to different channels. Device will
handle it itself and will return appropriate error code.

Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
drivers/net/wireless/quantenna/qtnfmac/commands.c
drivers/net/wireless/quantenna/qtnfmac/commands.h

index 4590f30..30f8be5 100644 (file)
@@ -846,7 +846,7 @@ static int qtnf_channel_switch(struct wiphy *wiphy, struct net_device *dev,
                return -EINVAL;
        }
 
-       ret = qtnf_cmd_send_chan_switch(mac, params);
+       ret = qtnf_cmd_send_chan_switch(vif, params);
        if (ret)
                pr_warn("%s: failed to switch to channel (%u)\n",
                        dev->name, params->chandef.chan->hw_value);
index c55bae1..0138dad 100644 (file)
@@ -2306,15 +2306,16 @@ out:
        return ret;
 }
 
-int qtnf_cmd_send_chan_switch(struct qtnf_wmac *mac,
+int qtnf_cmd_send_chan_switch(struct qtnf_vif *vif,
                              struct cfg80211_csa_settings *params)
 {
+       struct qtnf_wmac *mac = vif->mac;
        struct qlink_cmd_chan_switch *cmd;
        struct sk_buff *cmd_skb;
        u16 res_code = QLINK_CMD_RESULT_OK;
        int ret;
 
-       cmd_skb = qtnf_cmd_alloc_new_cmdskb(mac->macid, 0x0,
+       cmd_skb = qtnf_cmd_alloc_new_cmdskb(mac->macid, vif->vifid,
                                            QLINK_CMD_CHAN_SWITCH,
                                            sizeof(*cmd));
 
index e1bcb83..8a5a82c 100644 (file)
@@ -73,7 +73,7 @@ int qtnf_cmd_send_updown_intf(struct qtnf_vif *vif,
 int qtnf_cmd_reg_notify(struct qtnf_bus *bus, struct regulatory_request *req);
 int qtnf_cmd_get_chan_stats(struct qtnf_wmac *mac, u16 channel,
                            struct qtnf_chan_stats *stats);
-int qtnf_cmd_send_chan_switch(struct qtnf_wmac *mac,
+int qtnf_cmd_send_chan_switch(struct qtnf_vif *vif,
                              struct cfg80211_csa_settings *params);
 int qtnf_cmd_get_channel(struct qtnf_vif *vif, struct cfg80211_chan_def *chdef);