Wifi not working when laptop is on battery - unable to change power state from D3cold to D0 device inaccessible

I have latest installed updates of Fedora. I have latest BIOS updates.

Model Laptop Asus Vivobook K3500PC

Wifi Model and driver

        DeviceName: WLAN
        Subsystem: AzureWave Device [1a3b:4680]
        Kernel driver in use: mt7921e
root@Vivobook ~# cat /etc/os-release

NAME="Fedora Linux"
VERSION="42 (KDE Plasma Desktop Edition)"
RELEASE_TYPE=stable
ID=fedora
VERSION_ID=42
VERSION_CODENAME=""
PLATFORM_ID="platform:f42"
PRETTY_NAME="Fedora Linux 42 (KDE Plasma Desktop Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:42"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f42/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=42
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=42
SUPPORT_END=2026-05-13
VARIANT="KDE Plasma Desktop Edition"
VARIANT_ID=kde

When try to boot laptop on battery the wifi not working and I see error on boot screen

unable to change power state from D3cold to D0 device inaccessible 

With ChatGPT try to disable power saving for wifi, but without success.
When I connect the laptop to power supply and restart - everything works without any issues.

Can you help about this issue?

We need more details. Please run inxi -Nzxx > inxi-Nzxx.text when wifi is working. This should include the name of the “driver”. Here:

% inxi -Nzxx
Network:
  Device-1: Intel Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel bus-ID: 00:14.3
    chip-ID: 8086:a370
  Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet vendor: Dell
    driver: r8169 v: kernel pcie: speed: 2.5 GT/s lanes: 1 port: 3000 bus-ID: 01:00.0
    chip-ID: 10ec:8168

so the “driver” name here is ilwlwifi. Then boot on battery and if wifi is not working, try running sudo modprobe -v <driver_name>. If this fails, post the inxi -Nzxx.text contents and also the output from running journalctl --no-hostname --no-pager -b -g wifi and also journalctl --no-hostname --no-pager -b -g <driver_name>.

Other laptop users who need to load the WiFi module when waking a system from sleep have found ways to run the appropriate modprobe command when the system wakes. Hopefully this is temporary, but the fix may require cooperation between vendor firmware devs and linux devs, so could take some time.

Hello @gnwiii . Thank you very much for your fast reply. Here is the output of commands:

Working WiFi

Network:
  Device-1: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter
    vendor: AzureWave driver: mt7921e v: kernel bus-ID: 0000:2e:00.0
    chip-ID: 14c3:7961

Not Working WiFi

root@Vivobook:~# modprobe -v mt7921e
root@Vivobook:~#
root@Vivobook:~# ping 1.1.1.1
ping: connect: Network is unreachable

root@Vivobook:~# inxi -Nzxx
Network:
  Device-1: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter
    vendor: AzureWave driver: N/A bus-ID: 0000:2e:00.0 chip-ID: 14c3:7961


root@Vivobook:~# journalctl --no-hostname --no-pager -b -g wifi
Aug 20 09:56:59 NetworkManager[2183]: <info>  [1755673019.6250] Read config: /etc/NetworkManager/NetworkManager.conf, /usr/lib/NetworkManager/conf.d/{20-connectivity-fedora.conf,22-wifi-mac-addr.conf,99-nvme-nbft-no-ignore-carrier.conf}, /run/NetworkManager/conf.d/15-carrier-timeout.conf, /etc/NetworkManager/conf.d/00-wifi-powersave.conf
Aug 20 09:56:59 NetworkManager[2183]: <info>  [1755673019.6418] Loaded device plugin: NMWifiFactory (/usr/lib64/NetworkManager/1.52.1-1.fc42/libnm-device-plugin-wifi.so)


root@Vivobook:~# journalctl --no-hostname --no-pager -b -g mt7921e
Aug 20 09:56:59 kernel: mt7921e 0000:2e:00.0: Unable to change power state from D3cold to D0, device inaccessible
Aug 20 09:56:59 kernel: mt7921e 0000:2e:00.0: Unable to change power state from D3cold to D0, device inaccessible
Aug 20 09:57:00 kernel: mt7921e 0000:2e:00.0: driver own failed
Aug 20 09:57:00 kernel: mt7921e 0000:2e:00.0: probe with driver mt7921e failed with error -5

Try the workaround at https://bbs.archlinux.org/viewtopic.php?id=301985. If that works, see:
Suspend Freeze Fix for mt7921e.

Hello @gnwiii Thank you again for your time and fast reply.
In my case, this workaround not working. Here is the steps:

add pci_aspm=off in /etc/default/grub

cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="initcall_blacklist=simpledrm_platform_driver_init nvidia-drm.modeset=1 rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core rhgb quiet pci_aspm=off"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

and then run

grub2-mkconfig -o /boot/grub2/grub.cfg

Shutdown the laptop.
After that boot up on battery and run the commands from previous posts:

root@Vivobook /h/yyovchev# journalctl --no-hostname --no-pager -b -g wifi
Aug 21 10:16:41 NetworkManager[2186]: <info>  [1755760601.9408] Read config: /etc/NetworkManager/NetworkManager.conf, /usr/lib/NetworkManager/conf.d/{20-connectivity-fedora.conf,22-wifi-mac-addr.conf,99-nvme-nbft-no-ignore-carrier.conf}, /run/NetworkManager/conf.d/15-carrier-timeout.conf, /etc/NetworkManager/conf.d/00-wifi-powersave.conf
Aug 21 10:16:41 NetworkManager[2186]: <info>  [1755760601.9621] Loaded device plugin: NMWifiFactory (/usr/lib64/NetworkManager/1.52.1-1.fc42/libnm-device-plugin-wifi.so)
root@Vivobook /h/yyovchev# journalctl --no-hostname --no-pager -b -g mt7921e
Aug 21 10:16:41 kernel: mt7921e 0000:2e:00.0: Unable to change power state from D3cold to D0, device inaccessible
Aug 21 10:16:41 kernel: mt7921e 0000:2e:00.0: Unable to change power state from D3cold to D0, device inaccessible
Aug 21 10:16:42 kernel: mt7921e 0000:2e:00.0: driver own failed
Aug 21 10:16:42 kernel: mt7921e 0000:2e:00.0: probe with driver mt7921e failed with error -5

root@Vivobook /h/yyovchev# cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt7)/root/boot/vmlinuz-6.15.9-201.fc42.x86_64 root=UUID=8ef3a61e-a3e1-4412-bdd5-ec0aa1b41d92 ro rootflags=subvol=root initcall_blacklist=simpledrm_platform_driver_init nvidia-drm.modeset=1 rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core rhgb quiet pci_aspm=off
root@Vivobook /h/yyovchev# lsmod |grep -i mt7921e
mt7921e                24576  0
mt7921_common          98304  1 mt7921e
mt792x_lib             77824  2 mt7921e,mt7921_common
mt76_connac_lib       106496  3 mt792x_lib,mt7921e,mt7921_common
mt76                  167936  4 mt792x_lib,mt7921e,mt7921_common,mt76_connac_lib
rfkill                 45056  6 mt7921e,asus_wmi,bluetooth,cfg80211

root@Vivobook /h/yyovchev# modprobe -v mt7921e

root@Vivobook /h/yyovchev# inxi -Nzxx
Network:
  Device-1: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter
    vendor: AzureWave driver: N/A bus-ID: 0000:2e:00.0 chip-ID: 14c3:7961

Do you have other ideas how can I fix the issue?
Have a great day!

Some reports say they have to shutdown and remove laptop battery for several minutes to fully reset WiFi devices. See https://bbs.archlinux.org/viewtopic.php?id=292150.

Look at https://discussion.fedoraproject.org/t/system-cannot-wake-up/134199/39. Some users needed to disable bluetooth or change BIOS settings.

Hello again,
Thank you for your reply.
The battery is not removable from the outside. It is located inside the laptop, under the bottom cover, so the device must be opened to take it out. It cannot be removed every time I need to work on battery.

Disabling Bluetooth is also not an option, since we use Bluetooth devices such as a mouse, headset, etc.

Any other solutions are welcome. Thank you very much!

Have you tried the 6.15.10 kernel?

You haven’t mentioned BIOS settings. Many systems enable bluetooth in UEFI/BIOS to support wireless mouse and keyboard before the OS is booted, and WiFi to support netbooting (cubicle farms may use netbook to mass install updates at night).

It is not unusual for systems to have options to disable devices when on battery to extend runtime or and use a function key (often <Fn+F12>) or switch to enable/disable wifi. Sometimes it is called “airplane” mode.

modinfo mt7921e has email addresses for the authors. If you still have the issue, contact the authors.

Hello again. I update to the latest kernel, but the issue still exist. I also contact the driver’s authors, but I still don’t have any response from them.

Linux Vivobook 6.15.10-200.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 15 15:57:06 UTC 2025 x86_64 GNU/Linux. 

Many systems have an option in UEFI settings to disable the internal battery. This is often necessary before starting maintenance work on the HW.

1 Like

I don’t know exactly in which version it was fixed, but in version 6.17.6-200.fc42.x86_64 (#1 SMP PREEMPT_DYNAMIC Wed Oct 29 18:58:05 UTC 2025) with the latest updates, the issue is resolved.