diff options
author | Thomas White <taw@bitwiz.org.uk> | 2009-11-08 19:42:19 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2009-11-08 19:57:28 +0100 |
commit | f84cf6e1b0a6692e7e5a41b7133544265cefed49 (patch) | |
tree | 317822e7d479344549ac53abf036286018e7d190 | |
parent | 69bce744911378f139e7a7159d294439e8acc140 (diff) |
Support both old and new sysfs layout in GlamoKernelModesettingAvailable()
-rw-r--r-- | src/glamo-kms-driver.c | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c index 34c7baf..f790576 100644 --- a/src/glamo-kms-driver.c +++ b/src/glamo-kms-driver.c @@ -78,24 +78,49 @@ Bool GlamoKernelModesettingAvailable() { DIR *dir; - struct dirent *ent; + /* Try old location */ dir = opendir("/sys/bus/platform/devices/glamo-fb.0/"); - if ( !dir ) return FALSE; + if ( dir ) { - do { + struct dirent *ent; - ent = readdir(dir); - if ( !ent ) return FALSE; + do { - if ( strncmp(ent->d_name, "drm:controlD", 12) == 0 ) { - closedir(dir); - return TRUE; - } + ent = readdir(dir); + if ( !ent ) return FALSE; + + if ( strncmp(ent->d_name, "drm:controlD", 12) == 0 ) { + closedir(dir); + return TRUE; + } + + } while ( ent ); + + closedir(dir); + } + + /* Try new location */ + dir = opendir("/sys/bus/platform/devices/glamo-fb.0/drm/"); + if ( dir ) { - } while ( ent ); + struct dirent *ent; + + do { + + ent = readdir(dir); + if ( !ent ) return FALSE; + + if ( strncmp(ent->d_name, "drm:controlD", 12) == 0 ) { + closedir(dir); + return TRUE; + } + + } while ( ent ); + + closedir(dir); + } - closedir(dir); return FALSE; } |