Re: [PATCH 1/3] wifi: mt76: mt7915: remove VHT160 capability on MT7915

From: Oleksandr Natalenko
Date: Fri Sep 29 2023 - 16:36:27 EST


Hello.

On pátek 29. září 2023 14:59:26 CEST Nicolas Cavallari wrote:
> On 21/09/2023 07:02, Oleksandr Natalenko wrote:
> > Hello Felix.
> >
> > On středa 26. července 2023 11:17:02 CEST Felix Fietkau wrote:
> >> The IEEE80211_VHT_CAP_EXT_NSS_BW value already indicates support for half-NSS
> >> 160 MHz support, so it is wrong to also advertise full 160 MHz support.
> >>
> >> Fixes: c2f73eacee3b ("wifi: mt76: mt7915: add back 160MHz channel width support for MT7915")
> >> Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
> >> ---
> >> drivers/net/wireless/mediatek/mt76/mt7915/init.c | 1 -
> >> 1 file changed, 1 deletion(-)
> >>
> >> diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/init.c b/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> >> index ee976657bfc3..78552f10b377 100644
> >> --- a/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> >> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/init.c
> >> @@ -414,7 +414,6 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
> >> if (!dev->dbdc_support)
> >> vht_cap->cap |=
> >> IEEE80211_VHT_CAP_SHORT_GI_160 |
> >> - IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ |
> >> FIELD_PREP(IEEE80211_VHT_CAP_EXT_NSS_BW_MASK, 1);
> >> } else {
> >> vht_cap->cap |=
> >>
> >
> > For some reason this got backported into the stable kernel:
> >
> > ```
> > $ git log --oneline v6.5.2..v6.5.4 -- drivers/net/wireless/mediatek/mt76/mt7915/
> > c43017fbebcc3 wifi: mt76: mt7915: fix power-limits while chan_switch
> > edb1afe042c74 wifi: mt76: mt7915: fix tlv length of mt7915_mcu_get_chan_mib_info
> > 9ec0dec0baea3 wifi: mt76: mt7915: remove VHT160 capability on MT7915
> > 0e61f73e6ebc0 wifi: mt76: mt7915: fix capabilities in non-AP mode
> > 6bce28ce28390 wifi: mt76: mt7915: fix command timeout in AP stop period
> > 7af917d4864c6 wifi: mt76: mt7915: rework tx bytes counting when WED is active
> > feae00c6468ce wifi: mt76: mt7915: rework tx packets counting when WED is active
> > 70bbcc4ad6544 wifi: mt76: mt7915: fix background radar event being blocked
> > ```
> >
> > and this broke my mt7915-based AP.
> >
> > However, if I remove `[VT160]` capability from the hostapd config, things go back to normal. It does seem that 160 MHz still works even.
> >
> > Is this expected?
>
> I would say it is expected.
>
> hostapd seems to solely rely on the VHT Supported Channel Width and does not
> seem to support the VHT Extended NSS BW stuff. So it only knows about full VHT
> 160 MHz support and not about half NSS VHT 160 MHz.
>
> The hardware does not actually support full 160 MHz (despite the driver
> erroneously claiming support for it before this patch) so it make sense that
> hostapd fails to start the AP if the config file requests (full) VHT 160 MHz.
>
> However, hostapd knows about half NSS HE 160 MHz and I suspect your
> configuration also requests HE 160 MHz, so 160 MHz works fine in HE but not in VHT.

I see, thanks for the explanation.

> In any case, it would help to know the hostapd version and your configuration file.

It's 2.10 with the following config at the very moment:

```
interface=wlp1s0
ctrl_interface=/run/hostapd/wlp1s0
driver=nl80211
ssid=xxx
utf8_ssid=1
interworking=1
ipaddr_type_availability=12
country_code=XX
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK FT-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa_psk_file=/run/credentials/hostapd@wlp1s0.service/hostapd.wpa_psk
macaddr_acl=1
accept_mac_file=/etc/hostapd/hostapd.accept
noscan=1
hw_mode=a
ieee80211n=1
channel=100
vht_oper_chwidth=2
vht_oper_centr_freq_seg0_idx=114
ieee80211ax=1
he_oper_chwidth=2
he_oper_centr_freq_seg0_idx=114
ieee80211w=1
ocv=1
ieee80211d=1
ieee80211h=1
wmm_enabled=1
ht_capab=[RXLDPC][HT40+][GF][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935][DSSS_CCK-40]
mobility_domain=abcd
ft_psk_generate_local=1
pmk_r1_push=1
rsn_preauth=1
rsn_preauth_interfaces=wifi-br
nas_identifier=yyy
r1_key_holder=yyy
r0kh=ff:ff:ff:ff:ff:ff * zzz
r1kh=00:00:00:00:00:00 00:00:00:00:00:00 zzz
disassoc_low_ack=1
fst_group_id=wifi-br
fst_priority=100
mbo=1
mbo_cell_data_conn_pref=1
require_ht=1
ieee80211ac=1
require_vht=1
vht_capab=[MAX-MPDU-7991][RXLDPC][SHORT-GI-80][SHORT-GI-160][TX-STBC-2BY1][RX-STBC-1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][MU-BEAMFORMEE][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][MAX-A-MPDU-LEN-EXP7]
```

(I wonder if I did other obviously stupid things here)

--
Oleksandr Natalenko (post-factum)

Attachment: signature.asc
Description: This is a digitally signed message part.