[PATCH i-g-t v3 2/2] tests/kms_content_protection: Whitelist check for panel support

Kandpal, Suraj suraj.kandpal at intel.com
Thu May 29 06:01:18 UTC 2025



> -----Original Message-----
> From: Reddy Guddati, Santhosh <santhosh.reddy.guddati at intel.com>
> Sent: Thursday, May 29, 2025 7:25 AM
> To: igt-dev at lists.freedesktop.org
> Cc: Nautiyal, Ankit K <ankit.k.nautiyal at intel.com>; Kandpal, Suraj
> <suraj.kandpal at intel.com>; Thasleem, Mohammed
> <mohammed.thasleem at intel.com>; Konieczny, Kamil
> <kamil.konieczny at intel.com>; Reddy Guddati, Santhosh
> <santhosh.reddy.guddati at intel.com>
> Subject: [PATCH i-g-t v3 2/2] tests/kms_content_protection: Whitelist check for
> panel support
> 
> Verify the connected output is not blacklisted and if the blacklist is found ,
> skip the test on the output.
> 
> V2: Rename the function names to reflect the test exemption on panels.
> 
> V3: Add blocklist array to content_protection and use igt_is_panel_blocked
> (Suraj)
> 
> Signed-off-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
> ---
>  tests/kms_content_protection.c | 47
> ++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
> 
> diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
> index 6fe1edbc4..90e2ee79c 100644
> --- a/tests/kms_content_protection.c
> +++ b/tests/kms_content_protection.c
> @@ -36,9 +36,11 @@
>  #include <sys/stat.h>
>  #include <libudev.h>
>  #include "igt.h"
> +#include "igt_edid.h"
>  #include "igt_sysfs.h"
>  #include "igt_kms.h"
>  #include "igt_kmod.h"
> +#include "igt_panel.h"
> 
>  /**
>   * SUBTEST: lic-type-0
> @@ -128,6 +130,20 @@ __u8 facsimile_srm[] = {
>  	0x83, 0xAA, 0xC2, 0x5B, 0x24, 0xB3, 0x36, 0x84, 0x94, 0x75, 0x34,
> 0xDB,
>  	0x10, 0x9E, 0x3B, 0x23, 0x13, 0xD8, 0x7A, 0xC2, 0x30, 0x79, 0x84};
> 
> +/**
> + * List of Panels that should be excluded from hdcp tests
> + *
> + * This array is used to identify and handle scenarios where the test
> +is
> + * executed on dummy monitors, such as those found on shard machines.
> + * Since these dummy monitors are not real and always the test is not
> +consistent,
> + * the test is skipped in such cases to avoid false negatives or
> + * irrelevant test results.
> + */
> +static const char *const hdcp_blocklist[] = {
> +	"DPF90435", /* Example monitor name */
> +	/* Add more monitor names here as needed */ };
> +
>  static void flip_handler(int fd, unsigned int sequence, unsigned int tv_sec,
>  			 unsigned int tv_usec, void *_data)
>  {
> @@ -578,6 +594,32 @@ test_fini(igt_output_t *output, enum
> igt_commit_style commit_style)
>  	igt_display_commit2(&data.display, commit_style);  }
> 
> +static bool is_output_hdcp_test_exempt(igt_output_t *output) {
> +	drmModePropertyBlobPtr edid_blob = NULL;
> +	uint64_t edid_blob_id;
> +	const struct edid *edid;
> +	char edid_vendor[4];
> +	char sink_name[20];
> +
> +	igt_assert(kmstest_get_property(data.drm_fd,
> +					output->config.connector-
> >connector_id,
> +					DRM_MODE_OBJECT_CONNECTOR,
> "EDID", NULL,
> +					&edid_blob_id, NULL));
> +
> +	igt_assert(edid_blob = drmModeGetPropertyBlob(data.drm_fd,
> +edid_blob_id));
> +
> +	edid = (const struct edid *)edid_blob->data;
> +	edid_get_mfg(edid, edid_vendor);
> +	edid_vendor[3] = '\0';
> +
> +	edid_get_monitor_name(edid, sink_name, ARRAY_SIZE(sink_name));
> +
> +	drmModeFreePropertyBlob(edid_blob);
> +
> +	return igt_is_panel_blocked(sink_name, hdcp_blocklist,
> +ARRAY_SIZE(hdcp_blocklist)); }
> +
>  static void
>  test_content_protection(enum igt_commit_style commit_style, int
> content_type)  { @@ -595,6 +637,9 @@ test_content_protection(enum
> igt_commit_style commit_style, int content_type)
>  	}
> 
>  	for_each_connected_output(display, output) {
> +		igt_require_f(!is_output_hdcp_test_exempt(output),
> +			      "Skipped as the panel is blacklisted");
> +
>  		for_each_pipe(display, pipe) {
>  			igt_display_reset(display);
> 
> @@ -923,6 +968,8 @@ static const struct {
>  	},
>  };
> 
> +
> +

No need for these extra lines

With that fixed
Reviewed-by: Suraj Kandpal <suraj.kandpal at intel.com>

>  igt_main
>  {
>  	igt_fixture {
> --
> 2.34.1



More information about the igt-dev mailing list