[PATCH i-g-t v2 1/5] lib/igt_kms: Add a detect timeout value
Kamil Konieczny
kamil.konieczny at linux.intel.com
Wed Nov 6 14:12:33 UTC 2024
Hi Louis,
On 2024-10-22 at 12:28:35 +0200, Louis Chauvet wrote:
> Some tests need to wait for a specific connector status. In order to make
> the timeout customisable for each target, add an option in the
> configuration file.
>
> Signed-off-by: Louis Chauvet <louis.chauvet at bootlin.com>
> ---
> lib/igt_core.c | 3 +++
> lib/igt_kms.c | 24 ++++++++++++++++++++++++
> lib/igt_kms.h | 9 +++++++++
> 3 files changed, 36 insertions(+)
>
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index 407f7b55187c..5f75141cc42e 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -265,6 +265,9 @@
> * # It is not mandatory and allows overriding default values.
> * [DUT]
> * SuspendResumeDelay=10
> + * # The following option define the timeout for detection feature
> + * # (waiting for a connector status)
> + * DetectTimeout=10.0
You named it generic, could you keep it in igt_core?
Or name it DisplayDetectTimeout?
> * ]|
> *
> * Some specific configuration options may be used by specific parts of IGT,
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index bb35d4b82c5a..195868646a14 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -58,6 +58,7 @@
> #include "intel_chipset.h"
> #include "igt_debugfs.h"
> #include "igt_device.h"
> +#include "igt_rc.h"
> #include "igt_sysfs.h"
> #include "sw_sync.h"
> #ifdef HAVE_CHAMELIUM
> @@ -7119,3 +7120,26 @@ void igt_reset_link_params(int drm_fd, igt_output_t *output)
> temp = drmModeGetConnector(drm_fd, output->config.connector->connector_id);
> drmModeFreeConnector(temp);
> }
> +
> +/**
> + * igt_default_detect_timeout - Get the default timeout value for detection feature
> + *
> + * Some tests requires to wait for a specific connector status. This value will determine the
> + * timeout value for this waiting.
> + */
> +float igt_default_detect_timeout(void)
> +{
> + static double timeout = 0.0;
> + static bool first_call = true;
> +
> + if (first_call) {
> + if (igt_key_file)
> + timeout = g_key_file_get_double(igt_key_file, "DUT", "DetectTimeout", NULL);
There could be errors here, please handle them.
Regards,
Kamil
> + else
> + timeout = DEFAULT_DETECT_TIMEOUT;
> +
> + first_call = false;
> + }
> +
> + return timeout;
> +}
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 2b26d2bbfff1..4f0030264d9f 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -39,6 +39,13 @@
> #include "igt_fb.h"
> #include "ioctl_wrappers.h"
>
> +/**
> + * define DEFAULT_DETECT_TIMEOUT - Default timeout used for some detection functions
> + *
> + * It can be overiden by option DetectTimeout in the .igtrc file.
> + */
> +#define DEFAULT_DETECT_TIMEOUT 10.0
> +
> /* Low-level helpers with kmstest_ prefix */
>
> /**
> @@ -1254,4 +1261,6 @@ int igt_get_dp_pending_lt_failures(int drm_fd, igt_output_t *output);
> int igt_get_dp_pending_retrain(int drm_fd, igt_output_t *output);
> void igt_reset_link_params(int drm_fd, igt_output_t *output);
>
> +float igt_default_detect_timeout(void);
> +
> #endif /* __IGT_KMS_H__ */
>
> --
> 2.46.2
>
More information about the igt-dev
mailing list