• Bug#1105211: mt7921e: stuck at low transmit power (1/6)

    From Jyotirmoy Bhattacharya@1:229/2 to All on Tue May 13 14:50:01 2025
    XPost: linux.debian.bugs.dist
    From: jyotirmoy@jyotirmoy.net

    Package: src:linux
    Version: 6.14.6-1~exp1
    Severity: important
    X-Debbugs-Cc: jyotirmoy@jyotirmoy.net

    Dear Maintainer,

    On a Asus Vivobook S14 laptop with a Mediatek 7922 WiFi chip served
    by the MT7921e module, Tx power on boot is stuck at a very low 3dB
    value as shown by:

    root@hometop4:~# cat /sys/kernel/debug/ieee80211/phy*/mt76/txpower_sku|head
    Tx power table (channel 6)
    1m 2m 5m 11m
    CCK (user) : -1 -1 -1 -1
    CCK (eeprom) : 41 41 41 41
    CCK (tmac) : 3 3 3 3
    6m 9m 12m 18m 24m 36m 48m 54m
    OFDM (user) : -1 -1 -1 -1 -1 -1 -1 -1
    OFDM (eeprom) : 39 39 39 39 37 37 35 34
    OFDM (tmac) : 3 3 3 3 3 3 3 3
    mcs0 mcs1 mcs2 mcs3 mcs4 mcs5 mcs6 mcs7

    This is accompanied by very low WiFi speeds. Unloading all mt76 related
    modules and reloading mt7921e with the disable_clc=1 option increases
    the transmit power, thus

    root@hometop4:~# rm /etc/modprobe.d/mt7921.conf
    root@hometop4:~# modprobe -r mt7921e
    root@hometop4:~# modprobe -r mt792x_lib
    root@hometop4:~# modprobe -r mt76
    root@hometop4:~# modprobe mt7921e disable_clc=1
    root@hometop4:~# cat /sys/kernel/debug/ieee80211/phy*/mt76/txpower_sku|head
    Tx power table (channel 6)
    1m 2m 5m 11m
    CCK (user) : 20 20 20 20
    CCK (eeprom) : 41 41 41 41
    CCK (tmac) : 24 24 24 24
    6m 9m 12m 18m 24m 36m 48m 54m
    OFDM (user) : 24 24 24 24 24 24 24 24
    OFDM (eeprom) : 39 39 39 39 37 37 35 34
    OFDM (tmac) : 28 28 28 28 28 28 28 28
    mcs0 mcs1 mcs2 mcs3 mcs4 mcs5 mcs6 mcs7

    This greatly improves WiFi speed.

    However, trying to make this change
    permanent by create a file call mt7921.conf in /etc/modprobe.d with the contents:

    options mt7921e disable_clc=1
    options mt7921_common disable_clc=1

    running update-initramfs -u and rebooting does not work. What is worse
    as long as this file is in /etc/modprobe.d, the command mention above
    that fix the system after booting do not work. They work again after
    deleting the file.

    Further, even when the above commands work, journalctl shows a message:

    May 13 17:59:41 hometop4 kernel: mt7921e: unknown parameter 'disable_clc' ignored

    At boot time adding kernel parameters mt7921e.disable_clc=1 or mt7921_common.disable_clc=1 does not work.

    Regards,
    Jyotirmoy Bhattacharya

    -- Package-specific info:
    ** Version:
    Linux version 6.14-amd64 (debian-kernel@lists.debian.org) (x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP PREEMPT_DYNAMIC Debian 6.14.6-1~exp1 (2025-05-09)

    ** Command line:
    BOOT_IMAGE=/vmlinuz-6.14-amd64 root=/dev/mapper/my_vg-my_root ro quiet

    ** Not tainted

    ** Kernel log:
    [ 20.300080] wlp98s0: send auth to 48:8b:0a:3e:6c:02 (try 1/3)
    [ 20.304977] wlp98s0: authenticated
    [ 20.312277] wlp98s0: associate with 48:8b:0a:3e:6c:02 (try 1/3)
    [ 20.328821] wlp98s0: RX AssocResp from 48:8b:0a:3e:6c:02 (capab=0x421 status=0 aid=3)
    [ 20.356433] wlp98s0: associated
    [ 20.488348] ucsi_acpi USBC000:00: ucsi_handle_connector_change: GET_CONNECTOR_STATUS failed (-110)
    [ 28.295794] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
    [ 28.338332] rfkill: input handler disabled
    [ 36.091451] rfkill: input handler enabled
    [ 36.802244] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
    [ 36.868840] rfkill: input handler disabled
    [ 37.855771] SCSI subsystem initialized
    [ 66.079582] wlp98s0: deauthenticating from 48:8b:0a:3e:6c:02 by local choice (Reason: 3=DEAUTH_LEAVING)
    [ 105.786163] mt7921e: unknown parameter 'disable_clc' ignored
    [ 105.786166] mt7921e: unknown parameter 'disable_clc' ignored
    [ 105.790136] mt7921e 0000:62:00.0: ASIC revision: 79220010
    [ 105.867979] mt7921e 0000:62:00.0: HW/SW Version: 0x8a108a10, Build Time: 20241106163228a

    [ 105.882530] mt7921e 0000:62:00.0: WM Firmware Version: ____000000, Build Time: 20241106163310
    [ 106.950364] mt7921e 0000:62:00.0 wlp98s0: renamed from wlan0
    [ 109.924650] wlp98s0: authenticate with 48:8b:0a:3e:6c:02 (local address=52:e0:20:c8:dd:ca)
    [ 110.072726] wlp98s0: send auth to 48:8b:0a:3e:6c:02 (try 1/3)
    [ 110.077913] wlp98s0: authenticated
    [ 110.080586] wlp98s0: associate with 48:8b:0a:3e:6c:02 (try 1/3)
    [ 110.100356] wlp98s0: RX AssocResp from 48:8b:0a:3e:6c:02 (capab=0x421 status=0 aid=3)
    [ 110.126608] wlp98s0: associated
    [ 126.824669] page_pool_release_retry() stalled pool shutdown: id 27, 1 inflight 60 sec
    [ 136.453628] wlp98s0: deauthenticating from 48:8b:0a:3e:6c:02 by local choice (Reason: 3=DEAUTH_LEAVING)
    [ 187.242821] page_pool_release_retry() stalled pool shutdown: id 27, 1 inflight 120 sec
    [ 230.711883] mt7921e: unknown parameter 'disable_clc' ignored
    [ 230.711889] mt7921e: unknown parameter 'disable_clc' ignored
    [ 230.715855] mt7921e 0000:62:00.0: ASIC revision: 79220010
    [ 230.794600] mt7921e 0000:62:00.0: HW/SW Version: 0x8a108a10, Build Time: 20241106163228a

    [ 230.809644] mt7921e 0000:62:00.0: WM Firmware Version: ____000000, Build Time: 20241106163310
    [ 231.877614] mt7921e 0000:62:00.0 wlp98s0: renamed from wlan0
    [ 234.891096] wlp98s0: authenticate with 48:8b:0a:3e:6c:02 (local address=52:e0:20:c8:dd:ca)
    [ 235.041969] wlp98s0: send auth to 48:8b:0a:3e:6c:02 (try 1/3)
    [ 235.046734] wlp98s0: authenticated
    [ 235.050816] wlp98s0: associate with 48:8b:0a:3e:6c:02 (try 1/3)

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)