Loading drivers/net/wireless/ath/wil6210/cfg80211.c +1 −0 Original line number Diff line number Diff line Loading @@ -686,6 +686,7 @@ static int wil_cfg80211_connect(struct wiphy *wiphy, goto out; } wil->privacy = sme->privacy; wil->pbss = sme->pbss; if (wil->privacy) { /* For secure assoc, remove old keys */ Loading drivers/net/wireless/ath/wil6210/debugfs.c +3 −1 Original line number Diff line number Diff line Loading @@ -1385,6 +1385,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock) for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { struct wil_sta_info *p = &wil->sta[i]; char *status = "unknown"; u8 aid = 0; switch (p->status) { case wil_sta_unused: Loading @@ -1395,9 +1396,10 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock) break; case wil_sta_connected: status = "connected"; aid = p->aid; break; } seq_printf(s, "[%d] %pM %s\n", i, p->addr, status); seq_printf(s, "[%d] %pM %s AID %d\n", i, p->addr, status, aid); if (p->status == wil_sta_connected) { spin_lock_bh(&p->tid_rx_lock); Loading drivers/net/wireless/ath/wil6210/netdev.c +3 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,9 @@ static int wil_open(struct net_device *ndev) wil_dbg_misc(wil, "open\n"); if (debug_fw) { wil_err(wil, "while in debug_fw mode\n"); if (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; } Loading drivers/net/wireless/ath/wil6210/pcie_bus.c +7 −3 Original line number Diff line number Diff line Loading @@ -99,8 +99,10 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil) */ int msi_only = pdev->msi_enabled; bool _use_msi = use_msi; bool wmi_only = test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities); wil_dbg_misc(wil, "if_pcie_enable\n"); wil_dbg_misc(wil, "if_pcie_enable, wmi_only %d\n", wmi_only); pdev->msi_enabled = 0; Loading @@ -123,9 +125,11 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil) if (rc) goto stop_master; /* need reset here to obtain MAC */ /* need reset here to obtain MAC or in case of WMI-only FW, full reset * and fw loading takes place */ mutex_lock(&wil->mutex); rc = wil_reset(wil, false); rc = wil_reset(wil, wmi_only); mutex_unlock(&wil->mutex); if (rc) goto release_irq; Loading drivers/net/wireless/ath/wil6210/txrx.c +19 −16 Original line number Diff line number Diff line Loading @@ -1212,17 +1212,6 @@ found: return v; } static struct vring *wil_find_tx_bcast(struct wil6210_priv *wil, struct sk_buff *skb) { struct wireless_dev *wdev = wil->wdev; if (wdev->iftype != NL80211_IFTYPE_AP) return wil_find_tx_bcast_2(wil, skb); return wil_find_tx_bcast_1(wil, skb); } static int wil_tx_desc_map(struct vring_tx_desc *d, dma_addr_t pa, u32 len, int vring_index) { Loading Loading @@ -1922,12 +1911,26 @@ netdev_tx_t wil_start_xmit(struct sk_buff *skb, struct net_device *ndev) pr_once_fw = false; /* find vring */ if (wil->wdev->iftype == NL80211_IFTYPE_STATION) { /* in STA mode (ESS), all to same VRING */ if (wil->wdev->iftype == NL80211_IFTYPE_STATION && !wil->pbss) { /* in STA mode (ESS), all to same VRING (to AP) */ vring = wil_find_tx_vring_sta(wil, skb); } else { /* direct communication, find matching VRING */ vring = bcast ? wil_find_tx_bcast(wil, skb) : wil_find_tx_ucast(wil, skb); } else if (bcast) { if (wil->pbss) /* in pbss, no bcast VRING - duplicate skb in * all stations VRINGs */ vring = wil_find_tx_bcast_2(wil, skb); else if (wil->wdev->iftype == NL80211_IFTYPE_AP) /* AP has a dedicated bcast VRING */ vring = wil_find_tx_bcast_1(wil, skb); else /* unexpected combination, fallback to duplicating * the skb in all stations VRINGs */ vring = wil_find_tx_bcast_2(wil, skb); } else { /* unicast, find specific VRING by dest. address */ vring = wil_find_tx_ucast(wil, skb); } if (unlikely(!vring)) { wil_dbg_txrx(wil, "No Tx VRING found for %pM\n", eth->h_dest); Loading Loading
drivers/net/wireless/ath/wil6210/cfg80211.c +1 −0 Original line number Diff line number Diff line Loading @@ -686,6 +686,7 @@ static int wil_cfg80211_connect(struct wiphy *wiphy, goto out; } wil->privacy = sme->privacy; wil->pbss = sme->pbss; if (wil->privacy) { /* For secure assoc, remove old keys */ Loading
drivers/net/wireless/ath/wil6210/debugfs.c +3 −1 Original line number Diff line number Diff line Loading @@ -1385,6 +1385,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock) for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { struct wil_sta_info *p = &wil->sta[i]; char *status = "unknown"; u8 aid = 0; switch (p->status) { case wil_sta_unused: Loading @@ -1395,9 +1396,10 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock) break; case wil_sta_connected: status = "connected"; aid = p->aid; break; } seq_printf(s, "[%d] %pM %s\n", i, p->addr, status); seq_printf(s, "[%d] %pM %s AID %d\n", i, p->addr, status, aid); if (p->status == wil_sta_connected) { spin_lock_bh(&p->tid_rx_lock); Loading
drivers/net/wireless/ath/wil6210/netdev.c +3 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,9 @@ static int wil_open(struct net_device *ndev) wil_dbg_misc(wil, "open\n"); if (debug_fw) { wil_err(wil, "while in debug_fw mode\n"); if (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; } Loading
drivers/net/wireless/ath/wil6210/pcie_bus.c +7 −3 Original line number Diff line number Diff line Loading @@ -99,8 +99,10 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil) */ int msi_only = pdev->msi_enabled; bool _use_msi = use_msi; bool wmi_only = test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities); wil_dbg_misc(wil, "if_pcie_enable\n"); wil_dbg_misc(wil, "if_pcie_enable, wmi_only %d\n", wmi_only); pdev->msi_enabled = 0; Loading @@ -123,9 +125,11 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil) if (rc) goto stop_master; /* need reset here to obtain MAC */ /* need reset here to obtain MAC or in case of WMI-only FW, full reset * and fw loading takes place */ mutex_lock(&wil->mutex); rc = wil_reset(wil, false); rc = wil_reset(wil, wmi_only); mutex_unlock(&wil->mutex); if (rc) goto release_irq; Loading
drivers/net/wireless/ath/wil6210/txrx.c +19 −16 Original line number Diff line number Diff line Loading @@ -1212,17 +1212,6 @@ found: return v; } static struct vring *wil_find_tx_bcast(struct wil6210_priv *wil, struct sk_buff *skb) { struct wireless_dev *wdev = wil->wdev; if (wdev->iftype != NL80211_IFTYPE_AP) return wil_find_tx_bcast_2(wil, skb); return wil_find_tx_bcast_1(wil, skb); } static int wil_tx_desc_map(struct vring_tx_desc *d, dma_addr_t pa, u32 len, int vring_index) { Loading Loading @@ -1922,12 +1911,26 @@ netdev_tx_t wil_start_xmit(struct sk_buff *skb, struct net_device *ndev) pr_once_fw = false; /* find vring */ if (wil->wdev->iftype == NL80211_IFTYPE_STATION) { /* in STA mode (ESS), all to same VRING */ if (wil->wdev->iftype == NL80211_IFTYPE_STATION && !wil->pbss) { /* in STA mode (ESS), all to same VRING (to AP) */ vring = wil_find_tx_vring_sta(wil, skb); } else { /* direct communication, find matching VRING */ vring = bcast ? wil_find_tx_bcast(wil, skb) : wil_find_tx_ucast(wil, skb); } else if (bcast) { if (wil->pbss) /* in pbss, no bcast VRING - duplicate skb in * all stations VRINGs */ vring = wil_find_tx_bcast_2(wil, skb); else if (wil->wdev->iftype == NL80211_IFTYPE_AP) /* AP has a dedicated bcast VRING */ vring = wil_find_tx_bcast_1(wil, skb); else /* unexpected combination, fallback to duplicating * the skb in all stations VRINGs */ vring = wil_find_tx_bcast_2(wil, skb); } else { /* unicast, find specific VRING by dest. address */ vring = wil_find_tx_ucast(wil, skb); } if (unlikely(!vring)) { wil_dbg_txrx(wil, "No Tx VRING found for %pM\n", eth->h_dest); Loading