All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Bianconi <lorenzo@kernel.org>
To: Deren Wu <Deren.Wu@mediatek.com>
Cc: Felix Fietkau <nbd@nbd.name>, Sean Wang <sean.wang@mediatek.com>,
	Soul Huang <Soul.Huang@mediatek.com>,
	YN Chen <YN.Chen@mediatek.com>, Leon Yen <Leon.Yen@mediatek.com>,
	Eric-SY Chang <Eric-SY.Chang@mediatek.com>,
	KM Lin <km.lin@mediatek.com>,
	Robin Chiu <robin.chiu@mediatek.com>,
	CH Yeh <ch.yeh@mediatek.com>, Posh Sun <posh.sun@mediatek.com>,
	Stella Chang <Stella.Chang@mediatek.com>,
	Evelyn Tsai <evelyn.tsai@mediatek.com>,
	Ryder Lee <ryder.lee@mediatek.com>,
	Shayne Chen <shayne.chen@mediatek.com>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	linux-mediatek <linux-mediatek@lists.infradead.org>,
	Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Subject: Re: [PATCH v2] wifi: mt76: fix bandwidth 80MHz link fail in 6GHz band
Date: Tue, 25 Oct 2022 10:33:20 +0200	[thread overview]
Message-ID: <Y1efUIq4aCFO7V6j@lore-desk> (raw)
In-Reply-To: <85b5e8374fc9b86fb955060c1840f3b2a1d187e4.1666614616.git.deren.wu@mediatek.com>

[-- Attachment #1: Type: text/plain, Size: 3851 bytes --]

> From: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
> 
> Due to information missing, the firmware may be fail on bandwidth
> related settings in mt7921/mt7922. Add new cmd STA_REC_HE_V2 to apply
> additional capabilities in 6GHz band.
> 
> Tested-by: Ben Greear <greearb@candelatech.com>
> Co-developed-by: Deren Wu <deren.wu@mediatek.com>
> Signed-off-by: Deren Wu <deren.wu@mediatek.com>
> Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
> ---
> v2: Fix le16/cpu type problem, reported by kernel test robot <lkp@intel.com>
> ---
>  .../wireless/mediatek/mt76/mt76_connac_mcu.c  | 34 +++++++++++++++++++
>  .../wireless/mediatek/mt76/mt76_connac_mcu.h  | 11 ++++++
>  2 files changed, 45 insertions(+)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> index 011fc9729b38..9bba18d24c71 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> @@ -744,6 +744,39 @@ mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
>  	he->pkt_ext = 2;
>  }
>  
> +static void
> +mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)

Is this tlv available just for 7921 fw? If so I guess we should add it just for
it since mt76_connac_mcu_sta_tlv is used even by other chipsets.

Regards,
Lorenzo

> +{
> +	struct ieee80211_sta_he_cap *he_cap = &sta->deflink.he_cap;
> +	struct ieee80211_he_cap_elem *elem = &he_cap->he_cap_elem;
> +	struct sta_rec_he_v2 *he;
> +	struct tlv *tlv;
> +
> +	tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_HE_V2, sizeof(*he));
> +
> +	he = (struct sta_rec_he_v2 *)tlv;
> +	memcpy(he->he_phy_cap, elem->phy_cap_info, sizeof(he->he_phy_cap));
> +	memcpy(he->he_mac_cap, elem->mac_cap_info, sizeof(he->he_mac_cap));
> +
> +	switch (sta->deflink.bandwidth) {
> +	case IEEE80211_STA_RX_BW_160:
> +		if (elem->phy_cap_info[0] &
> +		    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
> +			he->max_nss_mcs[CMD_HE_MCS_BW8080] =
> +				he_cap->he_mcs_nss_supp.rx_mcs_80p80;
> +
> +		he->max_nss_mcs[CMD_HE_MCS_BW160] =
> +				he_cap->he_mcs_nss_supp.rx_mcs_160;
> +		fallthrough;
> +	default:
> +		he->max_nss_mcs[CMD_HE_MCS_BW80] =
> +				he_cap->he_mcs_nss_supp.rx_mcs_80;
> +		break;
> +	}
> +
> +	he->pkt_ext = IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_16US;
> +}
> +
>  static u8
>  mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
>  			    enum nl80211_band band, struct ieee80211_sta *sta)
> @@ -838,6 +871,7 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
>  	/* starec he */
>  	if (sta->deflink.he_cap.has_he) {
>  		mt76_connac_mcu_sta_he_tlv(skb, sta);
> +		mt76_connac_mcu_sta_he_tlv_v2(skb, sta);
>  		if (band == NL80211_BAND_6GHZ &&
>  		    sta_state == MT76_STA_INFO_STATE_ASSOC) {
>  			struct sta_rec_he_6g_capa *he_6g_capa;
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
> index cf4ce3b1fc21..8166722d4717 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
> @@ -354,6 +354,16 @@ struct sta_rec_he {
>  	u8 rsv2[2];
>  } __packed;
>  
> +struct sta_rec_he_v2 {
> +	__le16 tag;
> +	__le16 len;
> +	u8 he_mac_cap[6];
> +	u8 he_phy_cap[11];
> +	u8 pkt_ext;
> +	/* 0: BW80, 1: BW160, 2: BW8080 */
> +	__le16 max_nss_mcs[CMD_HE_MCS_BW_NUM];
> +} __packed;
> +
>  struct sta_rec_amsdu {
>  	__le16 tag;
>  	__le16 len;
> @@ -779,6 +789,7 @@ enum {
>  	STA_REC_BFEE,
>  	STA_REC_PHY = 0x15,
>  	STA_REC_HE_6G = 0x17,
> +	STA_REC_HE_V2 = 0x19,
>  	STA_REC_MAX_NUM
>  };
>  
> -- 
> 2.18.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2022-10-25  8:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-24 12:45 [PATCH v2] wifi: mt76: fix bandwidth 80MHz link fail in 6GHz band Deren Wu
2022-10-25  8:33 ` Lorenzo Bianconi [this message]
2022-10-25 10:31   ` Deren Wu
2022-10-25 12:04     ` Lorenzo Bianconi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y1efUIq4aCFO7V6j@lore-desk \
    --to=lorenzo@kernel.org \
    --cc=Deren.Wu@mediatek.com \
    --cc=Eric-SY.Chang@mediatek.com \
    --cc=Leon.Yen@mediatek.com \
    --cc=Soul.Huang@mediatek.com \
    --cc=Stella.Chang@mediatek.com \
    --cc=YN.Chen@mediatek.com \
    --cc=ch.yeh@mediatek.com \
    --cc=evelyn.tsai@mediatek.com \
    --cc=km.lin@mediatek.com \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mingyen.hsieh@mediatek.com \
    --cc=nbd@nbd.name \
    --cc=posh.sun@mediatek.com \
    --cc=robin.chiu@mediatek.com \
    --cc=ryder.lee@mediatek.com \
    --cc=sean.wang@mediatek.com \
    --cc=shayne.chen@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.