summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/fb
diff options
context:
space:
mode:
authorJon Smirl <jonsmirl@gmail.com>2005-05-17 02:12:29 +0000
committerJon Smirl <jonsmirl@gmail.com>2005-05-17 02:12:29 +0000
commite03b5cdf3fb4dafe565c06179124644e218e9cde (patch)
tree5c7356023e51c32f0ff521a4761fb6d290a8a189 /src/mesa/drivers/dri/fb
parent167b141e6eac1af5fc8fcd4129216a3125b08501 (diff)
Make EGL_NO_MODE_MESA work.
Diffstat (limited to 'src/mesa/drivers/dri/fb')
-rw-r--r--src/mesa/drivers/dri/fb/fb_egl.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/fb/fb_egl.c b/src/mesa/drivers/dri/fb/fb_egl.c
index 8af14d1d16..d83d264a97 100644
--- a/src/mesa/drivers/dri/fb/fb_egl.c
+++ b/src/mesa/drivers/dri/fb/fb_egl.c
@@ -731,7 +731,7 @@ fbShowSurfaceMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen,
if (!_eglShowSurfaceMESA(drv, dpy, screen, surface, m))
return EGL_FALSE;
- snprintf(buffer, sizeof(buffer), "%s/%s/mode", sysfs, scrn->fb);
+ snprintf(buffer, sizeof(buffer), "%s/%s/blank", sysfs, scrn->fb);
file = fopen(buffer, "r+");
if (!file) {
@@ -739,6 +739,18 @@ err:
printf("chown all fb sysfs attrib to allow write - %s\n", buffer);
return EGL_FALSE;
}
+ snprintf(buffer, sizeof(buffer), "%d", (m == EGL_NO_MODE_MESA ? VESA_POWERDOWN : VESA_HSYNC_SUSPEND));
+ fputs(buffer, file);
+ fclose(file);
+
+ if (m == EGL_NO_MODE_MESA)
+ return EGL_TRUE;
+
+ snprintf(buffer, sizeof(buffer), "%s/%s/mode", sysfs, scrn->fb);
+
+ file = fopen(buffer, "r+");
+ if (!file)
+ goto err;
fputs(mode->Name, file);
fclose(file);
@@ -751,6 +763,14 @@ err:
fputs(buffer, file);
fclose(file);
+ file = fopen(buffer, "r+");
+ if (!file)
+ goto err;
+
+ snprintf(buffer, sizeof(buffer), "%d", VESA_NO_BLANKING);
+ fputs(buffer, file);
+ fclose(file);
+
return EGL_TRUE;
}