aigilea / hp_spectre_x360_14_eu0xxx

Linux on HP Spectre X360 14-eu0000
GNU General Public License v2.0
36 stars 2 forks source link

WiFi after suspend on OpenSUSE #8

Open DaniJohni opened 2 months ago

DaniJohni commented 2 months ago

Hello. Thank you so much for this Github page, it is so helpful. I have the 16" Spectre x360 2024. I tried Ubuntu 24.04, and after the patch both Touchscreen and Trackpad work and the wifi card is still recognized after suspend. Sadly, not everything works when on OpenSUSE Tumbleweed. After applying the patch, Touchpad and Touchscreen work, but sadly the wifi doesn't work after suspend. When booting I get the following Error:

[0.155072][T1] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI .RHUB .HS10 ._UPC], AE_ALREADY_EXISTS (20230628/dswload2-326) [0.155084][T1] ACPI Error: AEALREADY EXISTS, During name lookup/catalog (20230628/psobject-220)

aigilea commented 2 months ago

This error message is not related. This could be because of table loading order, I've updated the ssdt overlay a few days ago to resolve a similar problem, are you using the latest version?

DaniJohni commented 2 months ago

I just compiled and replaced the .aml file, and it's still the same, are there any logs I could collect that could help? I don't know if that matters, but instead of using a helper script, on openSUSE I used YaST where we can set custom Kernel Command Line Parameters, there I put "acpi /boot/patch.aml" and then when I boot and press "e", that shows up behind the /boot line. But the issue persists if I deactivate that option in YaST and put it manually at each boot.

aigilea commented 2 months ago

You can boot with following kernel args: acpi.debug_layer=0x30 acpi.debug_level=0x880640 log_buf_len=512M dyndbg="file device_pm.c +p" then put your laptop to sleep, then wake it up and if wifi is missing save dmesg output (it will be huge), xz -9 it and then upload it somewhere.

In the meanwhile there're two other workarounds for the wifi, you can either boot with pcie_port_pm=off kernel arg or sudo echo "0" > "/sys/bus/pci/devices/0000:01:00.0/d3cold_allowed" after boot.

DaniJohni commented 2 months ago

Thanks so much for the help! Here is the dmesg output: https://drive.google.com/file/d/1HaIAOWy4UEmMjGlwLZcllB1kg11xIFhX/view?usp=sharing

And thanks for the quick fix, pcie_port_pm=off worked!

aigilea commented 2 months ago

Whoa it looks like ACPI device mapping is slightly different on 16 inch. Can you please also post lspci -tv output and sudo acpidump -b -n DSDT -z output file?

DaniJohni commented 2 months ago

Oh okay, yes sure, here is the output of lspci -tv:

-[0000:00]-+-00.0  Intel Corporation Device 7d01
           +-02.0  Intel Corporation Meteor Lake-P [Intel Arc Graphics]
           +-04.0  Intel Corporation Device 7d03
           +-05.0  Intel Corporation Device 7d19
           +-06.0-[01]----00.0  Intel Corporation Wi-Fi 7(802.11be) AX1775*/AX1790*/BE20*/BE401/BE1750* 2x2
           +-06.2-[02]----00.0  KIOXIA Corporation NVMe SSD Controller XG8
           +-07.0-[03-2c]--
           +-07.1-[2d-56]--
           +-08.0  Intel Corporation Device 7e4c
           +-0a.0  Intel Corporation Device 7d0d
           +-0b.0  Intel Corporation Meteor Lake NPU
           +-0d.0  Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller
           +-0d.2  Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0
           +-12.0  Intel Corporation Device 7e45
           +-14.0  Intel Corporation Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller
           +-14.2  Intel Corporation Device 7e7f
           +-15.0  Intel Corporation Meteor Lake-P Serial IO I2C Controller #0
           +-15.1  Intel Corporation Meteor Lake-P Serial IO I2C Controller #1
           +-15.3  Intel Corporation Meteor Lake-P Serial IO I2C Controller #3
           +-16.0  Intel Corporation Device 7e70
           +-19.0  Intel Corporation Meteor Lake-P Serial IO I2C Controller #4
           +-19.1  Intel Corporation Meteor Lake-P Serial IO I2C Controller #5
           +-1f.0  Intel Corporation Device 7e02
           +-1f.3  Intel Corporation Meteor Lake-P HD Audio Controller
           +-1f.4  Intel Corporation Meteor Lake-P SMBus Controller
           \-1f.5  Intel Corporation Meteor Lake-P SPI Controller

And here the "dsdt.dat" file: https://drive.google.com/file/d/1fECKfjbZsAI7xuBpxQ0oUdYhpEdbfYcV/view?usp=sharing

aigilea commented 2 months ago

So yeah, the port is the same (06.0) but it is bound to other ACPI device for some reason. Please try to change all occurrences of RP10 in the asl to RP09, recompile it and try to boot without pcie_port_pm workaround. Also please post the output of sudo dmidecode|grep Name and the BIOS version.

DaniJohni commented 2 months ago

That didn't work with changing to RP09, the Wi-Fi still is gone afters suspend, and it takes longer then normal to wake up from suspend with that changed. What I also noticed is that each time I reboot/shutdown the laptop after wifi is gone, I get this error, that also happens with RP10:

20240509_124704

The output of sudo dmidecode|grep Name is: Product Name: HP Spectre x360 2-in-1 Laptop 16-aa0xxx Product Name: 8C16 Name: FZ06083XL Firmware Component Name: TPM Firmware Name: $MEI Name: Firmware Version Info

And the BIOS version is F.10.

christian-bendiksen commented 2 months ago

Same issue here after updating firmware on HP spectre 14 x360

dmesg.txt journal.txt

Also see this message: fedora kernel: iwlwifi 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible

adelplace commented 2 months ago

Hi Same issue with the wifi here. I'm on the 16inch model, ubuntu 23.10 and kernel 6.8. I replaced all RP10 by RP09 in the asl and it's working fine :+1: Thank you