[PATCH i-g-t] tests/intel/i915_pm_rpm: warn and skip test if reading connector fails
Luca Coelho
luciano.coelho at intel.com
Fri Jun 14 11:33:20 UTC 2024
Fail test requirements if we can't set the initial data. This is
usually caused by not being able to retrieve a connector due to
possible race-conditions. In this case, we have issued a warning to
cause the test to fail and not just skip.
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10911
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
Cc: Jani Saarinen <jani.saarinen at intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Signed-off-by: Luca Coelho <luciano.coelho at intel.com>
---
tests/intel/i915_pm_rpm.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/tests/intel/i915_pm_rpm.c b/tests/intel/i915_pm_rpm.c
index e0f395fa8a84..31758b1a5e35 100644
--- a/tests/intel/i915_pm_rpm.c
+++ b/tests/intel/i915_pm_rpm.c
@@ -506,7 +506,7 @@ static drmModePropertyBlobPtr get_connector_edid(drmModeConnectorPtr connector,
return blob;
}
-static void init_mode_set_data(struct mode_set_data *data)
+static bool init_mode_set_data(struct mode_set_data *data)
{
data->res = drmModeGetResources(drm_fd);
if (data->res) {
@@ -518,7 +518,7 @@ static void init_mode_set_data(struct mode_set_data *data)
if (!data->connectors[i]) {
igt_warn("Could not read connector %u\n",
data->res->connectors[i]);
- continue;
+ return false;
}
data->edids[i] = get_connector_edid(data->connectors[i], i);
@@ -529,6 +529,8 @@ static void init_mode_set_data(struct mode_set_data *data)
}
init_modeset_cached_params(&ms_data);
+
+ return true;
}
static void fini_mode_set_data(struct mode_set_data *data)
@@ -598,8 +600,15 @@ static bool setup_environment(bool display_enabled)
ms_data.devid = intel_get_drm_devid(drm_fd);
- if (display_enabled)
- init_mode_set_data(&ms_data);
+ /*
+ * Fail test requirements if we can't set the initial data.
+ * This is usually caused by not being able to retrieve a
+ * connector due to possible race-conditions. In this case,
+ * we should have issued a warning to cause the test to fail
+ * and not just skip.
+ */
+ if (display_enabled && !init_mode_set_data(&ms_data))
+ return false;
igt_pm_enable_sata_link_power_management();
--
2.39.2
More information about the igt-dev
mailing list