* [PATCH v2 0/2] drm/display: HDMI documentation improvements
@ 2025-03-12 13:39 Maxime Ripard
2025-03-12 13:39 ` [PATCH v2 1/2] drm/display: hdmi: Create documentation section Maxime Ripard
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Maxime Ripard @ 2025-03-12 13:39 UTC (permalink / raw)
To: David Airlie, Simona Vetter, Maarten Lankhorst,
Thomas Zimmermann, Jonathan Corbet
Cc: dri-devel, linux-doc, linux-kernel, Maxime Ripard, Hans Verkuil
Hi,
These patches improve the HDMI infrastructure documentation, in
particular to mention that edid-decode can help debug and check
infoframes issues.
Let me know what you think,
Maxime
Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Changes in v2:
- Put a link to the v4l-utils repo
- Used a newer edid-decode version
- Link to v1: https://lore.kernel.org/r/20250306-drm-hdmi-state-docs-v1-0-56a19d3805a1@kernel.org
---
Maxime Ripard (2):
drm/display: hdmi: Create documentation section
drm/display: hdmi: Mention Infoframes testing with edid-decode
Documentation/gpu/drm-kms-helpers.rst | 15 ++
drivers/gpu/drm/display/drm_hdmi_state_helper.c | 292 ++++++++++++++++++++++++
2 files changed, 307 insertions(+)
---
base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6
change-id: 20250306-drm-hdmi-state-docs-89703b124bbf
Best regards,
--
Maxime Ripard <mripard@kernel.org>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v2 1/2] drm/display: hdmi: Create documentation section 2025-03-12 13:39 [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard @ 2025-03-12 13:39 ` Maxime Ripard 2025-03-12 17:47 ` Dmitry Baryshkov 2025-03-12 13:39 ` [PATCH v2 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard 2025-03-14 8:23 ` [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard 2 siblings, 1 reply; 6+ messages in thread From: Maxime Ripard @ 2025-03-12 13:39 UTC (permalink / raw) To: David Airlie, Simona Vetter, Maarten Lankhorst, Thomas Zimmermann, Jonathan Corbet Cc: dri-devel, linux-doc, linux-kernel, Maxime Ripard We have had documentation for the public functions in the HDMI helpers, but those were never referenced anywhere and thus not compiled as part of the doc. Let's add a section. Signed-off-by: Maxime Ripard <mripard@kernel.org> --- Documentation/gpu/drm-kms-helpers.rst | 15 +++++++++++++++ drivers/gpu/drm/display/drm_hdmi_state_helper.c | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/Documentation/gpu/drm-kms-helpers.rst b/Documentation/gpu/drm-kms-helpers.rst index b4ee25af1702b0019e0de5f9ee66d2dbdac2c664..5139705089f200b189876a5a61bf2a935cec433a 100644 --- a/Documentation/gpu/drm-kms-helpers.rst +++ b/Documentation/gpu/drm-kms-helpers.rst @@ -231,10 +231,25 @@ Panel Self Refresh Helper Reference :doc: overview .. kernel-doc:: drivers/gpu/drm/drm_self_refresh_helper.c :export: +HDMI Atomic State Helpers +========================= + +Overview +-------- + +.. kernel-doc:: drivers/gpu/drm/display/drm_hdmi_state_helper.c + :doc: hdmi helpers + +Functions Reference +------------------- + +.. kernel-doc:: drivers/gpu/drm/display/drm_hdmi_state_helper.c + :export: + HDCP Helper Functions Reference =============================== .. kernel-doc:: drivers/gpu/drm/display/drm_hdcp_helper.c :export: diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c index 9b2ee2385634303ab84bdd3a457770cfe32647cf..24bfc82bf9b02bf3201d97432e3c239ccc8714b4 100644 --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c @@ -7,10 +7,31 @@ #include <drm/display/drm_hdmi_audio_helper.h> #include <drm/display/drm_hdmi_helper.h> #include <drm/display/drm_hdmi_state_helper.h> +/** + * DOC: hdmi helpers + * + * These functions contain an implementation of the HDMI specification + * in the form of KMS helpers. + * + * It contains TMDS character rate computation, automatic selection of + * output formats, infoframes generation, etc. + * + * Testing + * ~~~~~~~ + * + * The helpers have unit testing and can be tested using kunit with: + * + * .. code-block:: bash + * + * $ ./tools/testing/kunit/kunit.py run \ + * --kunitconfig=drivers/gpu/drm/tests \ + * drm_atomic_helper_connector_hdmi_* + */ + /** * __drm_atomic_helper_connector_hdmi_reset() - Initializes all HDMI @drm_connector_state resources * @connector: DRM connector * @new_conn_state: connector state to reset * -- 2.48.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] drm/display: hdmi: Create documentation section 2025-03-12 13:39 ` [PATCH v2 1/2] drm/display: hdmi: Create documentation section Maxime Ripard @ 2025-03-12 17:47 ` Dmitry Baryshkov 0 siblings, 0 replies; 6+ messages in thread From: Dmitry Baryshkov @ 2025-03-12 17:47 UTC (permalink / raw) To: Maxime Ripard Cc: David Airlie, Simona Vetter, Maarten Lankhorst, Thomas Zimmermann, Jonathan Corbet, dri-devel, linux-doc, linux-kernel On Wed, Mar 12, 2025 at 02:39:16PM +0100, Maxime Ripard wrote: > We have had documentation for the public functions in the HDMI helpers, > but those were never referenced anywhere and thus not compiled as part > of the doc. > > Let's add a section. > > Signed-off-by: Maxime Ripard <mripard@kernel.org> > --- > Documentation/gpu/drm-kms-helpers.rst | 15 +++++++++++++++ > drivers/gpu/drm/display/drm_hdmi_state_helper.c | 21 +++++++++++++++++++++ > 2 files changed, 36 insertions(+) > Reviewed-by: Dmitry Baryshkov <lumag@kernel.org> -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode 2025-03-12 13:39 [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard 2025-03-12 13:39 ` [PATCH v2 1/2] drm/display: hdmi: Create documentation section Maxime Ripard @ 2025-03-12 13:39 ` Maxime Ripard 2025-03-13 18:42 ` Hans Verkuil 2025-03-14 8:23 ` [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard 2 siblings, 1 reply; 6+ messages in thread From: Maxime Ripard @ 2025-03-12 13:39 UTC (permalink / raw) To: David Airlie, Simona Vetter, Maarten Lankhorst, Thomas Zimmermann, Jonathan Corbet Cc: dri-devel, linux-doc, linux-kernel, Maxime Ripard, Hans Verkuil edid-decode gained recently support to check that infoframes are compliant and match the EDID the monitor exposes. Since the HDMI helpers provide those infoframes in debugfs, it makes it easy to check from userspace that the drivers (and helpers) behave properly. Let's document it. Cc: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Maxime Ripard <mripard@kernel.org> --- drivers/gpu/drm/display/drm_hdmi_state_helper.c | 271 ++++++++++++++++++++++++ 1 file changed, 271 insertions(+) diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c index 24bfc82bf9b02bf3201d97432e3c239ccc8714b4..4df3d25529071e8e822f1fe00fb22c90860ec97b 100644 --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c @@ -16,10 +16,281 @@ * in the form of KMS helpers. * * It contains TMDS character rate computation, automatic selection of * output formats, infoframes generation, etc. * + * Infoframes Compliance + * ~~~~~~~~~~~~~~~~~~~~~ + * + * Drivers using the helpers will expose the various infoframes + * generated according to the HDMI specification in debugfs. + * + * Compliance can then be tested using ``edid-decode`` from the ``v4l-utils`` project + * (https://git.linuxtv.org/v4l-utils.git/). A sample run would look like: + * + * .. code-block:: bash + * + * # edid-decode \ + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/audio \ + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/avi \ + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/hdmi \ + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/hdr_drm \ + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/spd \ + * /sys/class/drm/card1-HDMI-A-1/edid \ + * -c + * + * edid-decode (hex): + * + * 00 ff ff ff ff ff ff 00 1e 6d f4 5b 1e ef 06 00 + * 07 20 01 03 80 2f 34 78 ea 24 05 af 4f 42 ab 25 + * 0f 50 54 21 08 00 d1 c0 61 40 45 40 01 01 01 01 + * 01 01 01 01 01 01 98 d0 00 40 a1 40 d4 b0 30 20 + * 3a 00 d1 0b 12 00 00 1a 00 00 00 fd 00 3b 3d 1e + * b2 31 00 0a 20 20 20 20 20 20 00 00 00 fc 00 4c + * 47 20 53 44 51 48 44 0a 20 20 20 20 00 00 00 ff + * 00 32 30 37 4e 54 52 4c 44 43 34 33 30 0a 01 46 + * + * 02 03 42 72 23 09 07 07 4d 01 03 04 90 12 13 1f + * 22 5d 5e 5f 60 61 83 01 00 00 6d 03 0c 00 10 00 + * b8 3c 20 00 60 01 02 03 67 d8 5d c4 01 78 80 03 + * e3 0f 00 18 e2 00 6a e3 05 c0 00 e6 06 05 01 52 + * 52 51 11 5d 00 a0 a0 40 29 b0 30 20 3a 00 d1 0b + * 12 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 + * 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + * 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c3 + * + * ---------------- + * + * Block 0, Base EDID: + * EDID Structure Version & Revision: 1.3 + * Vendor & Product Identification: + * Manufacturer: GSM + * Model: 23540 + * Serial Number: 454430 (0x0006ef1e) + * Made in: week 7 of 2022 + * Basic Display Parameters & Features: + * Digital display + * Maximum image size: 47 cm x 52 cm + * Gamma: 2.20 + * DPMS levels: Standby Suspend Off + * RGB color display + * First detailed timing is the preferred timing + * Color Characteristics: + * Red : 0.6835, 0.3105 + * Green: 0.2587, 0.6679 + * Blue : 0.1445, 0.0585 + * White: 0.3134, 0.3291 + * Established Timings I & II: + * DMT 0x04: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz + * DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz + * DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz + * Standard Timings: + * DMT 0x52: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz + * DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz + * DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz + * Detailed Timing Descriptors: + * DTD 1: 2560x2880 59.966580 Hz 8:9 185.417 kHz 534.000000 MHz (465 mm x 523 mm) + * Hfront 48 Hsync 32 Hback 240 Hpol P + * Vfront 3 Vsync 10 Vback 199 Vpol N + * Display Range Limits: + * Monitor ranges (GTF): 59-61 Hz V, 30-178 kHz H, max dotclock 490 MHz + * Display Product Name: 'LG SDQHD' + * Display Product Serial Number: '207NTRLDC430' + * Extension blocks: 1 + * Checksum: 0x46 + * + * ---------------- + * + * Block 1, CTA-861 Extension Block: + * Revision: 3 + * Basic audio support + * Supports YCbCr 4:4:4 + * Supports YCbCr 4:2:2 + * Native detailed modes: 2 + * Audio Data Block: + * Linear PCM: + * Max channels: 2 + * Supported sample rates (kHz): 48 44.1 32 + * Supported sample sizes (bits): 24 20 16 + * Video Data Block: + * VIC 1: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz + * VIC 3: 720x480 59.940060 Hz 16:9 31.469 kHz 27.000000 MHz + * VIC 4: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz + * VIC 16: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz (native) + * VIC 18: 720x576 50.000000 Hz 16:9 31.250 kHz 27.000000 MHz + * VIC 19: 1280x720 50.000000 Hz 16:9 37.500 kHz 74.250000 MHz + * VIC 31: 1920x1080 50.000000 Hz 16:9 56.250 kHz 148.500000 MHz + * VIC 34: 1920x1080 30.000000 Hz 16:9 33.750 kHz 74.250000 MHz + * VIC 93: 3840x2160 24.000000 Hz 16:9 54.000 kHz 297.000000 MHz + * VIC 94: 3840x2160 25.000000 Hz 16:9 56.250 kHz 297.000000 MHz + * VIC 95: 3840x2160 30.000000 Hz 16:9 67.500 kHz 297.000000 MHz + * VIC 96: 3840x2160 50.000000 Hz 16:9 112.500 kHz 594.000000 MHz + * VIC 97: 3840x2160 60.000000 Hz 16:9 135.000 kHz 594.000000 MHz + * Speaker Allocation Data Block: + * FL/FR - Front Left/Right + * Vendor-Specific Data Block (HDMI), OUI 00-0C-03: + * Source physical address: 1.0.0.0 + * Supports_AI + * DC_36bit + * DC_30bit + * DC_Y444 + * Maximum TMDS clock: 300 MHz + * Extended HDMI video details: + * HDMI VICs: + * HDMI VIC 1: 3840x2160 30.000000 Hz 16:9 67.500 kHz 297.000000 MHz + * HDMI VIC 2: 3840x2160 25.000000 Hz 16:9 56.250 kHz 297.000000 MHz + * HDMI VIC 3: 3840x2160 24.000000 Hz 16:9 54.000 kHz 297.000000 MHz + * Vendor-Specific Data Block (HDMI Forum), OUI C4-5D-D8: + * Version: 1 + * Maximum TMDS Character Rate: 600 MHz + * SCDC Present + * Supports 12-bits/component Deep Color 4:2:0 Pixel Encoding + * Supports 10-bits/component Deep Color 4:2:0 Pixel Encoding + * YCbCr 4:2:0 Capability Map Data Block: + * VIC 96: 3840x2160 50.000000 Hz 16:9 112.500 kHz 594.000000 MHz + * VIC 97: 3840x2160 60.000000 Hz 16:9 135.000 kHz 594.000000 MHz + * Video Capability Data Block: + * YCbCr quantization: No Data + * RGB quantization: Selectable (via AVI Q) + * PT scan behavior: Always Underscanned + * IT scan behavior: Always Underscanned + * CE scan behavior: Always Underscanned + * Colorimetry Data Block: + * BT2020YCC + * BT2020RGB + * HDR Static Metadata Data Block: + * Electro optical transfer functions: + * Traditional gamma - SDR luminance range + * SMPTE ST2084 + * Supported static metadata descriptors: + * Static metadata type 1 + * Desired content max luminance: 82 (295.365 cd/m^2) + * Desired content max frame-average luminance: 82 (295.365 cd/m^2) + * Desired content min luminance: 81 (0.298 cd/m^2) + * Detailed Timing Descriptors: + * DTD 2: 2560x2880 29.986961 Hz 8:9 87.592 kHz 238.250000 MHz (465 mm x 523 mm) + * Hfront 48 Hsync 32 Hback 80 Hpol P + * Vfront 3 Vsync 10 Vback 28 Vpol N + * Checksum: 0xc3 Unused space in Extension Block: 43 bytes + * + * ---------------- + * + * edid-decode 1.29.0-5346 + * edid-decode SHA: c363e9aa6d70 2025-03-11 11:41:18 + * + * Warnings: + * + * Block 1, CTA-861 Extension Block: + * IT Video Formats are overscanned by default, but normally this should be underscanned. + * Video Data Block: VIC 1 and the first DTD are not identical. Is this intended? + * Video Data Block: All VICs are in ascending order, and the first (preferred) VIC <= 4, is that intended? + * Video Capability Data Block: Set Selectable YCbCr Quantization to avoid interop issues. + * Video Capability Data Block: S_PT is equal to S_IT and S_CE, so should be set to 0 instead. + * Colorimetry Data Block: Set the sRGB colorimetry bit to avoid interop issues. + * Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0. + * EDID: + * Base EDID: Some timings are out of range of the Monitor Ranges: + * Vertical Freq: 24.000 - 60.317 Hz (Monitor: 59.000 - 61.000 Hz) + * Horizontal Freq: 31.250 - 185.416 kHz (Monitor: 30.000 - 178.000 kHz) + * Maximum Clock: 594.000 MHz (Monitor: 490.000 MHz) + * + * Failures: + * + * Block 1, CTA-861 Extension Block: + * Video Capability Data Block: IT video formats are always underscanned, but bit 7 of Byte 3 of the CTA-861 Extension header is set to overscanned. + * EDID: + * CTA-861: Native progressive timings are a mix of several resolutions. + * + * EDID conformity: FAIL + * + * ================ + * + * InfoFrame of '/sys/kernel/debug/dri/1/HDMI-A-1/infoframes/audio' was empty. + * + * ================ + * + * edid-decode InfoFrame (hex): + * + * 82 02 0d 31 12 28 04 00 00 00 00 00 00 00 00 00 + * 00 + * + * ---------------- + * + * HDMI InfoFrame Checksum: 0x31 + * + * AVI InfoFrame + * Version: 2 + * Length: 13 + * Y: Color Component Sample Format: RGB + * A: Active Format Information Present: Yes + * B: Bar Data Present: Bar Data not present + * S: Scan Information: Composed for an underscanned display + * C: Colorimetry: No Data + * M: Picture Aspect Ratio: 16:9 + * R: Active Portion Aspect Ratio: 8 + * ITC: IT Content: No Data + * EC: Extended Colorimetry: xvYCC601 + * Q: RGB Quantization Range: Limited Range + * SC: Non-Uniform Picture Scaling: No Known non-uniform scaling + * YQ: YCC Quantization Range: Limited Range + * CN: IT Content Type: Graphics + * PR: Pixel Data Repetition Count: 0 + * Line Number of End of Top Bar: 0 + * Line Number of Start of Bottom Bar: 0 + * Pixel Number of End of Left Bar: 0 + * Pixel Number of Start of Right Bar: 0 + * + * ---------------- + * + * AVI InfoFrame conformity: PASS + * + * ================ + * + * edid-decode InfoFrame (hex): + * + * 81 01 05 49 03 0c 00 20 01 + * + * ---------------- + * + * HDMI InfoFrame Checksum: 0x49 + * + * Vendor-Specific InfoFrame (HDMI), OUI 00-0C-03 + * Version: 1 + * Length: 5 + * HDMI Video Format: HDMI_VIC is present + * HDMI VIC 1: 3840x2160 30.000000 Hz 16:9 67.500 kHz 297.000000 MHz + * + * ---------------- + * + * Vendor-Specific InfoFrame (HDMI), OUI 00-0C-03 conformity: PASS + * + * ================ + * + * InfoFrame of '/sys/kernel/debug/dri/1/HDMI-A-1/infoframes/hdr_drm' was empty. + * + * ================ + * + * edid-decode InfoFrame (hex): + * + * 83 01 19 93 42 72 6f 61 64 63 6f 6d 56 69 64 65 + * 6f 63 6f 72 65 00 00 00 00 00 00 00 09 + * + * ---------------- + * + * HDMI InfoFrame Checksum: 0x93 + * + * Source Product Description InfoFrame + * Version: 1 + * Length: 25 + * Vendor Name: 'Broadcom' + * Product Description: 'Videocore' + * Source Information: PC general + * + * ---------------- + * + * Source Product Description InfoFrame conformity: PASS + * * Testing * ~~~~~~~ * * The helpers have unit testing and can be tested using kunit with: * -- 2.48.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode 2025-03-12 13:39 ` [PATCH v2 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard @ 2025-03-13 18:42 ` Hans Verkuil 0 siblings, 0 replies; 6+ messages in thread From: Hans Verkuil @ 2025-03-13 18:42 UTC (permalink / raw) To: Maxime Ripard, David Airlie, Simona Vetter, Maarten Lankhorst, Thomas Zimmermann, Jonathan Corbet Cc: dri-devel, linux-doc, linux-kernel On 12/03/2025 14:39, Maxime Ripard wrote: > edid-decode gained recently support to check that infoframes are > compliant and match the EDID the monitor exposes. > > Since the HDMI helpers provide those infoframes in debugfs, it makes it > easy to check from userspace that the drivers (and helpers) behave > properly. > > Let's document it. > > Cc: Hans Verkuil <hverkuil@xs4all.nl> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl> Thanks! Hans > Signed-off-by: Maxime Ripard <mripard@kernel.org> > --- > drivers/gpu/drm/display/drm_hdmi_state_helper.c | 271 ++++++++++++++++++++++++ > 1 file changed, 271 insertions(+) > > diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c > index 24bfc82bf9b02bf3201d97432e3c239ccc8714b4..4df3d25529071e8e822f1fe00fb22c90860ec97b 100644 > --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c > +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c > @@ -16,10 +16,281 @@ > * in the form of KMS helpers. > * > * It contains TMDS character rate computation, automatic selection of > * output formats, infoframes generation, etc. > * > + * Infoframes Compliance > + * ~~~~~~~~~~~~~~~~~~~~~ > + * > + * Drivers using the helpers will expose the various infoframes > + * generated according to the HDMI specification in debugfs. > + * > + * Compliance can then be tested using ``edid-decode`` from the ``v4l-utils`` project > + * (https://git.linuxtv.org/v4l-utils.git/). A sample run would look like: > + * > + * .. code-block:: bash > + * > + * # edid-decode \ > + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/audio \ > + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/avi \ > + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/hdmi \ > + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/hdr_drm \ > + * -I /sys/kernel/debug/dri/1/HDMI-A-1/infoframes/spd \ > + * /sys/class/drm/card1-HDMI-A-1/edid \ > + * -c > + * > + * edid-decode (hex): > + * > + * 00 ff ff ff ff ff ff 00 1e 6d f4 5b 1e ef 06 00 > + * 07 20 01 03 80 2f 34 78 ea 24 05 af 4f 42 ab 25 > + * 0f 50 54 21 08 00 d1 c0 61 40 45 40 01 01 01 01 > + * 01 01 01 01 01 01 98 d0 00 40 a1 40 d4 b0 30 20 > + * 3a 00 d1 0b 12 00 00 1a 00 00 00 fd 00 3b 3d 1e > + * b2 31 00 0a 20 20 20 20 20 20 00 00 00 fc 00 4c > + * 47 20 53 44 51 48 44 0a 20 20 20 20 00 00 00 ff > + * 00 32 30 37 4e 54 52 4c 44 43 34 33 30 0a 01 46 > + * > + * 02 03 42 72 23 09 07 07 4d 01 03 04 90 12 13 1f > + * 22 5d 5e 5f 60 61 83 01 00 00 6d 03 0c 00 10 00 > + * b8 3c 20 00 60 01 02 03 67 d8 5d c4 01 78 80 03 > + * e3 0f 00 18 e2 00 6a e3 05 c0 00 e6 06 05 01 52 > + * 52 51 11 5d 00 a0 a0 40 29 b0 30 20 3a 00 d1 0b > + * 12 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 > + * 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > + * 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c3 > + * > + * ---------------- > + * > + * Block 0, Base EDID: > + * EDID Structure Version & Revision: 1.3 > + * Vendor & Product Identification: > + * Manufacturer: GSM > + * Model: 23540 > + * Serial Number: 454430 (0x0006ef1e) > + * Made in: week 7 of 2022 > + * Basic Display Parameters & Features: > + * Digital display > + * Maximum image size: 47 cm x 52 cm > + * Gamma: 2.20 > + * DPMS levels: Standby Suspend Off > + * RGB color display > + * First detailed timing is the preferred timing > + * Color Characteristics: > + * Red : 0.6835, 0.3105 > + * Green: 0.2587, 0.6679 > + * Blue : 0.1445, 0.0585 > + * White: 0.3134, 0.3291 > + * Established Timings I & II: > + * DMT 0x04: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz > + * DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz > + * DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz > + * Standard Timings: > + * DMT 0x52: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz > + * DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz > + * DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz > + * Detailed Timing Descriptors: > + * DTD 1: 2560x2880 59.966580 Hz 8:9 185.417 kHz 534.000000 MHz (465 mm x 523 mm) > + * Hfront 48 Hsync 32 Hback 240 Hpol P > + * Vfront 3 Vsync 10 Vback 199 Vpol N > + * Display Range Limits: > + * Monitor ranges (GTF): 59-61 Hz V, 30-178 kHz H, max dotclock 490 MHz > + * Display Product Name: 'LG SDQHD' > + * Display Product Serial Number: '207NTRLDC430' > + * Extension blocks: 1 > + * Checksum: 0x46 > + * > + * ---------------- > + * > + * Block 1, CTA-861 Extension Block: > + * Revision: 3 > + * Basic audio support > + * Supports YCbCr 4:4:4 > + * Supports YCbCr 4:2:2 > + * Native detailed modes: 2 > + * Audio Data Block: > + * Linear PCM: > + * Max channels: 2 > + * Supported sample rates (kHz): 48 44.1 32 > + * Supported sample sizes (bits): 24 20 16 > + * Video Data Block: > + * VIC 1: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz > + * VIC 3: 720x480 59.940060 Hz 16:9 31.469 kHz 27.000000 MHz > + * VIC 4: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz > + * VIC 16: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz (native) > + * VIC 18: 720x576 50.000000 Hz 16:9 31.250 kHz 27.000000 MHz > + * VIC 19: 1280x720 50.000000 Hz 16:9 37.500 kHz 74.250000 MHz > + * VIC 31: 1920x1080 50.000000 Hz 16:9 56.250 kHz 148.500000 MHz > + * VIC 34: 1920x1080 30.000000 Hz 16:9 33.750 kHz 74.250000 MHz > + * VIC 93: 3840x2160 24.000000 Hz 16:9 54.000 kHz 297.000000 MHz > + * VIC 94: 3840x2160 25.000000 Hz 16:9 56.250 kHz 297.000000 MHz > + * VIC 95: 3840x2160 30.000000 Hz 16:9 67.500 kHz 297.000000 MHz > + * VIC 96: 3840x2160 50.000000 Hz 16:9 112.500 kHz 594.000000 MHz > + * VIC 97: 3840x2160 60.000000 Hz 16:9 135.000 kHz 594.000000 MHz > + * Speaker Allocation Data Block: > + * FL/FR - Front Left/Right > + * Vendor-Specific Data Block (HDMI), OUI 00-0C-03: > + * Source physical address: 1.0.0.0 > + * Supports_AI > + * DC_36bit > + * DC_30bit > + * DC_Y444 > + * Maximum TMDS clock: 300 MHz > + * Extended HDMI video details: > + * HDMI VICs: > + * HDMI VIC 1: 3840x2160 30.000000 Hz 16:9 67.500 kHz 297.000000 MHz > + * HDMI VIC 2: 3840x2160 25.000000 Hz 16:9 56.250 kHz 297.000000 MHz > + * HDMI VIC 3: 3840x2160 24.000000 Hz 16:9 54.000 kHz 297.000000 MHz > + * Vendor-Specific Data Block (HDMI Forum), OUI C4-5D-D8: > + * Version: 1 > + * Maximum TMDS Character Rate: 600 MHz > + * SCDC Present > + * Supports 12-bits/component Deep Color 4:2:0 Pixel Encoding > + * Supports 10-bits/component Deep Color 4:2:0 Pixel Encoding > + * YCbCr 4:2:0 Capability Map Data Block: > + * VIC 96: 3840x2160 50.000000 Hz 16:9 112.500 kHz 594.000000 MHz > + * VIC 97: 3840x2160 60.000000 Hz 16:9 135.000 kHz 594.000000 MHz > + * Video Capability Data Block: > + * YCbCr quantization: No Data > + * RGB quantization: Selectable (via AVI Q) > + * PT scan behavior: Always Underscanned > + * IT scan behavior: Always Underscanned > + * CE scan behavior: Always Underscanned > + * Colorimetry Data Block: > + * BT2020YCC > + * BT2020RGB > + * HDR Static Metadata Data Block: > + * Electro optical transfer functions: > + * Traditional gamma - SDR luminance range > + * SMPTE ST2084 > + * Supported static metadata descriptors: > + * Static metadata type 1 > + * Desired content max luminance: 82 (295.365 cd/m^2) > + * Desired content max frame-average luminance: 82 (295.365 cd/m^2) > + * Desired content min luminance: 81 (0.298 cd/m^2) > + * Detailed Timing Descriptors: > + * DTD 2: 2560x2880 29.986961 Hz 8:9 87.592 kHz 238.250000 MHz (465 mm x 523 mm) > + * Hfront 48 Hsync 32 Hback 80 Hpol P > + * Vfront 3 Vsync 10 Vback 28 Vpol N > + * Checksum: 0xc3 Unused space in Extension Block: 43 bytes > + * > + * ---------------- > + * > + * edid-decode 1.29.0-5346 > + * edid-decode SHA: c363e9aa6d70 2025-03-11 11:41:18 > + * > + * Warnings: > + * > + * Block 1, CTA-861 Extension Block: > + * IT Video Formats are overscanned by default, but normally this should be underscanned. > + * Video Data Block: VIC 1 and the first DTD are not identical. Is this intended? > + * Video Data Block: All VICs are in ascending order, and the first (preferred) VIC <= 4, is that intended? > + * Video Capability Data Block: Set Selectable YCbCr Quantization to avoid interop issues. > + * Video Capability Data Block: S_PT is equal to S_IT and S_CE, so should be set to 0 instead. > + * Colorimetry Data Block: Set the sRGB colorimetry bit to avoid interop issues. > + * Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0. > + * EDID: > + * Base EDID: Some timings are out of range of the Monitor Ranges: > + * Vertical Freq: 24.000 - 60.317 Hz (Monitor: 59.000 - 61.000 Hz) > + * Horizontal Freq: 31.250 - 185.416 kHz (Monitor: 30.000 - 178.000 kHz) > + * Maximum Clock: 594.000 MHz (Monitor: 490.000 MHz) > + * > + * Failures: > + * > + * Block 1, CTA-861 Extension Block: > + * Video Capability Data Block: IT video formats are always underscanned, but bit 7 of Byte 3 of the CTA-861 Extension header is set to overscanned. > + * EDID: > + * CTA-861: Native progressive timings are a mix of several resolutions. > + * > + * EDID conformity: FAIL > + * > + * ================ > + * > + * InfoFrame of '/sys/kernel/debug/dri/1/HDMI-A-1/infoframes/audio' was empty. > + * > + * ================ > + * > + * edid-decode InfoFrame (hex): > + * > + * 82 02 0d 31 12 28 04 00 00 00 00 00 00 00 00 00 > + * 00 > + * > + * ---------------- > + * > + * HDMI InfoFrame Checksum: 0x31 > + * > + * AVI InfoFrame > + * Version: 2 > + * Length: 13 > + * Y: Color Component Sample Format: RGB > + * A: Active Format Information Present: Yes > + * B: Bar Data Present: Bar Data not present > + * S: Scan Information: Composed for an underscanned display > + * C: Colorimetry: No Data > + * M: Picture Aspect Ratio: 16:9 > + * R: Active Portion Aspect Ratio: 8 > + * ITC: IT Content: No Data > + * EC: Extended Colorimetry: xvYCC601 > + * Q: RGB Quantization Range: Limited Range > + * SC: Non-Uniform Picture Scaling: No Known non-uniform scaling > + * YQ: YCC Quantization Range: Limited Range > + * CN: IT Content Type: Graphics > + * PR: Pixel Data Repetition Count: 0 > + * Line Number of End of Top Bar: 0 > + * Line Number of Start of Bottom Bar: 0 > + * Pixel Number of End of Left Bar: 0 > + * Pixel Number of Start of Right Bar: 0 > + * > + * ---------------- > + * > + * AVI InfoFrame conformity: PASS > + * > + * ================ > + * > + * edid-decode InfoFrame (hex): > + * > + * 81 01 05 49 03 0c 00 20 01 > + * > + * ---------------- > + * > + * HDMI InfoFrame Checksum: 0x49 > + * > + * Vendor-Specific InfoFrame (HDMI), OUI 00-0C-03 > + * Version: 1 > + * Length: 5 > + * HDMI Video Format: HDMI_VIC is present > + * HDMI VIC 1: 3840x2160 30.000000 Hz 16:9 67.500 kHz 297.000000 MHz > + * > + * ---------------- > + * > + * Vendor-Specific InfoFrame (HDMI), OUI 00-0C-03 conformity: PASS > + * > + * ================ > + * > + * InfoFrame of '/sys/kernel/debug/dri/1/HDMI-A-1/infoframes/hdr_drm' was empty. > + * > + * ================ > + * > + * edid-decode InfoFrame (hex): > + * > + * 83 01 19 93 42 72 6f 61 64 63 6f 6d 56 69 64 65 > + * 6f 63 6f 72 65 00 00 00 00 00 00 00 09 > + * > + * ---------------- > + * > + * HDMI InfoFrame Checksum: 0x93 > + * > + * Source Product Description InfoFrame > + * Version: 1 > + * Length: 25 > + * Vendor Name: 'Broadcom' > + * Product Description: 'Videocore' > + * Source Information: PC general > + * > + * ---------------- > + * > + * Source Product Description InfoFrame conformity: PASS > + * > * Testing > * ~~~~~~~ > * > * The helpers have unit testing and can be tested using kunit with: > * > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 0/2] drm/display: HDMI documentation improvements 2025-03-12 13:39 [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard 2025-03-12 13:39 ` [PATCH v2 1/2] drm/display: hdmi: Create documentation section Maxime Ripard 2025-03-12 13:39 ` [PATCH v2 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard @ 2025-03-14 8:23 ` Maxime Ripard 2 siblings, 0 replies; 6+ messages in thread From: Maxime Ripard @ 2025-03-14 8:23 UTC (permalink / raw) To: David Airlie, Simona Vetter, Maarten Lankhorst, Thomas Zimmermann, Jonathan Corbet, Maxime Ripard Cc: dri-devel, linux-doc, linux-kernel, Hans Verkuil On Wed, 12 Mar 2025 14:39:15 +0100, Maxime Ripard wrote: > These patches improve the HDMI infrastructure documentation, in > particular to mention that edid-decode can help debug and check > infoframes issues. > > Let me know what you think, > Maxime > > [...] Applied to misc/kernel.git (drm-misc-next). Thanks! Maxime ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-03-14 8:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-03-12 13:39 [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard 2025-03-12 13:39 ` [PATCH v2 1/2] drm/display: hdmi: Create documentation section Maxime Ripard 2025-03-12 17:47 ` Dmitry Baryshkov 2025-03-12 13:39 ` [PATCH v2 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard 2025-03-13 18:42 ` Hans Verkuil 2025-03-14 8:23 ` [PATCH v2 0/2] drm/display: HDMI documentation improvements Maxime Ripard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®