coreboot-kgpe-d16/Documentation/gfx/display-panel.md

2.8 KiB

Display Panel Specifics

Timing Parameters

From the binary file edid in the sys filesystem on Linux, the panel can be identified. The exact path may differ slightly. Here is an example:

$ strings /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/edid
@0 5
LG Display
LP140WF3-SPD1

To figure out the timing parameters, refer to the Intel Programmer's Reference Manuals and try to find the datasheet of the panel using the information from edid. In the example above, you would search for LP140WF3-SPD1. Find a table listing the power sequence timing parameters, which are usually named T[N] and also referenced in Intel's respective registers listing. You need the values for PP_ON_DELAYS, PP_OFF_DELAYS and PP_DIVISOR for your devicetree.cb:

+-----------------------------+---------------------------------------+-----+
| Intel docs                  | devicetree.cb                         | eDP |
+-----------------------------+---------------------------------------+-----+
| Power up delay              | `gpu_panel_power_up_delay`            | T3  |
+-----------------------------+---------------------------------------+-----+
| Power on to backlight on    | `gpu_panel_power_backlight_on_delay`  | T7  |
+-----------------------------+---------------------------------------+-----+
| Power Down delay            | `gpu_panel_power_down_delay`          | T10 |
+-----------------------------+---------------------------------------+-----+
| Backlight off to power down | `gpu_panel_power_backlight_off_delay` | T9  |
+-----------------------------+---------------------------------------+-----+
| Power Cycle Delay           | `gpu_panel_power_cycle_delay`         | T12 |
+-----------------------------+---------------------------------------+-----+

Intel GPU Tools and VBT

The Intel GPU tools are in a package called either intel-gpu-tools or igt-gpu-tools in most distributions of Linux-based operating systems. In the coreboot util/ directory, you can find intelvbttool.

From a running system, you can dump the register values directly:

$ intel_reg dump --all | grep PCH_PP
                      PCH_PP_STATUS (0x000c7200): 0x80000008
                     PCH_PP_CONTROL (0x000c7204): 0x00000007
                   PCH_PP_ON_DELAYS (0x000c7208): 0x07d00001
                  PCH_PP_OFF_DELAYS (0x000c720c): 0x01f40001
                     PCH_PP_DIVISOR (0x000c7210): 0x0004af06

You can obtain the timing values from a VBT (Video BIOS Table), which you can dump from a vendor UEFI image:

$ intel_vbt_decode data.vbt | grep T3
                Power Sequence: T3 2000 T7 10 T9 2000 T10 500 T12 5000
                T3 optimization: no