You are not logged in.

#1 2023-03-10 14:29:55

wang1zhen
Member
Registered: 2023-03-10
Posts: 1

Is freeze after wake from suspend with Alder Lake-P problem solved?

I am running on a HP Zbook G9 with Alder Lake CPU and have updated my bios to the latest version (via the HP support website in windows).

However, even with the kernel 6.1.15, Freeze after wake from sleep/suspend with Alder Lake-P persists, and I have checked with fwupd, only showing UEFI dbx that could be updted.

According to the wiki, "As of 25-Sep-2022, this has been fixed with a recent firmware update from fwupd. For others with no BIOS-fix, there is likely an upcoming fix in the kernel", however it seems that there has been no fix to this.

Any help?

Offline

#2 2023-03-10 15:54:55

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,743

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

6.1.15 is not the latest kernel, have you tried 6.2.2?

Offline

#3 2023-03-12 15:02:20

frostbittenking
Member
Registered: 2013-05-01
Posts: 52

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

Nope, it's not fixed in 6.2.2. Unfortunately, the supposed alderlake-p kernel patch doesn't work for my device, for some odd reason. Compiled a kernel with the patch yesterday and it still shows the typical freeze symptom after waking up from suspend to ram.
I don't know how but I have tested suspend to ram over 30 times. Probably hitting 50. In two cases, the tuxedo notebook woke up repeatedly from sleep. I don't know how. Tested all combinations, like removing the tuxedo modules and what not, but I couldn't repeat the condition that it worked.
It sucks that suspend-to-ram doesn't work, cause I use it all the time for my working notebook.

Offline

#4 2023-04-29 11:28:19

TulcasAnathar
Member
Registered: 2023-04-29
Posts: 1

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

Me too still have problem with suspend/resume on HP Zbook G9 with Alder Lake CPU

Offline

#5 2024-01-11 01:00:23

Algernop
Member
Registered: 2014-01-17
Posts: 28

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

I was struggling with this a few days ago as well, so I figured I'd share my line of reasoning in fixing this. With the recent update to the 6.7 kernel, the suggested patch in Freeze after wake from suspending with Alder-Lake-P stops working anyway because of a revision of i915's code. Moreover, this patch works under the assumption that "port B" is in deed the offending item that is produced from a bogus VBT.

Using my spectre x360 as an example, which is also affected by a VBT that was not update in a bios-fix, a good starting point is to take a look at the actual VBT table using  intel_vbt_decode. This will show the screens the VBT defines.

sudo intel_vbt_decode /sys/kernel/debug/dri/1/i915_vbt

For the spectre it shows a duplicate eDP screen (these are listed as child devices), which the source of the suspend trouble. So for different machines, this could well be a different entry. Or perhaps even multiple, I don't know the scope of this issue.

intel_bios.c shows how these entries are processed in order. So offending entries can be skipped by excluding them from ever making it to i915_display by patching intel_bios.c to just skip the desired entries, in my case this is second entry. The reasoning for patching intel_bios over intel_display is that intel_display seems to be more prone to changing.

--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -3632,6 +3624,14 @@
 {
        struct intel_bios_encoder_data *devdata;
 
+       int nnn = 0;
+
        list_for_each_entry(devdata, &i915->display.vbt.display_devices, node)
-               func(i915, devdata);
+       {
+               if (nnn != 1)
+               {
+                       func(i915, devdata);
+                       nnn++;
+               }
+       }
 }

This makes the spectre come out of suspend. It's possible there could be multiple bogus entries in the VBT, so you might need to throw in an or. This will probably not work verbatim, since it's effectively a drop in replacement for the original intel_display.c patch from Freeze after wake from suspending with Alder-Lake-P :

drivers/gpu/drm/i915/display/intel_display.c.patch
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8835,7 +8835,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
                intel_ddi_init(dev_priv, PORT_TC1);
        } else if (IS_ALDERLAKE_P(dev_priv)) {
                intel_ddi_init(dev_priv, PORT_A);
-               intel_ddi_init(dev_priv, PORT_B);
+               // intel_ddi_init(dev_priv, PORT_B);
                intel_ddi_init(dev_priv, PORT_TC1);
                intel_ddi_init(dev_priv, PORT_TC2);
                intel_ddi_init(dev_priv, PORT_TC3);

Offline

#6 2024-03-10 11:20:37

Venomguard
Member
Registered: 2024-03-10
Posts: 1

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

I've been waiting for someone to make a new patch for months. And yes it really worked, thank you so much for sharing.

Offline

#7 2024-03-10 11:35:57

Algernop
Member
Registered: 2014-01-17
Posts: 28

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

You're welcome! I'm also glad at least one other user has tested this now, I announced the article rewrite in the wiki talk, so I guess I'll update the wiki in a bit.

Offline

#8 2024-03-17 11:44:42

smhd001
Member
Registered: 2024-02-07
Posts: 1

Re: Is freeze after wake from suspend with Alder Lake-P problem solved?

Algernop's patch worked for me too.
thank you a lot for this patch.

Offline

Board footer

Powered by FluxBB