Commit 1bbe0b11 authored by Michał Winiarski's avatar Michał Winiarski

lib/igt_sysfs: Simplify obtaining sysfs path

Now that we've extracted card index, we no longer have the need to
iterate over device nodes.

v2: Drop ret.
Signed-off-by: Michał Winiarski's avatarMichał Winiarski <>
Reviewed-by: Chris Wilson's avatarChris Wilson <>
parent 8e3fe6a3
......@@ -106,30 +106,13 @@ char *igt_sysfs_path(int device, char *path, int pathlen)
if (fstat(device, &st) || !S_ISCHR(st.st_mode))
return NULL;
for (int n = 0; n < 16; n++) {
int len, ret, maj, min;
FILE *file;
snprintf(path, pathlen, "/sys/dev/char/%d:%d",
major(st.st_rdev), minor(st.st_rdev));
len = snprintf(path, pathlen, "/sys/class/drm/card%d", n);
sprintf(path + len, "/dev");
file = fopen(path, "r");
if (!file)
ret = fscanf(file, "%d:%d", &maj, &min);
if (ret != 2 || major(st.st_rdev) != maj ||
minor(st.st_rdev) != min)
path[len] = '\0';
return path;
if (access(path, F_OK))
return NULL;
return NULL;
return path;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment