* [PATCH 0/2] drm/display: HDMI documentation improvements
@ 2025-03-06 17:17 Maxime Ripard
2025-03-06 17:17 ` [PATCH 1/2] drm/display: hdmi: Create documentation section Maxime Ripard
2025-03-06 17:17 ` [PATCH 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard
0 siblings, 2 replies; 4+ messages in thread
From: Maxime Ripard @ 2025-03-06 17:17 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>
---
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 | 261 ++++++++++++++++++++++++
2 files changed, 276 insertions(+)
---
base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6
change-id: 20250306-drm-hdmi-state-docs-89703b124bbf
Best regards,
--
Maxime Ripard <mripard@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] drm/display: hdmi: Create documentation section
2025-03-06 17:17 [PATCH 0/2] drm/display: HDMI documentation improvements Maxime Ripard
@ 2025-03-06 17:17 ` Maxime Ripard
2025-03-06 17:17 ` [PATCH 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard
1 sibling, 0 replies; 4+ messages in thread
From: Maxime Ripard @ 2025-03-06 17:17 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] 4+ messages in thread
* [PATCH 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode
2025-03-06 17:17 [PATCH 0/2] drm/display: HDMI documentation improvements Maxime Ripard
2025-03-06 17:17 ` [PATCH 1/2] drm/display: hdmi: Create documentation section Maxime Ripard
@ 2025-03-06 17:17 ` Maxime Ripard
2025-03-07 13:11 ` Hans Verkuil
1 sibling, 1 reply; 4+ messages in thread
From: Maxime Ripard @ 2025-03-06 17:17 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 | 240 ++++++++++++++++++++++++
1 file changed, 240 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..86f812b89f0e51abc24910898c114d6b08a78edf 100644
--- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
@@ -16,10 +16,250 @@
* 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 a recent-enough ``edid-decode``
+ * version (released after summer 2024). 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 1a 78 ea 24 05 af 4f 42 ab 25
+ * 0f 50 54 21 08 00 d1 c0 61 40 01 01 01 01 01 01
+ * 01 01 01 01 01 01 56 5e 00 a0 a0 a0 29 50 30 20
+ * 35 00 d1 06 11 00 00 1a 00 00 00 fd 00 3b 3d 1e
+ * 70 1e 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 43
+ *
+ * 02 03 29 71 23 09 07 07 4b 01 03 04 90 12 13 1f
+ * 22 5d 5e 5f 83 01 00 00 6d 03 0c 00 10 00 b8 3c
+ * 20 00 60 01 02 03 e2 00 6a 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 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 ee
+ *
+ * ----------------
+ *
+ * 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 26 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
+ * Detailed Timing Descriptors:
+ * DTD 1: 2560x1440 59.950550 Hz 16:9 88.787 kHz 241.500000 MHz (465 mm x 262 mm)
+ * Hfront 48 Hsync 32 Hback 80 Hpol P
+ * Vfront 3 Vsync 5 Vback 33 Vpol N
+ * Display Range Limits:
+ * Monitor ranges (GTF): 59-61 Hz V, 30-112 kHz H, max dotclock 300 MHz
+ * Display Product Name: 'LG SDQHD'
+ * Display Product Serial Number: '207NTRLDC430'
+ * Extension blocks: 1
+ * Checksum: 0x43
+ *
+ * ----------------
+ *
+ * Block 1, CTA-861 Extension Block:
+ * Revision: 3
+ * Basic audio support
+ * Supports YCbCr 4:4:4
+ * Supports YCbCr 4:2:2
+ * Native detailed modes: 1
+ * 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
+ * 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
+ * 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
+ * Checksum: 0xee Unused space in Extension Block: 86 bytes
+ *
+ * ----------------
+ *
+ * edid-decode SHA: 5332a3b76080 2024-11-19 07:53:00
+ *
+ * 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.
+ * Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0.
+ * Add a Colorimetry Data Block with the sRGB colorimetry bit set to avoid interop issues.
+ * 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)
+ *
+ * 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] 4+ messages in thread
* Re: [PATCH 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode
2025-03-06 17:17 ` [PATCH 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard
@ 2025-03-07 13:11 ` Hans Verkuil
0 siblings, 0 replies; 4+ messages in thread
From: Hans Verkuil @ 2025-03-07 13:11 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Simona Vetter, Maarten Lankhorst,
Thomas Zimmermann, Jonathan Corbet
Cc: dri-devel, linux-doc, linux-kernel
Hi Maxime,
On 06/03/2025 18:17, 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>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> drivers/gpu/drm/display/drm_hdmi_state_helper.c | 240 ++++++++++++++++++++++++
> 1 file changed, 240 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..86f812b89f0e51abc24910898c114d6b08a78edf 100644
> --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> @@ -16,10 +16,250 @@
> * 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 a recent-enough ``edid-decode``
> + * version (released after summer 2024). 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 1a 78 ea 24 05 af 4f 42 ab 25
> + * 0f 50 54 21 08 00 d1 c0 61 40 01 01 01 01 01 01
> + * 01 01 01 01 01 01 56 5e 00 a0 a0 a0 29 50 30 20
> + * 35 00 d1 06 11 00 00 1a 00 00 00 fd 00 3b 3d 1e
> + * 70 1e 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 43
> + *
> + * 02 03 29 71 23 09 07 07 4b 01 03 04 90 12 13 1f
> + * 22 5d 5e 5f 83 01 00 00 6d 03 0c 00 10 00 b8 3c
> + * 20 00 60 01 02 03 e2 00 6a 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 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 ee
> + *
> + * ----------------
> + *
> + * Block 0, Base EDID:
> + * EDID Structure Version & Revision: 1.3
> + * Vendor & Product Identification:
This looks odd: the two lines above should be aligned, but they are not.
Some copy-and-paste issue perhaps?
> + * 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 26 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
> + * Detailed Timing Descriptors:
> + * DTD 1: 2560x1440 59.950550 Hz 16:9 88.787 kHz 241.500000 MHz (465 mm x 262 mm)
> + * Hfront 48 Hsync 32 Hback 80 Hpol P
> + * Vfront 3 Vsync 5 Vback 33 Vpol N
> + * Display Range Limits:
> + * Monitor ranges (GTF): 59-61 Hz V, 30-112 kHz H, max dotclock 300 MHz
> + * Display Product Name: 'LG SDQHD'
> + * Display Product Serial Number: '207NTRLDC430'
> + * Extension blocks: 1
> + * Checksum: 0x43
> + *
> + * ----------------
> + *
> + * Block 1, CTA-861 Extension Block:
> + * Revision: 3
> + * Basic audio support
> + * Supports YCbCr 4:4:4
> + * Supports YCbCr 4:2:2
> + * Native detailed modes: 1
> + * 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
> + * 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
> + * 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
> + * Checksum: 0xee Unused space in Extension Block: 86 bytes
> + *
> + * ----------------
> + *
> + * edid-decode SHA: 5332a3b76080 2024-11-19 07:53:00
I recommend that you get the latest edid-decode version from https://git.linuxtv.org/v4l-utils.git/
so that the documentation is at least corresponding to the most recent version.
Should there be a link to the official git repo as well?
> + *
> + * 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.
> + * Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0.
> + * Add a Colorimetry Data Block with the sRGB colorimetry bit set to avoid interop issues.
> + * 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)
> + *
> + * 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:
> *
>
Note that the InfoFrame checks are still rudimentary for the AVI and HDMI InfoFrames.
It's on my TODO list to improve this further, but -ENOTIME :-(
Regards,
Hans
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-03-07 13:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-06 17:17 [PATCH 0/2] drm/display: HDMI documentation improvements Maxime Ripard
2025-03-06 17:17 ` [PATCH 1/2] drm/display: hdmi: Create documentation section Maxime Ripard
2025-03-06 17:17 ` [PATCH 2/2] drm/display: hdmi: Mention Infoframes testing with edid-decode Maxime Ripard
2025-03-07 13:11 ` Hans Verkuil
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®