[PATCH i-g-t 2/6] lib/igt_kms: allow set and reset value to be same
Kunal Joshi
kunal1.joshi at intel.com
Fri Sep 27 14:02:18 UTC 2024
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
v3: rename allow_set_equals_reset -> force_reset (Imre)
Signed-off-by: Kunal Joshi <kunal1.joshi at intel.com>
Reviewed-by: Imre Deak <imre.deak 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 571f78eb9..c219aa0b1 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 force_reset)
{
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 (!force_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 force_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,
+ force_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 force_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, force_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.40.1
More information about the igt-dev
mailing list