# [solved] Resume from suspend fails; HP ZBook 15 G3

## Joseph K.

I had been using a ZBook 15 (1st generation) for a while, so I upgraded to a G3, simply swapping the HDD in and changing a few settings.

Sadly, although the system suspends, it resumes into a hung state.

I haven't tried to debug a problem like this since pm-utils and quirks, but now I'm using sys-power/suspend.

I tried s2ram --nofbsuspend but I didn't see anything for it.

How do I start to debug a failed resume these days?

This system is more or less identical to the previous one except for more modern components:

```
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 07)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)

00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)

00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)

00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)

00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)

00:1c.1 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #2 (rev f1)

00:1c.4 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 (rev f1)

00:1f.0 ISA bridge: Intel Corporation CM236 Chipset LPC/eSPI Controller (rev 31)

00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)

00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)

00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)

01:00.0 VGA compatible controller: NVIDIA Corporation GM107GLM [Quadro M2000M] (rev a2)

01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)

02:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)

```

This machine is not in the s2ram databse -- is that typical or exceptional?

```
EliteChook2 /var/log # s2ram -n

Machine unknown

This machine can be identified by:

    sys_vendor   = ""

    sys_product  = ""

    sys_version  = ""

    bios_version = ""

```

I don't have the NVIDIA driver installed at the moment because that is another issue altogether, I haven't got it to work yet. But could that be the cause of the failed resume? I never used the NVIDIA graphics on the older machine but I'm interested in getting it to work with this one.

Anyway, that's just my only lead at the moment for what might be causing the resume failure.

Thanks for any leads or assistance, cheers.

Jeremy

PS. Windows 10 is also installed, and resume works fine there.Last edited by Joseph K. on Sun Apr 25, 2021 11:10 am; edited 2 times in total

----------

## Joseph K.

I found a good blog post from Intel's opensource lab here: https://01.org/blogs/rzhang/2015/best-practice-debug-linux-suspend/hibernate-issues

So I have been trying to use the Magic number deubg information with some results but I'm not sure that it's successful.

First trace was this:

```
[    5.208970] PM:   Magic number: 8:194:279

[    5.209244] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input13

[    5.210098] usb usb1-port7: hash matches

[    5.211792] event_source tracepoint: hash matches

[    5.212646] tty tty16: hash matches

```

Next trace I accidentally lost but it was different. Third trace was this:

```
[    6.227921] PM:   Magic number: 8:493:187

[    6.228008] snd_hda_codec_conexant hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)

[    6.228900] thermal LNXTHERM:03: hash matches

[    6.229660] snd_hda_codec_conexant hdaudioC0D0:    hp_outs=1 (0x16/0x0/0x0/0x0/0x0)

[    6.230493] acpi device:46: hash matches

```

Do these inconsistent results even make sense?

----------

## Joseph K.

Btw, I'm now on the 5.9.x series kernel, same issue.

In case it's relevant, there is one ACPI Bios Error reported in dmesg:

```
[    0.157134] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [CAP1] at bit offset/length 64/32 exceeds size of target Buffer (64 bits) (20200717/dsopcode-198)

[    0.157138] ACPI Error: Aborting method \_SB._OSC due to previous error (AE_AML_BUFFER_LIMIT) (20200717/psparse-529)

```

----------

## Joseph K.

kernel 5.10.20, I have added initcall_debug to the kernel command-line. If I grep for errors after boot, I see this:

```
[    0.154664] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [CAP1] at bit offset/length 64/32 exceeds size of target Buffer (64 bits) (20200925/dsopcode-198)

[    0.154669] ACPI Error: Aborting method \_SB._OSC due to previous error (AE_AML_BUFFER_LIMIT) (20200925/psparse-529)

[    6.223411] hp_wmi: query 0x4 returned error 0x5

[    6.225306] hp_wmi: query 0xd returned error 0x5

[    6.229406] hp_wmi: query 0x1b returned error 0x5

```

I think the hp_wmi errors have been around for a while.

Edit: I fixed the direct firmware loading errors, so I removed them.Last edited by Joseph K. on Sat Mar 06, 2021 2:33 am; edited 1 time in total

----------

## Joseph K.

```
dmesg |grep "returned [^0]"

[    0.126199] initcall pcc_init+0x0/0x4f returned -19 after 0 usecs

[    0.126199] initcall bts_init+0x0/0xb6 returned -19 after 0 usecs

[    3.349455] initcall amd_uncore_init+0x0/0x30d returned -19 after 0 usecs

[    3.349457] initcall amd_ibs_init+0x0/0x1dc returned -19 after 0 usecs

[    3.349771] initcall i8237A_init_ops+0x0/0x32 returned -19 after 2 usecs

[    3.349774] initcall umwait_init+0x0/0x8c returned -19 after 0 usecs

[    3.396990] initcall ghes_init+0x0/0xe0 returned -19 after 0 usecs

[    3.398141] initcall mod_init+0x0/0x1d9 returned -19 after 29 usecs

[    4.808281] initcall sbridge_init+0x0/0x17a3 returned -19 after 0 usecs

[    6.223411] hp_wmi: query 0x4 returned error 0x5

[    6.225306] hp_wmi: query 0xd returned error 0x5

[    6.229406] hp_wmi: query 0x1b returned error 0x5

[    6.232290] initcall pmc_core_platform_init+0x0/0x8c returned -19 after 32 usecs

[    6.232311] initcall pmc_atom_init+0x0/0x27a returned -19 after 2 usecs

[    6.276458] initcall itmt_legacy_init+0x0/0x47 returned -19 after 0 usecs

```

----------

## halcon

Hi Joseph K.,

Unfortunately, I can't help you with further debugging of your dmesg. Haven't you tried alternate suspend methods that would let you to "narrow the field"? Like trying to use:

- an alternate suspend tool (pm-tools or others)

- another kernel .config (genkernel's one, for example)

- hibernate instead of suspend.

Also, have you looked at logs of other facilities (besides kernel)? There could be some missing pieces of information...

----------

## Joseph K.

 *halcon wrote:*   

> Hi Joseph K.,
> 
> Unfortunately, I can't help you with further debugging of your dmesg. Haven't you tried alternate suspend methods that would let you to "narrow the field"? Like trying to use:
> 
> - an alternate suspend tool (pm-tools or others)
> ...

 

I tried genkernel out of the box without any customization, AND IT WORKED!!! HALLELUJAH!

I'll mark this as closed shortly, but if I find time I'll post what the crucial difference was.

Cheers.

----------

