Some of wil6210 configuration variables are platform specific.
Add platform op to allow the platform driver to change the wil6210
default configuration.

Signed-off-by: Maya Erez <me...@codeaurora.org>
---
 drivers/net/wireless/ath/wil6210/cfg80211.c     | 13 +---
 drivers/net/wireless/ath/wil6210/main.c         | 94 ++++++++++---------------
 drivers/net/wireless/ath/wil6210/netdev.c       |  2 +-
 drivers/net/wireless/ath/wil6210/pcie_bus.c     | 31 ++++----
 drivers/net/wireless/ath/wil6210/pm.c           |  2 +-
 drivers/net/wireless/ath/wil6210/txrx.c         | 15 ++--
 drivers/net/wireless/ath/wil6210/wil6210.h      | 11 ++-
 drivers/net/wireless/ath/wil6210/wil_platform.h | 22 ++++++
 drivers/net/wireless/ath/wil6210/wmi.c          | 23 +++---
 9 files changed, 105 insertions(+), 108 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c 
b/drivers/net/wireless/ath/wil6210/cfg80211.c
index 9b2f9f5..e51dc3f 100644
--- a/drivers/net/wireless/ath/wil6210/cfg80211.c
+++ b/drivers/net/wireless/ath/wil6210/cfg80211.c
@@ -25,10 +25,6 @@
 
 #define WIL_MAX_ROC_DURATION_MS 5000
 
-bool disable_ap_sme;
-module_param(disable_ap_sme, bool, 0444);
-MODULE_PARM_DESC(disable_ap_sme, " let user space handle AP mode SME");
-
 #ifdef CONFIG_PM
 static struct wiphy_wowlan_support wil_wowlan_support = {
        .flags = WIPHY_WOWLAN_ANY | WIPHY_WOWLAN_DISCONNECT,
@@ -1991,7 +1987,7 @@ static int wil_cfg80211_add_station(struct wiphy *wiphy,
                     mac, params->aid, vif->mid,
                     params->sta_flags_mask, params->sta_flags_set);
 
-       if (!disable_ap_sme) {
+       if (!wil->config.disable_ap_sme) {
                wil_err(wil, "not supported with AP SME enabled\n");
                return -EOPNOTSUPP;
        }
@@ -2036,7 +2032,7 @@ static int wil_cfg80211_change_station(struct wiphy 
*wiphy,
                     mac, params->sta_flags_mask, params->sta_flags_set,
                     vif->mid);
 
-       if (!disable_ap_sme) {
+       if (!wil->config.disable_ap_sme) {
                wil_dbg_misc(wil, "not supported with AP SME enabled\n");
                return -EOPNOTSUPP;
        }
@@ -2411,10 +2407,7 @@ static void wil_wiphy_init(struct wiphy *wiphy)
        wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL |
                        WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD |
                        WIPHY_FLAG_PS_ON_BY_DEFAULT;
-       if (!disable_ap_sme)
-               wiphy->flags |= WIPHY_FLAG_HAVE_AP_SME;
-       dev_dbg(wiphy_dev(wiphy), "%s : flags = 0x%08x\n",
-               __func__, wiphy->flags);
+
        wiphy->probe_resp_offload =
                NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS |
                NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 |
diff --git a/drivers/net/wireless/ath/wil6210/main.c 
b/drivers/net/wireless/ath/wil6210/main.c
index ba6a2ee..bd687ad 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -31,10 +31,6 @@
 #define WIL_DEFAULT_NUM_RX_STATUS_RINGS 1
 #define WIL_BOARD_FILE_MAX_NAMELEN 128
 
-bool debug_fw; /* = false; */
-module_param(debug_fw, bool, 0444);
-MODULE_PARM_DESC(debug_fw, " do not perform card reset. For FW debug");
-
 static u8 oob_mode;
 module_param(oob_mode, byte, 0444);
 MODULE_PARM_DESC(oob_mode,
@@ -44,14 +40,6 @@
 module_param(no_fw_recovery, bool, 0644);
 MODULE_PARM_DESC(no_fw_recovery, " disable automatic FW error recovery");
 
-/* if not set via modparam, will be set to default value of 1/8 of
- * rx ring size during init flow
- */
-unsigned short rx_ring_overflow_thrsh = WIL6210_RX_HIGH_TRSH_INIT;
-module_param(rx_ring_overflow_thrsh, ushort, 0444);
-MODULE_PARM_DESC(rx_ring_overflow_thrsh,
-                " RX ring overflow threshold in descriptors.");
-
 /* We allow allocation of more than 1 page buffers to support large packets.
  * It is suboptimal behavior performance wise in case MTU above page size.
  */
@@ -81,39 +69,6 @@ static int mtu_max_set(const char *val, const struct 
kernel_param *kp)
 module_param_cb(mtu_max, &mtu_max_ops, &mtu_max, 0444);
 MODULE_PARM_DESC(mtu_max, " Max MTU value.");
 
-static uint rx_ring_order;
-static uint tx_ring_order = WIL_TX_RING_SIZE_ORDER_DEFAULT;
-static uint bcast_ring_order = WIL_BCAST_RING_SIZE_ORDER_DEFAULT;
-
-static int ring_order_set(const char *val, const struct kernel_param *kp)
-{
-       int ret;
-       uint x;
-
-       ret = kstrtouint(val, 0, &x);
-       if (ret)
-               return ret;
-
-       if ((x < WIL_RING_SIZE_ORDER_MIN) || (x > WIL_RING_SIZE_ORDER_MAX))
-               return -EINVAL;
-
-       *((uint *)kp->arg) = x;
-
-       return 0;
-}
-
-static const struct kernel_param_ops ring_order_ops = {
-       .set = ring_order_set,
-       .get = param_get_uint,
-};
-
-module_param_cb(rx_ring_order, &ring_order_ops, &rx_ring_order, 0444);
-MODULE_PARM_DESC(rx_ring_order, " Rx ring order; size = 1 << order");
-module_param_cb(tx_ring_order, &ring_order_ops, &tx_ring_order, 0444);
-MODULE_PARM_DESC(tx_ring_order, " Tx ring order; size = 1 << order");
-module_param_cb(bcast_ring_order, &ring_order_ops, &bcast_ring_order, 0444);
-MODULE_PARM_DESC(bcast_ring_order, " Bcast ring order; size = 1 << order");
-
 enum {
        WIL_BOOT_ERR,
        WIL_BOOT_VANILLA,
@@ -390,7 +345,8 @@ static int wil_disconnect_cid(struct wil6210_vif *vif, int 
cid,
        }
 
        /* inform lower layers */
-       if (wdev->iftype == NL80211_IFTYPE_AP && disable_ap_sme)
+       if (wdev->iftype == NL80211_IFTYPE_AP &&
+           wil->config.disable_ap_sme)
                del_sta = true;
 
        /* disconnect by sending command disconnect/del_sta and wait
@@ -618,7 +574,12 @@ int wil_ring_init_tx(struct wil6210_vif *vif, int cid)
        wil_dbg_wmi(wil, "Configure for connection CID %d MID %d ring %d\n",
                    cid, vif->mid, ringid);
 
-       rc = wil->txrx_ops.ring_init_tx(vif, ringid, 1 << tx_ring_order,
+       if (wil->config.tx_ring_order < WIL_RING_SIZE_ORDER_MIN ||
+           wil->config.tx_ring_order > WIL_RING_SIZE_ORDER_MAX)
+               wil->config.tx_ring_order = WIL_TX_RING_SIZE_ORDER_DEFAULT;
+
+       rc = wil->txrx_ops.ring_init_tx(vif, ringid,
+                                       1 << wil->config.tx_ring_order,
                                        cid, 0);
        if (rc)
                wil_err(wil, "init TX for CID %d MID %d vring %d failed\n",
@@ -640,8 +601,14 @@ int wil_bcast_init(struct wil6210_vif *vif)
        if (ri < 0)
                return ri;
 
+       if (wil->config.bcast_ring_order < WIL_RING_SIZE_ORDER_MIN ||
+           wil->config.bcast_ring_order > WIL_RING_SIZE_ORDER_MAX)
+               wil->config.bcast_ring_order =
+                       WIL_BCAST_RING_SIZE_ORDER_DEFAULT;
+
        vif->bcast_ring = ri;
-       rc = wil->txrx_ops.ring_init_bcast(vif, ri, 1 << bcast_ring_order);
+       rc = wil->txrx_ops.ring_init_bcast(vif, ri,
+                                          1 << wil->config.bcast_ring_order);
        if (rc)
                vif->bcast_ring = -1;
 
@@ -720,9 +687,6 @@ int wil_priv_init(struct wil6210_priv *wil)
        wil->tx_max_burst_duration = WIL6210_ITR_TX_MAX_BURST_DURATION_DEFAULT;
        wil->rx_max_burst_duration = WIL6210_ITR_RX_MAX_BURST_DURATION_DEFAULT;
 
-       if (rx_ring_overflow_thrsh == WIL6210_RX_HIGH_TRSH_INIT)
-               rx_ring_overflow_thrsh = WIL6210_RX_HIGH_TRSH_DEFAULT;
-
        wil->ps_profile =  WMI_PS_PROFILE_TYPE_DEFAULT;
 
        wil->wakeup_trigger = WMI_WAKEUP_TRIGGER_UCAST |
@@ -1237,6 +1201,12 @@ void wil_refresh_fw_capabilities(struct wil6210_priv 
*wil)
        if (test_bit(WMI_FW_CAPABILITY_TX_REQ_EXT, wil->fw_capabilities))
                wiphy->flags |= WIPHY_FLAG_OFFCHAN_TX;
 
+       if (!wil->config.disable_ap_sme)
+               wiphy->flags |= WIPHY_FLAG_HAVE_AP_SME;
+
+       dev_dbg(wiphy_dev(wiphy), "%s : flags = 0x%08x\n",
+               __func__, wiphy->flags);
+
        if (wil->platform_ops.set_features) {
                features = (test_bit(WMI_FW_CAPABILITY_REF_CLOCK_CONTROL,
                                     wil->fw_capabilities) &&
@@ -1568,7 +1538,7 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
        WARN_ON(!mutex_is_locked(&wil->mutex));
        WARN_ON(test_bit(wil_status_napi_en, wil->status));
 
-       if (debug_fw) {
+       if (wil->config.debug_fw) {
                static const u8 mac[ETH_ALEN] = {
                        0x00, 0xde, 0xad, 0x12, 0x34, 0x56,
                };
@@ -1789,12 +1759,14 @@ int __wil_up(struct wil6210_priv *wil)
                return rc;
 
        /* Rx RING. After MAC and beacon */
-       if (rx_ring_order == 0)
-               rx_ring_order = wil->hw_version < HW_VER_TALYN_MB ?
+       if (wil->config.rx_ring_order == 0 ||
+           wil->config.rx_ring_order < WIL_RING_SIZE_ORDER_MIN ||
+           wil->config.rx_ring_order > WIL_RING_SIZE_ORDER_MAX)
+               wil->config.rx_ring_order = wil->hw_version < HW_VER_TALYN_MB ?
                        WIL_RX_RING_SIZE_ORDER_DEFAULT :
                        WIL_RX_RING_SIZE_ORDER_TALYN_DEFAULT;
 
-       rc = wil->txrx_ops.rx_init(wil, rx_ring_order);
+       rc = wil->txrx_ops.rx_init(wil, wil->config.rx_ring_order);
        if (rc)
                return rc;
 
@@ -1967,3 +1939,15 @@ void wil_init_txrx_ops(struct wil6210_priv *wil)
        else
                wil_init_txrx_ops_legacy_dma(wil);
 }
+
+void wil_init_configuration(struct wil6210_priv *wil)
+{
+       /* set default config values */
+       wil->config.n_msi = 3;
+       wil->config.max_assoc_sta = WIL6210_MAX_CID;
+
+       /* update the configuration with platform specific configuration */
+       if (wil->platform_ops.get_config)
+               wil->platform_ops.get_config(wil->platform_handle,
+                                            &wil->config);
+}
diff --git a/drivers/net/wireless/ath/wil6210/netdev.c 
b/drivers/net/wireless/ath/wil6210/netdev.c
index b4e0eb1..b99470c 100644
--- a/drivers/net/wireless/ath/wil6210/netdev.c
+++ b/drivers/net/wireless/ath/wil6210/netdev.c
@@ -54,7 +54,7 @@ static int wil_open(struct net_device *ndev)
 
        wil_dbg_misc(wil, "open\n");
 
-       if (debug_fw ||
+       if (wil->config.debug_fw ||
            test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities)) {
                wil_err(wil, "while in debug_fw or wmi_only mode\n");
                return -EINVAL;
diff --git a/drivers/net/wireless/ath/wil6210/pcie_bus.c 
b/drivers/net/wireless/ath/wil6210/pcie_bus.c
index c8c6613..8dbf3fb 100644
--- a/drivers/net/wireless/ath/wil6210/pcie_bus.c
+++ b/drivers/net/wireless/ath/wil6210/pcie_bus.c
@@ -24,10 +24,6 @@
 #include <linux/rtnetlink.h>
 #include <linux/pm_runtime.h>
 
-static int n_msi = 3;
-module_param(n_msi, int, 0444);
-MODULE_PARM_DESC(n_msi, " Use MSI interrupt: 0 - use INTx, 1 - single, or 3 - 
(default) ");
-
 bool ftm_mode;
 module_param(ftm_mode, bool, 0444);
 MODULE_PARM_DESC(ftm_mode, " Set factory test mode, default - false");
@@ -201,31 +197,34 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil)
        pci_set_master(pdev);
 
        /* how many MSI interrupts to request? */
-       switch (n_msi) {
+       switch (wil->config.n_msi) {
        case 3:
        case 1:
-               wil_dbg_misc(wil, "Setup %d MSI interrupts\n", n_msi);
+               wil_dbg_misc(wil, "Setup %d MSI interrupts\n",
+                            wil->config.n_msi);
                break;
        case 0:
                wil_dbg_misc(wil, "MSI interrupts disabled, use INTx\n");
                break;
        default:
-               wil_err(wil, "Invalid n_msi=%d, default to 1\n", n_msi);
-               n_msi = 1;
+               wil_err(wil, "Invalid n_msi=%d, default to 1\n",
+                       wil->config.n_msi);
+               wil->config.n_msi = 1;
        }
 
-       if (n_msi == 3 &&
-           pci_alloc_irq_vectors(pdev, n_msi, n_msi, PCI_IRQ_MSI) < n_msi) {
+       if (wil->config.n_msi == 3 &&
+           pci_alloc_irq_vectors(pdev, wil->config.n_msi, wil->config.n_msi,
+                                 PCI_IRQ_MSI) < wil->config.n_msi) {
                wil_err(wil, "3 MSI mode failed, try 1 MSI\n");
-               n_msi = 1;
+               wil->config.n_msi = 1;
        }
 
-       if (n_msi == 1 && pci_enable_msi(pdev)) {
+       if (wil->config.n_msi == 1 && pci_enable_msi(pdev)) {
                wil_err(wil, "pci_enable_msi failed, use INTx\n");
-               n_msi = 0;
+               wil->config.n_msi = 0;
        }
 
-       wil->n_msi = n_msi;
+       wil->n_msi = wil->config.n_msi;
 
        if (wil->n_msi == 0 && msi_only) {
                wil_err(wil, "Interrupt pin not routed, unable to use INTx\n");
@@ -346,6 +345,10 @@ static int wil_pcie_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
                wil_err(wil, "wil_platform_init failed\n");
                goto if_free;
        }
+
+       /* Set default config and update it with platform configuration */
+       wil_init_configuration(wil);
+
        /* rollback to err_plat */
        rc = pci_enable_device(pdev);
        if (rc && pdev->msi_enabled == 0) {
diff --git a/drivers/net/wireless/ath/wil6210/pm.c 
b/drivers/net/wireless/ath/wil6210/pm.c
index 75fe932..14fd635 100644
--- a/drivers/net/wireless/ath/wil6210/pm.c
+++ b/drivers/net/wireless/ath/wil6210/pm.c
@@ -90,7 +90,7 @@ int wil_can_suspend(struct wil6210_priv *wil, bool is_runtime)
 
        wil_dbg_pm(wil, "can_suspend: %s\n", is_runtime ? "runtime" : "system");
 
-       if (wmi_only || debug_fw) {
+       if (wmi_only || wil->config.debug_fw) {
                wil_dbg_pm(wil, "Deny any suspend - %s mode\n",
                           wmi_only ? "wmi_only" : "debug_fw");
                rc = -EBUSY;
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c 
b/drivers/net/wireless/ath/wil6210/txrx.c
index 364f7880..e49fe30 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.c
+++ b/drivers/net/wireless/ath/wil6210/txrx.c
@@ -30,17 +30,13 @@
 #include "trace.h"
 #include "txrx_edma.h"
 
-bool rx_align_2;
-module_param(rx_align_2, bool, 0444);
-MODULE_PARM_DESC(rx_align_2, " align Rx buffers on 4*n+2, default - no");
-
 bool rx_large_buf;
 module_param(rx_large_buf, bool, 0444);
 MODULE_PARM_DESC(rx_large_buf, " allocate 8KB RX buffers, default - no");
 
-static inline uint wil_rx_snaplen(void)
+static inline uint wil_rx_snaplen(struct wil6210_priv *wil)
 {
-       return rx_align_2 ? 6 : 0;
+       return wil->config.rx_align_2 ? 6 : 0;
 }
 
 /* wil_ring_wmark_low - low watermark for available descriptor space */
@@ -265,7 +261,7 @@ static int wil_vring_alloc_skb(struct wil6210_priv *wil, 
struct wil_ring *vring,
                               u32 i, int headroom)
 {
        struct device *dev = wil_to_dev(wil);
-       unsigned int sz = wil->rx_buf_len + ETH_HLEN + wil_rx_snaplen();
+       unsigned int sz = wil->rx_buf_len + ETH_HLEN + wil_rx_snaplen(wil);
        struct vring_rx_desc dd, *d = &dd;
        volatile struct vring_rx_desc *_d = &vring->va[i].rx.legacy;
        dma_addr_t pa;
@@ -383,7 +379,7 @@ static struct sk_buff *wil_vring_reap_rx(struct 
wil6210_priv *wil,
        struct vring_rx_desc *d;
        struct sk_buff *skb;
        dma_addr_t pa;
-       unsigned int snaplen = wil_rx_snaplen();
+       unsigned int snaplen = wil_rx_snaplen(wil);
        unsigned int sz = wil->rx_buf_len + ETH_HLEN + snaplen;
        u16 dmalen;
        u8 ftype;
@@ -823,6 +819,9 @@ static int wil_rx_init(struct wil6210_priv *wil, uint order)
                return -EINVAL;
        }
 
+       if (wil->config.rx_ring_overflow_thrsh == WIL6210_RX_HIGH_TRSH_INIT)
+               wil->config.rx_ring_overflow_thrsh = 1 << (order - 3);
+
        wil_rx_buf_len_init(wil);
 
        vring->size = 1 << order;
diff --git a/drivers/net/wireless/ath/wil6210/wil6210.h 
b/drivers/net/wireless/ath/wil6210/wil6210.h
index 0f3be3ff..f8b8492 100644
--- a/drivers/net/wireless/ath/wil6210/wil6210.h
+++ b/drivers/net/wireless/ath/wil6210/wil6210.h
@@ -31,12 +31,8 @@
 
 extern bool no_fw_recovery;
 extern unsigned int mtu_max;
-extern unsigned short rx_ring_overflow_thrsh;
 extern int agg_wsize;
-extern bool rx_align_2;
 extern bool rx_large_buf;
-extern bool debug_fw;
-extern bool disable_ap_sme;
 extern bool ftm_mode;
 
 struct wil6210_priv;
@@ -143,8 +139,7 @@ static inline u32 wil_mtu2macbuf(u32 mtu)
 #define WIL6210_SCAN_TO                msecs_to_jiffies(10000)
 #define WIL6210_DISCONNECT_TO_MS (2000)
 #define WIL6210_RX_HIGH_TRSH_INIT              (0)
-#define WIL6210_RX_HIGH_TRSH_DEFAULT \
-                               (1 << (WIL_RX_RING_SIZE_ORDER_DEFAULT - 3))
+
 #define WIL_MAX_DMG_AID 254 /* for DMG only 1-254 allowed (see
                             * 802.11REVmc/D5.0, section 9.4.1.8)
                             */
@@ -1045,6 +1040,8 @@ struct wil6210_priv {
 
        u32 max_agg_wsize;
        u32 max_ampdu_size;
+
+       struct wil_platform_config config;
 };
 
 #define wil_to_wiphy(i) (i->wiphy)
@@ -1402,4 +1399,6 @@ int wmi_addba_rx_resp_edma(struct wil6210_priv *wil, u8 
mid, u8 cid,
 
 void update_supported_bands(struct wil6210_priv *wil);
 
+void wil_init_configuration(struct wil6210_priv *wil);
+
 #endif /* __WIL6210_H__ */
diff --git a/drivers/net/wireless/ath/wil6210/wil_platform.h 
b/drivers/net/wireless/ath/wil6210/wil_platform.h
index bca0906..7090e68 100644
--- a/drivers/net/wireless/ath/wil6210/wil_platform.h
+++ b/drivers/net/wireless/ath/wil6210/wil_platform.h
@@ -40,6 +40,27 @@ enum wil_platform_capa {
        WIL_PLATFORM_CAPA_MAX,
 };
 
+struct wil_platform_config {
+       /* use MSI interrupt: 0 - use INTx, 1 - single, or 3 - (default) */
+       int n_msi;
+       /* align Rx buffers on 4*n+2, default - no */
+       bool rx_align_2;
+       /* do not perform card reset. For FW debug, default - no */
+       bool debug_fw;
+       /* RX ring overflow threshold in descriptors */
+       unsigned short rx_ring_overflow_thrsh;
+       /* Rx ring order; size = 1 << order, default 10 */
+       uint rx_ring_order;
+       /* Tx ring order; size = 1 << order, default 12 */
+       uint tx_ring_order;
+       /* Bcast ring order; size = 1 << order, default 7 */
+       uint bcast_ring_order;
+       /* let user space handle AP mode SME */
+       bool disable_ap_sme;
+       /* Max number of stations associated to the AP */
+       unsigned int max_assoc_sta;
+};
+
 /**
  * struct wil_platform_ops - wil platform module calls from this
  * driver to platform driver
@@ -52,6 +73,7 @@ struct wil_platform_ops {
        int (*notify)(void *handle, enum wil_platform_event evt);
        int (*get_capa)(void *handle);
        void (*set_features)(void *handle, int features);
+       void (*get_config)(void *handle, struct wil_platform_config *config);
 };
 
 /**
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c 
b/drivers/net/wireless/ath/wil6210/wmi.c
index 28f740c..2e36c7c 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -24,10 +24,6 @@
 #include "wmi.h"
 #include "trace.h"
 
-static uint max_assoc_sta = WIL6210_MAX_CID;
-module_param(max_assoc_sta, uint, 0644);
-MODULE_PARM_DESC(max_assoc_sta, " Max number of stations associated to the 
AP");
-
 int agg_wsize; /* = 0; */
 module_param(agg_wsize, int, 0644);
 MODULE_PARM_DESC(agg_wsize, " Window size for Tx Block Ack after connect;"
@@ -1049,7 +1045,7 @@ static void wmi_evt_connect(struct wil6210_vif *vif, int 
id, void *d, int len)
                   (wdev->iftype == NL80211_IFTYPE_P2P_GO)) {
 
                if (rc) {
-                       if (disable_ap_sme)
+                       if (wil->config.disable_ap_sme)
                                /* notify new_sta has failed */
                                cfg80211_del_sta(ndev, evt->bssid, GFP_KERNEL);
                        goto out;
@@ -1113,7 +1109,7 @@ static void wmi_evt_disconnect(struct wil6210_vif *vif, 
int id,
 
        mutex_lock(&wil->mutex);
        wil6210_disconnect_complete(vif, evt->bssid, reason_code);
-       if (disable_ap_sme) {
+       if (wil->config.disable_ap_sme) {
                struct wireless_dev *wdev = vif_to_wdev(vif);
                struct net_device *ndev = vif_to_ndev(vif);
 
@@ -1204,7 +1200,7 @@ static void wmi_evt_ring_en(struct wil6210_vif *vif, int 
id, void *d, int len)
                return;
        }
 
-       if (wdev->iftype != NL80211_IFTYPE_AP || !disable_ap_sme ||
+       if (wdev->iftype != NL80211_IFTYPE_AP || !wil->config.disable_ap_sme ||
            test_bit(wil_vif_ft_roam, vif->status))
                /* in AP mode with disable_ap_sme that is not FT,
                 * this is done by wil_cfg80211_change_station()
@@ -2100,10 +2096,10 @@ int wmi_pcp_start(struct wil6210_vif *vif,
                .network_type = wmi_nettype,
                .disable_sec_offload = 1,
                .channel = chan - 1,
-               .pcp_max_assoc_sta = max_assoc_sta,
+               .pcp_max_assoc_sta = wil->config.max_assoc_sta,
                .hidden_ssid = hidden_ssid,
                .is_go = is_go,
-               .ap_sme_offload_mode = disable_ap_sme ?
+               .ap_sme_offload_mode = wil->config.disable_ap_sme ?
                                       WMI_AP_SME_OFFLOAD_PARTIAL :
                                       WMI_AP_SME_OFFLOAD_FULL,
                .abft_len = wil->abft_len,
@@ -2122,11 +2118,12 @@ int wmi_pcp_start(struct wil6210_vif *vif,
            (cmd.pcp_max_assoc_sta <= 0)) {
                wil_info(wil,
                         "Requested connection limit %u, valid values are 1 - 
%d. Setting to %d\n",
-                        max_assoc_sta, WIL6210_MAX_CID, WIL6210_MAX_CID);
+                        wil->config.max_assoc_sta, WIL6210_MAX_CID,
+                        WIL6210_MAX_CID);
                cmd.pcp_max_assoc_sta = WIL6210_MAX_CID;
        }
 
-       if (disable_ap_sme &&
+       if (wil->config.disable_ap_sme &&
            !test_bit(WMI_FW_CAPABILITY_AP_SME_OFFLOAD_PARTIAL,
                      wil->fw_capabilities)) {
                wil_err(wil, "disable_ap_sme not supported by FW\n");
@@ -2499,7 +2496,7 @@ int wmi_rx_chain_add(struct wil6210_priv *wil, struct 
wil_ring *vring)
                .mid = 0, /* TODO - what is it? */
                .decap_trans_type = WMI_DECAP_TYPE_802_3,
                .reorder_type = WMI_RX_SW_REORDER,
-               .host_thrsh = cpu_to_le16(rx_ring_overflow_thrsh),
+               .host_thrsh = cpu_to_le16(wil->config.rx_ring_overflow_thrsh),
        };
        struct {
                struct wmi_cmd_hdr wmi;
@@ -2528,7 +2525,7 @@ int wmi_rx_chain_add(struct wil6210_priv *wil, struct 
wil_ring *vring)
                cmd.l3_l4_ctrl |= (1 << L3_L4_CTRL_TCPIP_CHECKSUM_EN_POS);
        }
 
-       if (rx_align_2)
+       if (wil->config.rx_align_2)
                cmd.l2_802_3_offload_ctrl |=
                                L2_802_3_OFFLOAD_CTRL_SNAP_KEEP_MSK;
 
-- 
1.9.1

Reply via email to