summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/glamo-kms-driver.c47
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;
}