• Quan Zhou's avatar
    wifi: mt76: mt7921e: fix init command fail with enabled device · 525c469e
    Quan Zhou authored
    For some cases as below, we may encounter the unpreditable chip stats
    in driver probe()
    * The system reboot flow do not work properly, such as kernel oops while
      rebooting, and then the driver do not go back to default status at
      this moment.
    * Similar to the flow above. If the device was enabled in BIOS or UEFI,
      the system may switch to Linux without driver fully shutdown.
    
    To avoid the problem, force push the device back to default in probe()
    * mt7921e_mcu_fw_pmctrl() : return control privilege to chip side.
    * mt7921_wfsys_reset()    : cleanup chip config before resource init.
    
    Error log
    [59007.600714] mt7921e 0000:02:00.0: ASIC revision: 79220010
    [59010.889773] mt7921e 0000:02:00.0: Message 00000010 (seq 1) timeout
    [59010.889786] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59014.217839] mt7921e 0000:02:00.0: Message 00000010 (seq 2) timeout
    [59014.217852] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59017.545880] mt7921e 0000:02:00.0: Message 00000010 (seq 3) timeout
    [59017.545893] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59020.874086] mt7921e 0000:02:00.0: Message 00000010 (seq 4) timeout
    [59020.874099] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59024.202019] mt7921e 0000:02:00.0: Message 00000010 (seq 5) timeout
    [59024.202033] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59027.530082] mt7921e 0000:02:00.0: Message 00000010 (seq 6) timeout
    [59027.530096] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59030.857888] mt7921e 0000:02:00.0: Message 00000010 (seq 7) timeout
    [59030.857904] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59034.185946] mt7921e 0000:02:00.0: Message 00000010 (seq 8) timeout
    [59034.185961] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59037.514249] mt7921e 0000:02:00.0: Message 00000010 (seq 9) timeout
    [59037.514262] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59040.842362] mt7921e 0000:02:00.0: Message 00000010 (seq 10) timeout
    [59040.842375] mt7921e 0000:02:00.0: Failed to get patch semaphore
    [59040.923845] mt7921e 0000:02:00.0: hardware init failed
    
    Cc: stable@vger.kernel.org
    Fixes: 5c14a5f9 ("mt76: mt7921: introduce mt7921e support")
    Tested-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: default avatarJuan Martinez <juan.martinez@amd.com>
    Co-developed-by: default avatarLeon Yen <leon.yen@mediatek.com>
    Signed-off-by: default avatarLeon Yen <leon.yen@mediatek.com>
    Signed-off-by: default avatarQuan Zhou <quan.zhou@mediatek.com>
    Signed-off-by: default avatarDeren Wu <deren.wu@mediatek.com>
    Message-ID: <39fcb7cee08d4ab940d38d82f21897483212483f.1688569385.git.deren.wu@mediatek.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    525c469e
mcu.c 30.1 KB