Dear Maintainer, Realtek WLAN device disappears after resume from hibernation.
The laptop is Lenovo ThinkBook 14 G7 IML.
Tried to work around this by unloading rtw89_8852ce before sleep, it fixed the original
problem, but caused device disappearance after resume from suspend. So the valid workaround
is to unload the module only before hibernation:
$ cat /usr/lib/systemd/system-sleep/hibernate_rtw89
#!/bin/sh
case "${1}_${2}" in
pre_hibernate) modprobe -rv rtw89_8852ce ;;
post_hibernate) modprobe -v rtw89_8852ce ;;
esac
Errors on resume from hibernation before any workaround:
kernel: rtw89_8852ce 0000:44:00.0: xtal si not ready(W): offset=90 val=10 mask=10
kernel: rtw89_8852ce 0000:44:00.0: xtal si not ready(W): offset=90 val=10 mask=10
kernel: rtw89_8852ce 0000:44:00.0: mac init fail, ret:-110
kernel: ------------[ cut here ]------------
kernel: Hardware became unavailable upon resume. This could be a software issue prior to suspend or a hardware issue.
kernel: WARNING: CPU: 1 PID: 28284 at net/mac80211/util.c:1828 ieee80211_reconfig+0xa0/0x15e0 [mac80211]
kernel: Modules linked in: uinput snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfcomm cmac algif_hash algif_skcipher af_alg bnep btusb uvcvideo btrtl btintel btbcm videobuf2_vmalloc btmtk uvc videobuf2_memops videobuf2_v4l2 bluetooth videodev qrtr videobuf2_common mc crc16 lz4 lz4_compress zram binfmt_misc nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_hdac_hdmi snd_sof_probes snd_soc_intel_hda_dsp_common snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_scodec_component snd_soc_dmic nft_masq snd_sof_pci_intel_mtl snd_sof_intel_hda_generic rtw89_8852ce soundwire_intel soundwire_generic_allocation rtw89_8852c soundwire_cadence snd_sof_intel_hda_common snd_sof_intel_hda_mlink rtw89_pci snd_sof_intel_hda intel_uncore_frequency snd_sof_pci intel_uncore_frequency_common x86_pkg_temp_thermal snd_sof_xtensa_dsp intel_powerclamp rtw89_core snd_sof kvm_intel snd_sof_utils snd_soc_hdac_hda nft_reject_inet nf_reject_ipv4 snd_hda_ext_core nf_reject_ipv6 snd_soc_acpi_intel_match
kernel: nft_reject snd_soc_acpi lenovo_ymc kvm mac80211 nft_ct snd_soc_core snd_compress snd_pcm_dmaengine rapl soundwire_bus intel_cstate intel_rapl_msr snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec libarc4 snd_hda_core processor_thermal_device_pci think_lmi iTCO_wdt processor_thermal_device snd_hwdep intel_uncore cfg80211 snd_pcm wmi_bmof firmware_attributes_class nft_redir processor_thermal_wt_hint intel_pmc_bxt iTCO_vendor_support processor_thermal_rfim mei_me snd_timer processor_thermal_rapl watchdog snd intel_rapl_common mei ucsi_acpi soundcore processor_thermal_wt_req typec_ucsi processor_thermal_power_floor ideapad_laptop processor_thermal_mbox igen6_edac typec platform_profile roles int3403_thermal rfkill int340x_thermal_zone intel_pmc_core ac joydev intel_vsec nft_chain_nat pmt_telemetry nf_nat int3400_thermal acpi_tad intel_hid pmt_class acpi_pad acpi_thermal_rel sparse_keymap evdev nf_conntrack serio_raw nf_defrag_ipv6 nf_defrag_ipv4 pkcs8_key_parser coretemp msr ecryptfs i2c_dev
kernel: parport_pc ppdev nf_tables lp parport loop nvme_fabrics configfs efi_pstore nfnetlink ip_tables x_tables autofs4 btrfs blake2b_generic dm_crypt dm_mod efivarfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic raid1 raid0 md_mod i915 drm_buddy i2c_algo_bit drm_display_helper hid_multitouch cec crct10dif_pclmul hid_generic crc32_pclmul rc_core crc32c_intel sdhci_pci ghash_clmulni_intel i2c_hid_acpi ttm cqhci i2c_hid xhci_pci sha512_ssse3 xhci_hcd drm_kms_helper hid sdhci nvme sha256_ssse3 thunderbolt e1000e usbcore mmc_core sha1_ssse3 drm nvme_core i2c_i801 intel_lpss_pci intel_lpss i2c_smbus idma64 usb_common fan button video battery wmi pinctrl_meteorlake aesni_intel gf128mul crypto_simd cryptd
kernel: CPU: 1 UID: 0 PID: 28284 Comm: kworker/u57:66 Tainted: G U 6.11.6-amd64 #1 Debian 6.11.6-1
kernel: Tainted: [U]=USER
kernel: Hardware name: LENOVO 21MR/LNVNB161216, BIOS P3CN38WW 05/30/2024
kernel: Workqueue: async async_run_entry_fn
kernel: RIP: 0010:ieee80211_reconfig+0xa0/0x15e0 [mac80211]
kernel: Code: 03 00 00 41 c6 87 ad 05 00 00 00 4c 89 ff e8 27 82 fb ff 41 89 c4 85 c0 0f 84 16 03 00 00 48 c7 c7 50 10 ac c1 e8 f0 01 4d c6 <0f> 0b eb 31 84 c0 0f 85 aa 01 00 00 41 c6 87 ad 05 00 00 00 4c 89
kernel: RSP: 0000:ffffb7528d38bce0 EFLAGS: 00010286
kernel: RAX: 0000000000000000 RBX: ffff9d49f8300538 RCX: 0000000000000027
kernel: RDX: ffff9d511fca1788 RSI: 0000000000000001 RDI: ffff9d511fca1780
kernel: RBP: ffff9d49f83003c0 R08: 0000000000000000 R09: ffffb7528d38baa8
kernel: R10: ffffffff89a87270 R11: 0000000000000003 R12: 00000000ffffff92
kernel: R13: 0000000000000040 R14: 0000000000000000 R15: ffff9d49f8300900
kernel: FS: 0000000000000000(0000) GS:ffff9d511fc80000(0000) knlGS:0000000000000000
kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: CR2: 0000000000000000 CR3: 0000000590c22001 CR4: 0000000000f70ef0
kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
kernel: DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
kernel: PKRU: 55555554
kernel: Call Trace:
kernel: <TASK>
kernel: ? ieee80211_reconfig+0xa0/0x15e0 [mac80211]
kernel: ? __warn.cold+0x8e/0xe8
kernel: ? ieee80211_reconfig+0xa0/0x15e0 [mac80211]
kernel: ? report_bug+0xff/0x140
kernel: ? handle_bug+0x3c/0x80
kernel: ? exc_invalid_op+0x17/0x70
kernel: ? asm_exc_invalid_op+0x1a/0x20
kernel: ? ieee80211_reconfig+0xa0/0x15e0 [mac80211]
kernel: ? select_task_rq_fair+0x4db/0x1730
kernel: ? __pfx_worker_thread+0x10/0x10
kernel: ? wait_for_completion+0x3a/0x160
kernel: wiphy_resume+0x82/0x1b0 [cfg80211]
kernel: ? __pfx_wiphy_resume+0x10/0x10 [cfg80211]
kernel: dpm_run_callback+0x47/0x150
kernel: device_resume+0x9c/0x210
kernel: async_resume+0x1d/0x30
kernel: async_run_entry_fn+0x31/0x130
kernel: process_one_work+0x174/0x330
kernel: worker_thread+0x252/0x390
kernel: ? __pfx_worker_thread+0x10/0x10
kernel: kthread+0xcf/0x100
kernel: ? __pfx_kthread+0x10/0x10
kernel: ret_from_fork+0x31/0x50
kernel: ? __pfx_kthread+0x10/0x10
kernel: ret_from_fork_asm+0x1a/0x30
kernel: </TASK>
kernel: ---[ end trace 0000000000000000 ]---
kernel: ------------[ cut here ]------------
kernel: WARNING: CPU: 1 PID: 28284 at net/mac80211/driver-ops.c:41 drv_stop+0xfd/0x110 [mac80211]
kernel: Modules linked in: uinput snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfcomm cmac algif_hash algif_skcipher af_alg bnep btusb uvcvideo btrtl btintel btbcm videobuf2_vmalloc btmtk uvc videobuf2_memops videobuf2_v4l2 bluetooth videodev qrtr videobuf2_common mc crc16 lz4 lz4_compress zram binfmt_misc nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_hdac_hdmi snd_sof_probes snd_soc_intel_hda_dsp_common snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_scodec_component snd_soc_dmic nft_masq snd_sof_pci_intel_mtl snd_sof_intel_hda_generic rtw89_8852ce soundwire_intel soundwire_generic_allocation rtw89_8852c soundwire_cadence snd_sof_intel_hda_common snd_sof_intel_hda_mlink rtw89_pci snd_sof_intel_hda intel_uncore_frequency snd_sof_pci intel_uncore_frequency_common x86_pkg_temp_thermal snd_sof_xtensa_dsp intel_powerclamp rtw89_core snd_sof kvm_intel snd_sof_utils snd_soc_hdac_hda nft_reject_inet nf_reject_ipv4 snd_hda_ext_core nf_reject_ipv6 snd_soc_acpi_intel_match
kernel: nft_reject snd_soc_acpi lenovo_ymc kvm mac80211 nft_ct snd_soc_core snd_compress snd_pcm_dmaengine rapl soundwire_bus intel_cstate intel_rapl_msr snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec libarc4 snd_hda_core processor_thermal_device_pci think_lmi iTCO_wdt processor_thermal_device snd_hwdep intel_uncore cfg80211 snd_pcm wmi_bmof firmware_attributes_class nft_redir processor_thermal_wt_hint intel_pmc_bxt iTCO_vendor_support processor_thermal_rfim mei_me snd_timer processor_thermal_rapl watchdog snd intel_rapl_common mei ucsi_acpi soundcore processor_thermal_wt_req typec_ucsi processor_thermal_power_floor ideapad_laptop processor_thermal_mbox igen6_edac typec platform_profile roles int3403_thermal rfkill int340x_thermal_zone intel_pmc_core ac joydev intel_vsec nft_chain_nat pmt_telemetry nf_nat int3400_thermal acpi_tad intel_hid pmt_class acpi_pad acpi_thermal_rel sparse_keymap evdev nf_conntrack serio_raw nf_defrag_ipv6 nf_defrag_ipv4 pkcs8_key_parser coretemp msr ecryptfs i2c_dev
kernel: parport_pc ppdev nf_tables lp parport loop nvme_fabrics configfs efi_pstore nfnetlink ip_tables x_tables autofs4 btrfs blake2b_generic dm_crypt dm_mod efivarfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic raid1 raid0 md_mod i915 drm_buddy i2c_algo_bit drm_display_helper hid_multitouch cec crct10dif_pclmul hid_generic crc32_pclmul rc_core crc32c_intel sdhci_pci ghash_clmulni_intel i2c_hid_acpi ttm cqhci i2c_hid xhci_pci sha512_ssse3 xhci_hcd drm_kms_helper hid sdhci nvme sha256_ssse3 thunderbolt e1000e usbcore mmc_core sha1_ssse3 drm nvme_core i2c_i801 intel_lpss_pci intel_lpss i2c_smbus idma64 usb_common fan button video battery wmi pinctrl_meteorlake aesni_intel gf128mul crypto_simd cryptd
kernel: CPU: 1 UID: 0 PID: 28284 Comm: kworker/u57:66 Tainted: G U W 6.11.6-amd64 #1 Debian 6.11.6-1
kernel: Tainted: [U]=USER, [W]=WARN
kernel: Hardware name: LENOVO 21MR/LNVNB161216, BIOS P3CN38WW 05/30/2024
kernel: Workqueue: async async_run_entry_fn
kernel: RIP: 0010:drv_stop+0xfd/0x110 [mac80211]
kernel: Code: 48 85 c0 74 0e 48 8b 78 08 89 ea 48 89 de e8 5a 3b 05 00 65 ff 0d fb de 68 3e 0f 85 38 ff ff ff 0f 1f 44 00 00 e9 2e ff ff ff <0f> 0b 5b 5d c3 cc cc cc cc 66 2e 0f 1f 84 00 00 00 00 00 90 90 90
kernel: RSP: 0000:ffffb7528d38bbe8 EFLAGS: 00010246
kernel: RAX: 0000000000000000 RBX: ffff9d49f8300900 RCX: ffff9d49c4296468
kernel: RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff9d49f8300900
kernel: RBP: 0000000000000000 R08: ffffffff89ace6f0 R09: ffff9d49cac5e1b0
kernel: R10: ffff9d49f8301210 R11: 0000000000000246 R12: ffff9d49f8300900
kernel: R13: ffffb7528d38bc30 R14: ffffb7528d38bc30 R15: 0000000000000000
kernel: FS: 0000000000000000(0000) GS:ffff9d511fc80000(0000) knlGS:0000000000000000
kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: CR2: 0000000000000000 CR3: 0000000590c22001 CR4: 0000000000f70ef0
kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
kernel: DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
kernel: PKRU: 55555554
kernel: Call Trace:
kernel: <TASK>
kernel: ? drv_stop+0xfd/0x110 [mac80211]
kernel: ? __warn.cold+0x8e/0xe8
kernel: ? drv_stop+0xfd/0x110 [mac80211]
kernel: ? report_bug+0xff/0x140
kernel: ? handle_bug+0x3c/0x80
kernel: ? exc_invalid_op+0x17/0x70
kernel: ? asm_exc_invalid_op+0x1a/0x20
kernel: ? drv_stop+0xfd/0x110 [mac80211]
kernel: ? drv_stop+0x15/0x110 [mac80211]
kernel: ieee80211_do_stop+0x6a8/0x920 [mac80211]
kernel: ieee80211_stop+0x58/0x1a0 [mac80211]
kernel: __dev_close_many+0xaa/0x130
kernel: dev_close_many+0xb2/0x190
kernel: dev_close+0x93/0xc0
kernel: cfg80211_shutdown_all_interfaces+0x4d/0xf0 [cfg80211]
kernel: wiphy_resume+0xc1/0x1b0 [cfg80211]
kernel: ? __pfx_wiphy_resume+0x10/0x10 [cfg80211]
kernel: dpm_run_callback+0x47/0x150
kernel: device_resume+0x9c/0x210
kernel: async_resume+0x1d/0x30
kernel: async_run_entry_fn+0x31/0x130
kernel: process_one_work+0x174/0x330
kernel: worker_thread+0x252/0x390
kernel: ? __pfx_worker_thread+0x10/0x10
kernel: kthread+0xcf/0x100
kernel: ? __pfx_kthread+0x10/0x10
kernel: ret_from_fork+0x31/0x50
kernel: ? __pfx_kthread+0x10/0x10
kernel: ret_from_fork_asm+0x1a/0x30
kernel: </TASK>
kernel: ---[ end trace 0000000000000000 ]---
kernel: ieee80211 phy0: PM: dpm_run_callback(): wiphy_resume [cfg80211] returns -110
kernel: ieee80211 phy0: PM: failed to restore async: error -110
Errors on resume from suspend when unloading before both is applied:
kernel: rtw89_8852ce 0000:44:00.0: loaded firmware rtw89/rtw8852c_fw.bin
kernel: rtw89_8852ce 0000:44:00.0: Firmware version 0.27.56.14 (1942d927), cmd version 0, type 1
kernel: rtw89_8852ce 0000:44:00.0: Firmware version 0.27.56.14 (1942d927), cmd version 0, type 3
kernel: rtw89_8852ce 0000:44:00.0: xtal si not ready(W): offset=90 val=10 mask=10
kernel: rtw89_8852ce 0000:44:00.0: failed to setup chip information
kernel: rtw89_8852ce 0000:44:00.0: probe with driver rtw89_8852ce failed with error -110