linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif
@ 2023-07-24 21:19 sean.wang
  2023-07-24 21:19 ` [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver sean.wang
  2023-07-27  3:40 ` [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif David Ruth
  0 siblings, 2 replies; 5+ messages in thread
From: sean.wang @ 2023-07-24 21:19 UTC (permalink / raw)
  To: nbd, lorenzo.bianconi
  Cc: sean.wang, Soul.Huang, Leon.Yen, Eric-SY.Chang, Deren.Wu, km.lin,
	jenhao.yang, robin.chiu, Eddie.Chen, ch.yeh, ted.huang,
	Stella.Chang, Tom.Chou, jsiuda, arowa, frankgor, kuabhs, druth,
	abhishekpandit, shawnku, linux-wireless, linux-mediatek

From: Sean Wang <sean.wang@mediatek.com>

Move struct ieee80211_chanctx_conf up to struct mt76_vif to allow the
connac2 library can access the struct ieee80211_chanctx_conf * member in
struct mt76_vif.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/net/wireless/mediatek/mt76/mt76.h        |  1 +
 drivers/net/wireless/mediatek/mt76/mt7921/main.c | 16 ++++++++--------
 .../net/wireless/mediatek/mt76/mt7921/mt7921.h   |  1 -
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index 878087257ea7..bf9c781ff48c 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -708,6 +708,7 @@ struct mt76_vif {
 	u8 basic_rates_idx;
 	u8 mcast_rates_idx;
 	u8 beacon_rates_idx;
+	struct ieee80211_chanctx_conf *ctx;
 };
 
 struct mt76_phy {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
index 87067ac367eb..8987173a83f2 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
@@ -804,7 +804,7 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 
 	if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
 		mt76_connac_mcu_uni_add_bss(&dev->mphy, vif, &mvif->sta.wcid,
-					    true, mvif->ctx);
+					    true, mvif->mt76.ctx);
 
 	ewma_avg_signal_init(&msta->avg_ack_signal);
 
@@ -839,7 +839,7 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 		if (!sta->tdls)
 			mt76_connac_mcu_uni_add_bss(&dev->mphy, vif,
 						    &mvif->sta.wcid, false,
-						    mvif->ctx);
+						    mvif->mt76.ctx);
 	}
 
 	spin_lock_bh(&dev->mt76.sta_poll_lock);
@@ -1638,7 +1638,7 @@ mt7921_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 	mt7921_mutex_acquire(dev);
 
 	err = mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid,
-					  true, mvif->ctx);
+					  true, mvif->mt76.ctx);
 	if (err)
 		goto out;
 
@@ -1670,7 +1670,7 @@ mt7921_stop_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 		goto out;
 
 	mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, false,
-				    mvif->ctx);
+				    mvif->mt76.ctx);
 
 out:
 	mt7921_mutex_release(dev);
@@ -1695,7 +1695,7 @@ static void mt7921_ctx_iter(void *priv, u8 *mac,
 	struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv;
 	struct ieee80211_chanctx_conf *ctx = priv;
 
-	if (ctx != mvif->ctx)
+	if (ctx != mvif->mt76.ctx)
 		return;
 
 	if (vif->type == NL80211_IFTYPE_MONITOR)
@@ -1728,7 +1728,7 @@ mt7921_assign_vif_chanctx(struct ieee80211_hw *hw,
 	struct mt7921_dev *dev = mt7921_hw_dev(hw);
 
 	mutex_lock(&dev->mt76.mutex);
-	mvif->ctx = ctx;
+	mvif->mt76.ctx = ctx;
 	mutex_unlock(&dev->mt76.mutex);
 
 	return 0;
@@ -1744,7 +1744,7 @@ mt7921_unassign_vif_chanctx(struct ieee80211_hw *hw,
 	struct mt7921_dev *dev = mt7921_hw_dev(hw);
 
 	mutex_lock(&dev->mt76.mutex);
-	mvif->ctx = NULL;
+	mvif->mt76.ctx = NULL;
 	mutex_unlock(&dev->mt76.mutex);
 }
 
@@ -1758,7 +1758,7 @@ static void mt7921_mgd_prepare_tx(struct ieee80211_hw *hw,
 		       jiffies_to_msecs(HZ);
 
 	mt7921_mutex_acquire(dev);
-	mt7921_set_roc(mvif->phy, mvif, mvif->ctx->def.chan, duration,
+	mt7921_set_roc(mvif->phy, mvif, mvif->mt76.ctx->def.chan, duration,
 		       MT7921_ROC_REQ_JOIN);
 	mt7921_mutex_release(dev);
 }
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h b/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
index ec9879650174..04a9ce50cff2 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
@@ -173,7 +173,6 @@ struct mt7921_vif {
 	struct ewma_rssi rssi;
 
 	struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
-	struct ieee80211_chanctx_conf *ctx;
 };
 
 enum {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver
  2023-07-24 21:19 [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif sean.wang
@ 2023-07-24 21:19 ` sean.wang
  2023-07-27  3:43   ` David Ruth
  2023-07-27  3:40 ` [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif David Ruth
  1 sibling, 1 reply; 5+ messages in thread
From: sean.wang @ 2023-07-24 21:19 UTC (permalink / raw)
  To: nbd, lorenzo.bianconi
  Cc: sean.wang, Soul.Huang, Leon.Yen, Eric-SY.Chang, Deren.Wu, km.lin,
	jenhao.yang, robin.chiu, Eddie.Chen, ch.yeh, ted.huang,
	Stella.Chang, Tom.Chou, jsiuda, arowa, frankgor, kuabhs, druth,
	abhishekpandit, shawnku, linux-wireless, linux-mediatek

From: Sean Wang <sean.wang@mediatek.com>

The variable band should be determined by the ieee80211_chanctx_conf when
the driver is a kind of chanctx one e.g mt7921 and mt7922 driver so we
added the extension to mt76_connac2_mac_tx_rate_val by distinguishing if
it can support chanctx to fix the incorrect rate pickup.

Fixes: 41ac53c899bd ("wifi: mt76: mt7921: introduce chanctx support")
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/net/wireless/mediatek/mt76/mac80211.c        | 9 +++++++--
 drivers/net/wireless/mediatek/mt76/mt76.h            | 3 ++-
 drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c | 7 +++++--
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
index c0ff36a98bed..d622a2916c0e 100644
--- a/drivers/net/wireless/mediatek/mt76/mac80211.c
+++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
@@ -1698,11 +1698,16 @@ mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
 }
 EXPORT_SYMBOL_GPL(mt76_init_queue);
 
-u16 mt76_calculate_default_rate(struct mt76_phy *phy, int rateidx)
+u16 mt76_calculate_default_rate(struct mt76_phy *phy,
+				struct ieee80211_vif *vif, int rateidx)
 {
+	struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
+	struct cfg80211_chan_def *chandef = mvif->ctx ?
+					    &mvif->ctx->def :
+					    &phy->chandef;
 	int offset = 0;
 
-	if (phy->chandef.chan->band != NL80211_BAND_2GHZ)
+	if (chandef->chan->band != NL80211_BAND_2GHZ)
 		offset = 4;
 
 	/* pick the lowest rate for hidden nodes */
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index bf9c781ff48c..a292e15224e1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -1100,7 +1100,8 @@ int mt76_get_of_eeprom(struct mt76_dev *dev, void *data, int offset, int len);
 struct mt76_queue *
 mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
 		int ring_base, u32 flags);
-u16 mt76_calculate_default_rate(struct mt76_phy *phy, int rateidx);
+u16 mt76_calculate_default_rate(struct mt76_phy *phy,
+				struct ieee80211_vif *vif, int rateidx);
 static inline int mt76_init_tx_queue(struct mt76_phy *phy, int qid, int idx,
 				     int n_desc, int ring_base, u32 flags)
 {
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
index ee5177fd6dde..d91f5548dc02 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
@@ -310,7 +310,10 @@ u16 mt76_connac2_mac_tx_rate_val(struct mt76_phy *mphy,
 				 struct ieee80211_vif *vif,
 				 bool beacon, bool mcast)
 {
-	u8 nss = 0, mode = 0, band = mphy->chandef.chan->band;
+	struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
+	struct cfg80211_chan_def *chandef = mvif->ctx ?
+					    &mvif->ctx->def : &mphy->chandef;
+	u8 nss = 0, mode = 0, band = chandef->chan->band;
 	int rateidx = 0, mcast_rate;
 
 	if (!vif)
@@ -343,7 +346,7 @@ u16 mt76_connac2_mac_tx_rate_val(struct mt76_phy *mphy,
 		rateidx = ffs(vif->bss_conf.basic_rates) - 1;
 
 legacy:
-	rateidx = mt76_calculate_default_rate(mphy, rateidx);
+	rateidx = mt76_calculate_default_rate(mphy, vif, rateidx);
 	mode = rateidx >> 8;
 	rateidx &= GENMASK(7, 0);
 out:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif
  2023-07-24 21:19 [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif sean.wang
  2023-07-24 21:19 ` [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver sean.wang
@ 2023-07-27  3:40 ` David Ruth
  1 sibling, 0 replies; 5+ messages in thread
From: David Ruth @ 2023-07-27  3:40 UTC (permalink / raw)
  To: sean.wang
  Cc: nbd, lorenzo.bianconi, Soul.Huang, Leon.Yen, Eric-SY.Chang,
	Deren.Wu, km.lin, jenhao.yang, robin.chiu, Eddie.Chen, ch.yeh,
	ted.huang, Stella.Chang, Tom.Chou, jsiuda, arowa, frankgor,
	kuabhs, abhishekpandit, shawnku, linux-wireless, linux-mediatek

Reviewed-by: David Ruth <druth@chromium.org>
Tested-by: David Ruth <druth@chromium.org>


On Mon, Jul 24, 2023 at 5:20 PM <sean.wang@mediatek.com> wrote:
>
> From: Sean Wang <sean.wang@mediatek.com>
>
> Move struct ieee80211_chanctx_conf up to struct mt76_vif to allow the
> connac2 library can access the struct ieee80211_chanctx_conf * member in
> struct mt76_vif.
>
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76.h        |  1 +
>  drivers/net/wireless/mediatek/mt76/mt7921/main.c | 16 ++++++++--------
>  .../net/wireless/mediatek/mt76/mt7921/mt7921.h   |  1 -
>  3 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
> index 878087257ea7..bf9c781ff48c 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt76.h
> @@ -708,6 +708,7 @@ struct mt76_vif {
>         u8 basic_rates_idx;
>         u8 mcast_rates_idx;
>         u8 beacon_rates_idx;
> +       struct ieee80211_chanctx_conf *ctx;
>  };
>
>  struct mt76_phy {
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> index 87067ac367eb..8987173a83f2 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> @@ -804,7 +804,7 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,
>
>         if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
>                 mt76_connac_mcu_uni_add_bss(&dev->mphy, vif, &mvif->sta.wcid,
> -                                           true, mvif->ctx);
> +                                           true, mvif->mt76.ctx);
>
>         ewma_avg_signal_init(&msta->avg_ack_signal);
>
> @@ -839,7 +839,7 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
>                 if (!sta->tdls)
>                         mt76_connac_mcu_uni_add_bss(&dev->mphy, vif,
>                                                     &mvif->sta.wcid, false,
> -                                                   mvif->ctx);
> +                                                   mvif->mt76.ctx);
>         }
>
>         spin_lock_bh(&dev->mt76.sta_poll_lock);
> @@ -1638,7 +1638,7 @@ mt7921_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>         mt7921_mutex_acquire(dev);
>
>         err = mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid,
> -                                         true, mvif->ctx);
> +                                         true, mvif->mt76.ctx);
>         if (err)
>                 goto out;
>
> @@ -1670,7 +1670,7 @@ mt7921_stop_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>                 goto out;
>
>         mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, false,
> -                                   mvif->ctx);
> +                                   mvif->mt76.ctx);
>
>  out:
>         mt7921_mutex_release(dev);
> @@ -1695,7 +1695,7 @@ static void mt7921_ctx_iter(void *priv, u8 *mac,
>         struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv;
>         struct ieee80211_chanctx_conf *ctx = priv;
>
> -       if (ctx != mvif->ctx)
> +       if (ctx != mvif->mt76.ctx)
>                 return;
>
>         if (vif->type == NL80211_IFTYPE_MONITOR)
> @@ -1728,7 +1728,7 @@ mt7921_assign_vif_chanctx(struct ieee80211_hw *hw,
>         struct mt7921_dev *dev = mt7921_hw_dev(hw);
>
>         mutex_lock(&dev->mt76.mutex);
> -       mvif->ctx = ctx;
> +       mvif->mt76.ctx = ctx;
>         mutex_unlock(&dev->mt76.mutex);
>
>         return 0;
> @@ -1744,7 +1744,7 @@ mt7921_unassign_vif_chanctx(struct ieee80211_hw *hw,
>         struct mt7921_dev *dev = mt7921_hw_dev(hw);
>
>         mutex_lock(&dev->mt76.mutex);
> -       mvif->ctx = NULL;
> +       mvif->mt76.ctx = NULL;
>         mutex_unlock(&dev->mt76.mutex);
>  }
>
> @@ -1758,7 +1758,7 @@ static void mt7921_mgd_prepare_tx(struct ieee80211_hw *hw,
>                        jiffies_to_msecs(HZ);
>
>         mt7921_mutex_acquire(dev);
> -       mt7921_set_roc(mvif->phy, mvif, mvif->ctx->def.chan, duration,
> +       mt7921_set_roc(mvif->phy, mvif, mvif->mt76.ctx->def.chan, duration,
>                        MT7921_ROC_REQ_JOIN);
>         mt7921_mutex_release(dev);
>  }
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h b/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
> index ec9879650174..04a9ce50cff2 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
> @@ -173,7 +173,6 @@ struct mt7921_vif {
>         struct ewma_rssi rssi;
>
>         struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
> -       struct ieee80211_chanctx_conf *ctx;
>  };
>
>  enum {
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver
  2023-07-24 21:19 ` [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver sean.wang
@ 2023-07-27  3:43   ` David Ruth
  2023-07-27  6:25     ` Kalle Valo
  0 siblings, 1 reply; 5+ messages in thread
From: David Ruth @ 2023-07-27  3:43 UTC (permalink / raw)
  To: sean.wang
  Cc: nbd, lorenzo.bianconi, Soul.Huang, Leon.Yen, Eric-SY.Chang,
	Deren.Wu, km.lin, jenhao.yang, robin.chiu, Eddie.Chen, ch.yeh,
	ted.huang, Stella.Chang, Tom.Chou, jsiuda, arowa, frankgor,
	kuabhs, abhishekpandit, shawnku, linux-wireless, linux-mediatek

Reviewed-by: David Ruth <druth@chromium.org>
Tested-by: David Ruth <druth@chromium.org>

On Mon, Jul 24, 2023 at 5:20 PM <sean.wang@mediatek.com> wrote:
>
> From: Sean Wang <sean.wang@mediatek.com>
>
> The variable band should be determined by the ieee80211_chanctx_conf when
> the driver is a kind of chanctx one e.g mt7921 and mt7922 driver so we
> added the extension to mt76_connac2_mac_tx_rate_val by distinguishing if
> it can support chanctx to fix the incorrect rate pickup.
>
> Fixes: 41ac53c899bd ("wifi: mt76: mt7921: introduce chanctx support")
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
>  drivers/net/wireless/mediatek/mt76/mac80211.c        | 9 +++++++--
>  drivers/net/wireless/mediatek/mt76/mt76.h            | 3 ++-
>  drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c | 7 +++++--
>  3 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
> index c0ff36a98bed..d622a2916c0e 100644
> --- a/drivers/net/wireless/mediatek/mt76/mac80211.c
> +++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
> @@ -1698,11 +1698,16 @@ mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
>  }
>  EXPORT_SYMBOL_GPL(mt76_init_queue);
>
> -u16 mt76_calculate_default_rate(struct mt76_phy *phy, int rateidx)
> +u16 mt76_calculate_default_rate(struct mt76_phy *phy,
> +                               struct ieee80211_vif *vif, int rateidx)
>  {
> +       struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
> +       struct cfg80211_chan_def *chandef = mvif->ctx ?
> +                                           &mvif->ctx->def :
> +                                           &phy->chandef;
>         int offset = 0;
>
> -       if (phy->chandef.chan->band != NL80211_BAND_2GHZ)
> +       if (chandef->chan->band != NL80211_BAND_2GHZ)
>                 offset = 4;
>
>         /* pick the lowest rate for hidden nodes */
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
> index bf9c781ff48c..a292e15224e1 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt76.h
> @@ -1100,7 +1100,8 @@ int mt76_get_of_eeprom(struct mt76_dev *dev, void *data, int offset, int len);
>  struct mt76_queue *
>  mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
>                 int ring_base, u32 flags);
> -u16 mt76_calculate_default_rate(struct mt76_phy *phy, int rateidx);
> +u16 mt76_calculate_default_rate(struct mt76_phy *phy,
> +                               struct ieee80211_vif *vif, int rateidx);
>  static inline int mt76_init_tx_queue(struct mt76_phy *phy, int qid, int idx,
>                                      int n_desc, int ring_base, u32 flags)
>  {
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
> index ee5177fd6dde..d91f5548dc02 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
> @@ -310,7 +310,10 @@ u16 mt76_connac2_mac_tx_rate_val(struct mt76_phy *mphy,
>                                  struct ieee80211_vif *vif,
>                                  bool beacon, bool mcast)
>  {
> -       u8 nss = 0, mode = 0, band = mphy->chandef.chan->band;
> +       struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
> +       struct cfg80211_chan_def *chandef = mvif->ctx ?
> +                                           &mvif->ctx->def : &mphy->chandef;
> +       u8 nss = 0, mode = 0, band = chandef->chan->band;
>         int rateidx = 0, mcast_rate;
>
>         if (!vif)
> @@ -343,7 +346,7 @@ u16 mt76_connac2_mac_tx_rate_val(struct mt76_phy *mphy,
>                 rateidx = ffs(vif->bss_conf.basic_rates) - 1;
>
>  legacy:
> -       rateidx = mt76_calculate_default_rate(mphy, rateidx);
> +       rateidx = mt76_calculate_default_rate(mphy, vif, rateidx);
>         mode = rateidx >> 8;
>         rateidx &= GENMASK(7, 0);
>  out:
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver
  2023-07-27  3:43   ` David Ruth
@ 2023-07-27  6:25     ` Kalle Valo
  0 siblings, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2023-07-27  6:25 UTC (permalink / raw)
  To: David Ruth
  Cc: sean.wang, nbd, lorenzo.bianconi, Soul.Huang, Leon.Yen,
	Eric-SY.Chang, Deren.Wu, km.lin, jenhao.yang, robin.chiu,
	Eddie.Chen, ch.yeh, ted.huang, Stella.Chang, Tom.Chou, jsiuda,
	arowa, frankgor, kuabhs, abhishekpandit, shawnku, linux-wireless,
	linux-mediatek

David Ruth <druth@chromium.org> writes:

> Reviewed-by: David Ruth <druth@chromium.org>
> Tested-by: David Ruth <druth@chromium.org>

Please don't top post and edit your quotes, otherwise use of patchwork
becomes horrible for us maintainers.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-07-27  6:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-24 21:19 [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif sean.wang
2023-07-24 21:19 ` [PATCH 2/2] wifi: mt76: mt7921: fix the wrong rate pickup for the chanctx driver sean.wang
2023-07-27  3:43   ` David Ruth
2023-07-27  6:25     ` Kalle Valo
2023-07-27  3:40 ` [PATCH 1/2] wifi: mt76: move struct ieee80211_chanctx_conf up to struct mt76_vif David Ruth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).