diff mbox series

[v2,6/7] mt76: mt76x02: remove mt76x02_txq_init

Message ID 20181116111235.86347-6-nbd@nbd.name (mailing list archive)
State Accepted
Delegated to: Kalle Valo
Headers show
Series [v2,1/7] mt76: avoid queue/status spinlocks while passing tx status to mac80211 | expand

Commit Message

Felix Fietkau Nov. 16, 2018, 11:12 a.m. UTC
Open-coding it simplifies the code

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 .../net/wireless/mediatek/mt76/mt76x02_mac.c  | 23 -------------------
 .../net/wireless/mediatek/mt76/mt76x02_mac.h  |  2 --
 .../net/wireless/mediatek/mt76/mt76x02_util.c | 15 +++++++++---
 3 files changed, 12 insertions(+), 28 deletions(-)

Comments

Lorenzo Bianconi Nov. 16, 2018, 4:23 p.m. UTC | #1
> Open-coding it simplifies the code
>
> Signed-off-by: Felix Fietkau <nbd@nbd.name>
> ---
>  .../net/wireless/mediatek/mt76/mt76x02_mac.c  | 23 -------------------
>  .../net/wireless/mediatek/mt76/mt76x02_mac.h  |  2 --
>  .../net/wireless/mediatek/mt76/mt76x02_util.c | 15 +++++++++---
>  3 files changed, 12 insertions(+), 28 deletions(-)
>

[...]

> @@ -191,8 +191,13 @@ int mt76x02_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>         msta->wcid.hw_key_idx = -1;
>         mt76x02_mac_wcid_setup(dev, idx, mvif->idx, sta->addr);
>         mt76x02_mac_wcid_set_drop(dev, idx, false);
> -       for (i = 0; i < ARRAY_SIZE(sta->txq); i++)
> -               mt76x02_txq_init(dev, sta->txq[i]);
> +       for (i = 0; i < ARRAY_SIZE(sta->txq); i++) {
> +               struct mt76_txq *mtxq;
> +
> +               mtxq = (struct mt76_txq *) sta->txq[i]->drv_priv;

I think sta->txq[i] can be NULL here

> +               mtxq->wcid = &msta->wcid;
> +               mt76_txq_init(&dev->mt76, sta->txq[i]);
> +       }
>
>         if (vif->type == NL80211_IFTYPE_AP)
>                 set_bit(MT_WCID_FLAG_CHECK_PS, &msta->wcid.flags);
> @@ -230,11 +235,15 @@ void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
>                       unsigned int idx)
>  {
>         struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
> +       struct mt76_txq *mtxq;
>
>         mvif->idx = idx;
>         mvif->group_wcid.idx = MT_VIF_WCID(idx);
>         mvif->group_wcid.hw_key_idx = -1;
> -       mt76x02_txq_init(dev, vif->txq);
> +       mtxq = (struct mt76_txq *) vif->txq->drv_priv;
> +       mtxq->wcid = &mvif->group_wcid;
> +
> +       mt76_txq_init(&dev->mt76, vif->txq);
>  }
>  EXPORT_SYMBOL_GPL(mt76x02_vif_init);
>
> --
> 2.17.0
>
diff mbox series

Patch

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
index 4c35d3f7fb15..c08bf371e527 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
@@ -126,29 +126,6 @@  void mt76x02_mac_wcid_set_drop(struct mt76x02_dev *dev, u8 idx, bool drop)
 		mt76_wr(dev, MT_WCID_DROP(idx), (val & ~bit) | (bit * drop));
 }
 
-void mt76x02_txq_init(struct mt76x02_dev *dev, struct ieee80211_txq *txq)
-{
-	struct mt76_txq *mtxq;
-
-	if (!txq)
-		return;
-
-	mtxq = (struct mt76_txq *) txq->drv_priv;
-	if (txq->sta) {
-		struct mt76x02_sta *sta;
-
-		sta = (struct mt76x02_sta *) txq->sta->drv_priv;
-		mtxq->wcid = &sta->wcid;
-	} else {
-		struct mt76x02_vif *mvif;
-
-		mvif = (struct mt76x02_vif *) txq->vif->drv_priv;
-		mtxq->wcid = &mvif->group_wcid;
-	}
-
-	mt76_txq_init(&dev->mt76, txq);
-}
-
 static __le16
 mt76x02_mac_tx_rate_val(struct mt76x02_dev *dev,
 			const struct ieee80211_tx_rate *rate, u8 *nss_val)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
index cf5c06a0a58a..4e597004c445 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
@@ -178,8 +178,6 @@  static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev)
 	return false;
 }
 
-void mt76x02_txq_init(struct mt76x02_dev *dev, struct ieee80211_txq *txq);
-
 void mt76x02_mac_set_short_preamble(struct mt76x02_dev *dev, bool enable);
 int mt76x02_mac_shared_key_setup(struct mt76x02_dev *dev, u8 vif_idx,
 				 u8 key_idx, struct ieee80211_key_conf *key);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index 0ea7ab9cf0c6..f5ebed75b939 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -191,8 +191,13 @@  int mt76x02_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 	msta->wcid.hw_key_idx = -1;
 	mt76x02_mac_wcid_setup(dev, idx, mvif->idx, sta->addr);
 	mt76x02_mac_wcid_set_drop(dev, idx, false);
-	for (i = 0; i < ARRAY_SIZE(sta->txq); i++)
-		mt76x02_txq_init(dev, sta->txq[i]);
+	for (i = 0; i < ARRAY_SIZE(sta->txq); i++) {
+		struct mt76_txq *mtxq;
+
+		mtxq = (struct mt76_txq *) sta->txq[i]->drv_priv;
+		mtxq->wcid = &msta->wcid;
+		mt76_txq_init(&dev->mt76, sta->txq[i]);
+	}
 
 	if (vif->type == NL80211_IFTYPE_AP)
 		set_bit(MT_WCID_FLAG_CHECK_PS, &msta->wcid.flags);
@@ -230,11 +235,15 @@  void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
 		      unsigned int idx)
 {
 	struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
+	struct mt76_txq *mtxq;
 
 	mvif->idx = idx;
 	mvif->group_wcid.idx = MT_VIF_WCID(idx);
 	mvif->group_wcid.hw_key_idx = -1;
-	mt76x02_txq_init(dev, vif->txq);
+	mtxq = (struct mt76_txq *) vif->txq->drv_priv;
+	mtxq->wcid = &mvif->group_wcid;
+
+	mt76_txq_init(&dev->mt76, vif->txq);
 }
 EXPORT_SYMBOL_GPL(mt76x02_vif_init);