summaryrefslogtreecommitdiff
path: root/lib/igt_kms.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2019-12-03 16:41:39 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2019-12-04 18:56:03 +0200
commite1503da2d461b2a8d92808d6945a3cd30e48d21b (patch)
treec322d12d5708aca9d622fe8593d40d6a33dd4802 /lib/igt_kms.c
parent694804c6fcd91452f614710818a250b1da696398 (diff)
lib/igt_kms: Add igt_connector_sysfs_open()
Add a helper to open the sysfs directory for a connector. v2: Drop the useless kmstest_connector_dirname() return value check Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'lib/igt_kms.c')
-rw-r--r--lib/igt_kms.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 44647a22..830cee78 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -965,6 +965,40 @@ static void reset_connectors_at_exit(int sig)
igt_reset_connectors();
}
+static char *kmstest_connector_dirname(int idx,
+ uint32_t connector_type,
+ uint32_t connector_type_id,
+ char *name, int namelen)
+{
+ snprintf(name, namelen, "card%d-%s-%d", idx,
+ kmstest_connector_type_str(connector_type),
+ connector_type_id);
+
+ return name;
+}
+
+int igt_connector_sysfs_open(int drm_fd,
+ drmModeConnector *connector)
+{
+ char name[80];
+ int dir, conn_dir;
+
+ dir = igt_sysfs_open(drm_fd);
+ if (dir < 0)
+ return dir;
+
+ kmstest_connector_dirname(igt_device_get_card_index(drm_fd),
+ connector->connector_type,
+ connector->connector_type_id,
+ name, sizeof(name));
+
+ conn_dir = openat(dir, name, O_RDONLY);
+
+ close(dir);
+
+ return conn_dir;
+}
+
/**
* kmstest_force_connector:
* @fd: drm file descriptor