Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
Equinix is shutting down its operations with us on April 30, 2025. They have graciously supported us for almost 5 years, but all good things come to an end. We are expecting to transition to new infrastructure between late March and mid-April. We do not yet have a firm timeline for this, but it will involve (probably multiple) periods of downtime as we move our services whilst also changing them to be faster and more responsive. Any updates will be posted in freedesktop/freedesktop#2011 as it becomes clear, and any downtime will be announced with further broadcast messages.
Project 'drm/intel' was moved to 'drm/i915/kernel'. Please update any links and bookmarks that may still have the old path.
Patch 0fc6fea41c71 drm/i915: Disable DC states for all commits in 6.1.23 (cherry picked from commit 41b4c7fe72b6105a4b49395eea9aa40cef94288d) breaks modesetting on the GPD Pocket 3 [1], a Tigerlake i7-1195G7 Mini-Laptop.
With it applied, upon loading i915 it hangs hard. Hard enough to no longer react to SysRq or output anything via network. The screen goes black (with backlight switched on). The BIOS controlled keys (for keyboard backlight and fan control) still work. 10s power switch also.
With the patch reverted, the boot splash logo appears as it should, booting continues and life is good.
I could mention that in normal operation, I do see some ACPI and i915 kernel messages ...
[ 125.389352] i915 0000:00:02.0: [drm] *ERROR* Atomic update failure on pipe A (start=5905 end=5906) time 2 us, min 1908, max 1919, scanline start 1920, end 1921[ 714.623156] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PC00.LPCB.HEC.SEN4], AE_NOT_FOUND (20220331/psargs-330)[ 714.623173] Initialized Local Variables for Method [_QF1]:[ 714.623174] Local0: 000000009005eb78 <Obj> Integer 0000000000000008[ 714.623179] No Arguments are initialized for method [_QF1][ 714.623180] ACPI Error: Aborting method \_SB.PC00.LPCB.H_EC._QF1 due to previous error (AE_NOT_FOUND) (20220331/psparse-529)
Here's the boot log from a broken kernel. Took me some work to get the netconsole setup working (modprobe r8169; modprobe netconsole netconsole=...; sleep 5) in the initrd before the modesetting starts.
This one is missing the debug message, presumably because of bad console loglevel. Adding the ignore_loglevel knob to the kernel command line should help here.
Or netconsole could not transmit it b/f the kernel deadlocked?
Sorry, I had not seen the attach icon.
If there is value in producing a new log with the ignore_loglevel, I can do so.
@suresh_kurmi: I tested against drmtip and attached the dmesg (with the drm.debug=0xe option), see comment above.
Surprisingly, it works fine, unlike 6.1 with the backport.
I can only speculate some other fix contained in drmtip is needed for the backport to properly work. (This is HW dependent - another laptop Dell XPS 9370 works just fine.)
For the crashed kernel, there is no way to get to the card0/error file and there is no "GPU crash dump saved to /sys/class/drm/card0/error", see log messages above
As per the log the TGL laptop is using DSI/Mipi panel and do not have any relation with psr/dc5 state. Not sure the reason of backporting the specific patch - https://cgit.freedesktop.org/drm-tip/commit/?id=41b4c7fe72b6105a4b49395eea9aa40cef94288d.
This seems to me issue with backporting. Currently cannot locally reproduce the issue due to unavailability of panel.
As this apparently take a while: would backporting (EDIT after 4 weeks: I meant to write "reverting the backport" here; sorry for the confusion this caused) this in 6.1.y be a option, or would that cause regressions for other users?
I ran into this same problem with the GPD Micro PC on Debian 12 (which uses v6.1.x longterm). I then switched to testing with Linus's tree and linux-stable.
When booting the system on v6.1.23 or later v6.1.x series, the system performs a hardware hang on kernel modesetting. System power stays on. The display panel "washes out" over a few seconds from black to a gray colour bleed towards the center of the screen. The system doesn't respond to keypresses (like Ctrl+Alt+F1), doesn't respond over network, and must be forcibly powered off by holding the power button. It doesn't seem possible to collect the drm.debug you're requesting.
This bisects down to 0fc6fea41c71 introduced between v6.1.22 and v6.1.23 which was a backport of a2b6e99d8a62 from v6.3-rc5, which is 41b4c7fe72b6 from drm-tip mentioned above.
However, building at a2b6e99d8a62, v6.2, v6.3, and v6.4 all work fine.
So I also came to the conclusion that v6.1.x longterm is missing a dependent patch.
This won't reproduce on latest drm-tip, it's a regression in v6.1.x longterm.
As Animesh said, the issue is the backport. If you're not sure why that patch was even backported to v6.1.x longterm in the first place, then can it be reverted from that tree?
Intel i915 devs, let me ask again, as I apparently wrote something stupid in my earlier comment weeks ago: is reverting the backport of a2b6e99d8a62 in 6.1 likely to be save (IOW: is it unlikely to cause regressions for other users)
a pretty reliably source told me that applying b2e00dd378ee ("drm/i915: Use the AUX_IO power domain only for eDP/PSR port") to 6.1.y helps; could anyone affected try this to confirm?
If it is something to do with "PSR/DC5/DSI" (I am not sure what these terms mean) then we can narrow it down a fair bit:
linux]$ git log -S"PSR|psr|DC5|dc5|DSI|dsi" --pickaxe-regex --oneline v6.1..a2b6e99d8a62 drivers/gpu/drm/i915a2b6e99d8a62 drm/i915: Disable DC states for all commits4d4e766f8b7d drm/i915: Workaround ICL CSC_MODE sticky arminga8e03e00b620 drm/i915: Move CSC load back into .color_commit_arm() when PSR is enabled on skl/glk71c602103c74 drm/i915/psr: Use calculated io and fast wake lines14e591a1930c drm/i915: Populate encoder->devdata for DSI on icl+8f9f5fb94dbe drm/i915: Fix VBT DSI DVO port handling6a7ff131f17f drm/i915: Fix VBT DSI DVO port handlingacc855d30194 drm/i915/display: add intel_display_limits.h for key enums963bbdb32b47 drm/i915/dsi: add support for ICL+ native MIPI GPIO sequence084aab04cc60 drm/i915/psr: Add continuous full frame bit together with singlef087cfe6fcff drm/i915/dsi: add support for ICL+ native MIPI GPIO sequence2357f2b271ad drm/i915/mtl: Initial display workarounds637c7aa261ac drm/i915: Factor out function to get/put AUX_IO power for main linkb2e00dd378ee drm/i915: Use the AUX_IO power domain only for eDP/PSR portf46e3f5ffc0f drm/i915/psr: Remove inappropriate DSC slice alignment warningd755f89220a2 drm/i915/psr: Send update also on invalidate636123a8357f drm/i915/display: Add DC5 counter and DMC debugfs entries for MTL8cee664d3eb6 drm/i915: use proper helper for register updates8da8e32e0b09 drm/i915/psr: Fix PSR_IMR/IIR field handling319b0869f51c drm/i915: Remove PLL asserts from .load_luts()
6.1.y only has a few of these:
$ git log -S"PSR|psr|DC5|dc5|DSI|dsi" --pickaxe-regex --oneline v6.1..0fc6fea41c71 drivers/gpu/drm/i9150fc6fea41c71 drm/i915: Disable DC states for all commitsd586d58c3f2a drm/i915/psr: Use calculated io and fast wake lines783c225e910f drm/i915: Populate encoder->devdata for DSI on icl+7fa83855852e drm/i915: Fix VBT DSI DVO port handlingc7229577d93d drm/i915/dsi: add support for ICL+ native MIPI GPIO sequence
Removing those, that leaves us with a difference of:
4d4e766f8b7d drm/i915: Workaround ICL CSC_MODE sticky arminga8e03e00b620 drm/i915: Move CSC load back into .color_commit_arm() when PSR is enabled on skl/glkacc855d30194 drm/i915/display: add intel_display_limits.h for key enums084aab04cc60 drm/i915/psr: Add continuous full frame bit together with single2357f2b271ad drm/i915/mtl: Initial display workarounds637c7aa261ac drm/i915: Factor out function to get/put AUX_IO power for main linkb2e00dd378ee drm/i915: Use the AUX_IO power domain only for eDP/PSR portf46e3f5ffc0f drm/i915/psr: Remove inappropriate DSC slice alignment warningd755f89220a2 drm/i915/psr: Send update also on invalidate636123a8357f drm/i915/display: Add DC5 counter and DMC debugfs entries for MTL8cee664d3eb6 drm/i915: use proper helper for register updates8da8e32e0b09 drm/i915/psr: Fix PSR_IMR/IIR field handling319b0869f51c drm/i915: Remove PLL asserts from .load_luts()
Intel devs, do any of these last block of commits from Linus' tree look like they might resolve this?
Or do they at least look safe for me to try without frying my hardware?