#1087623 linux-image-6.11.7-amd64: WLAN device disappears after resume from suspend or hibernation (RTL8852CE PCIe, rtw89_8852ce)

Package:
src:linux
Source:
src:linux
Submitter:
Vladimir K
Date:
2024-11-16 12:45:02 UTC
Severity:
normal
Tags:
#1087623#5
Date:
2024-11-16 12:41:29 UTC
From:
To:
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