diff -ur xf86-video-omapfb-0.1.1.orig/src/omapfb-driver.c xf86-video-omapfb-0.1.1/src/omapfb-driver.c --- xf86-video-omapfb-0.1.1.orig/src/omapfb-driver.c 2010-09-10 02:34:18.000000000 +0400 +++ xf86-video-omapfb-0.1.1/src/omapfb-driver.c 2010-09-10 03:10:58.000000000 +0400 @@ -819,7 +819,34 @@ static Bool OMAPFBSaveScreen(ScreenPtr pScreen, int mode) { - xf86Msg(X_NOT_IMPLEMENTED, "%s: Dim backlight?\n", __FUNCTION__); + static int isBlanking; + static const char *ctrlFile = "/sys/devices/platform/twl4030-pwm0-bl" + "/backlight/twl4030-pwm0-bl/bl_power"; + FILE *fd; + + switch(mode) { + case SCREEN_SAVER_CYCLE: + if (isBlanking) + return TRUE; + case SCREEN_SAVER_ON: + isBlanking = 1; + break; + + case SCREEN_SAVER_FORCER: + if (!isBlanking) + return TRUE; + case SCREEN_SAVER_OFF: + isBlanking = 0; + break; + + default: + return FALSE; + } + + fd = fopen(ctrlFile, "w"); + fprintf(fd, "%d", isBlanking); + fclose(fd); + return TRUE; }