[PATCH i-g-t 1/2] tests/chamelium/kms_chamelium_color: force connector reprobe after plugging ports
Sharma, Swati2
swati2.sharma at intel.com
Tue Apr 22 05:41:08 UTC 2025
Hi Kunal
On 15-04-2025 12:07 pm, Kunal Joshi wrote:
> Force reprobe connector status after plugging to assure
> we always have DRM_MODE_CONNECTED status for the connector
> before proceding with the test.
>
> v2: use Closes tag (Swati)
>
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2371
> Cc: Swati Sharma <swati2.sharma at intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi at intel.com>
> ---
> tests/chamelium/kms_chamelium_color.c | 25 +++++++++++++++++++++----
> tests/meson.build | 2 +-
> 2 files changed, 22 insertions(+), 5 deletions(-)
>
> diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c
> index 5f61bc2ec..bf6510969 100644
> --- a/tests/chamelium/kms_chamelium_color.c
> +++ b/tests/chamelium/kms_chamelium_color.c
> @@ -31,6 +31,7 @@
> */
>
> #include "kms_color_helper.h"
> +#include "kms_chamelium_helper.h"
>
> /**
> * SUBTEST: degamma
> @@ -736,13 +737,29 @@ igt_main
>
> if (!data.port_count)
> igt_skip("No ports connected\n");
> +
> /*
> - * We don't cause any harm by plugging
> - * discovered ports, just incase they are not plugged
> - * we currently skip in test_setup
> + * The behavior differs based on the availability of port mappings:
> + * - When using port mappings (chamelium_read_port_mappings),
> + * ports are not plugged
> + * - During autodiscovery, all ports are plugged at the end.
> + *
> + * This quick workaround (unplug, plug, and re-probe the connectors)
> + * prevents any ports from being unintentionally skipped in test_setup.
> */
> - for( i = 0; i < data.port_count; i++)
> + for(i = 0; i < data.port_count; i++) {
Add space after for (
Otherwise patch LGTM
Reviewed-by: Swati Sharma <swati2.sharma at intel.com>
> + struct udev_monitor *mon;
> + int timeout = CHAMELIUM_HOTPLUG_TIMEOUT;
> + chamelium_unplug(data.chamelium, data.ports[i]);
> + mon = igt_watch_uevents();
> chamelium_plug(data.chamelium, data.ports[i]);
> + igt_assert(chamelium_wait_for_hotplug(mon, &timeout));
> + igt_cleanup_uevents(mon);
> + igt_assert_f(chamelium_reprobe_connector(&data.display,
> + data.chamelium,
> + data.ports[i]) == DRM_MODE_CONNECTED,
> + "Output not connected\n");
> + }
>
> kmstest_set_vt_graphics_mode();
> }
> diff --git a/tests/meson.build b/tests/meson.build
> index 9224145cf..6f0beeb0a 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -368,7 +368,7 @@ extra_sources = {
> 'testdisplay': [ 'testdisplay_hotplug.c' ],
> 'kms_color': [ 'kms_color_helper.c' ],
> 'kms_chamelium_audio': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
> - 'kms_chamelium_color': [ 'kms_color_helper.c' ],
> + 'kms_chamelium_color': [ 'kms_color_helper.c', join_paths ('chamelium', 'kms_chamelium_helper.c') ],
> 'kms_chamelium_edid': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
> 'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
> 'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
More information about the igt-dev
mailing list