[PATCH i-g-t 3/6] lib/igt_kms: allow set and reset value to be same
Imre Deak
imre.deak at intel.com
Wed Sep 18 14:33:27 UTC 2024
On Thu, Sep 12, 2024 at 11:58:36AM +0530, Kunal Joshi wrote:
> allow set and reset value to be same, let the caller handle
> this scenario instead.
>
> example scenario where this is required.
> i915_dp_force_link_rate should be auto before starting test
> should be auto at exit
>
> v2: handle the scenario at caller side
>
> Signed-off-by: Kunal Joshi <kunal1.joshi at intel.com>
> ---
> lib/igt_kms.c | 21 +++++++++++++--------
> 1 file changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 863eb5331..a7f8d0f83 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -1557,7 +1557,8 @@ static void connector_attr_free(struct igt_connector_attr *c)
> static bool connector_attr_set(int idx, drmModeConnector *connector,
> int dir, igt_connector_attr_set set,
> const char *attr, const char *value,
> - const char *reset_value)
> + const char *reset_value,
> + bool allow_set_equals_reset)
force_reset would describe better what the flag does.
> {
> struct igt_connector_attr *c;
>
> @@ -1573,7 +1574,7 @@ static bool connector_attr_set(int idx, drmModeConnector *connector,
> return false;
> }
>
> - if (!strcmp(c->value, c->reset_value))
> + if (!allow_set_equals_reset && !strcmp(c->value, c->reset_value))
> connector_attr_free(c);
>
> return true;
> @@ -1582,7 +1583,8 @@ static bool connector_attr_set(int idx, drmModeConnector *connector,
> static bool connector_attr_set_sysfs(int drm_fd,
> drmModeConnector *connector,
> const char *attr, const char *value,
> - const char *reset_value)
> + const char *reset_value,
> + bool allow_set_equals_reset)
> {
> char name[80];
> int idx, dir;
> @@ -1600,7 +1602,8 @@ static bool connector_attr_set_sysfs(int drm_fd,
> return false;
>
> if (!connector_attr_set(idx, connector, dir,
> - igt_sysfs_set, attr, value, reset_value))
> + igt_sysfs_set, attr, value, reset_value,
> + allow_set_equals_reset))
> return false;
>
> igt_debug("Connector %s/%s is now %s\n", name, attr, value);
> @@ -1611,7 +1614,8 @@ static bool connector_attr_set_sysfs(int drm_fd,
> static bool connector_attr_set_debugfs(int drm_fd,
> drmModeConnector *connector,
> const char *attr, const char *value,
> - const char *reset_value)
> + const char *reset_value,
> + bool allow_set_equals_reset)
> {
> char name[80];
> int idx, dir;
> @@ -1630,7 +1634,7 @@ static bool connector_attr_set_debugfs(int drm_fd,
>
> if (!connector_attr_set(idx, connector, dir,
> igt_sysfs_set, attr,
> - value, reset_value))
> + value, reset_value, allow_set_equals_reset))
> return false;
>
> igt_info("Connector %s/%s is now %s\n", name, attr, value);
> @@ -1662,7 +1666,8 @@ static bool force_connector(int drm_fd,
> const char *value)
> {
> return connector_attr_set_sysfs(drm_fd, connector,
> - "status", value, "detect");
> + "status", value, "detect",
> + false);
> }
>
> /**
> @@ -1727,7 +1732,7 @@ static bool force_connector_bigjoiner(int drm_fd,
> {
> return connector_attr_set_debugfs(drm_fd, connector,
> "i915_bigjoiner_force_enable",
> - value, "0");
> + value, "0", false);
> }
>
> /**
> --
> 2.43.0
>
More information about the igt-dev
mailing list