Re: [igt-dev] [PATCH i-g-t 3/7] tests/kms_chamelium: generate an EDID with audio support

Arkadiusz Hiler
2019-05-10T11:35:46Z

On Fri, Apr 26, 2019 at 07:21:06PM +0300, Simon Ser wrote:
> The default Chamelium EDID works great with DisplayPort but has issues with
> HDMI. The EDID advertises itself as a DisplayPort-only device, which causes
> issues with HDMI audio. Additionally, the EDID doesn't contain a magic
> incantation within a vendor-specific data block that is needed for audio to
> work.
>
> This patch makes it so an EDID is generated and set by IGT. The EDID is the
> base IGT EDID patched to append a Short Audio Descriptor and Vendor Specific
> Data block extension.
>
> This generated is suitable for HDMI audio. For DisplayPort audio, we keep using
^ EDID/one
> the Chamelium's default EDID.
>
> The global variable holding the test frequencies has been renamed to prevent
> shadowing local variables.
^ by

> Signed-off-by: Simon Ser <simon.ser@intel.com>
> ---
> lib/igt_chamelium.c | 9 +++-
> tests/kms_chamelium.c | 123 ++++++++++++++++++++++++++++++------------
> 2 files changed, 95 insertions(+), 37 deletions(-)
>
> diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
> index 714e5e06..126af226 100644
> --- a/tests/kms_chamelium.c
> +++ b/tests/kms_chamelium.c
> @@ -1626,13 +1673,15 @@ igt_main
> test_suspend_resume_edid_change(&data, port,
> SUSPEND_STATE_MEM,
> SUSPEND_TEST_NONE,
> - edid_id, alt_edid_id);
> + data.edid_id,
> + data.alt_edid_id);
>
> connector_subtest("dp-edid-change-during-hibernate", DisplayPort)
> test_suspend_resume_edid_change(&data, port,
> SUSPEND_STATE_DISK,
> SUSPEND_TEST_DEVICES,
> - edid_id, alt_edid_id);
> + data.edid_id,
> + data.alt_edid_id);
>
> connector_subtest("dp-crc-single", DisplayPort)
> test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888,
> @@ -1649,8 +1698,10 @@ igt_main
> connector_subtest("dp-frame-dump", DisplayPort)
> test_display_frame_dump(&data, port);
>
> + /* The EDID we generate advertises HDMI audio, not DP audio.
> + * Use the Chamelium's default EDID for DP audio. */
> connector_subtest("dp-audio", DisplayPort)
> - test_display_audio(&data, port, "HDMI");
> + test_display_audio(&data, port, "HDMI", 0);

#define CHAMELIUM_DEFAULT_EDID 0

or so

> }
>
> igt_subtest_group {