summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2001-07-11 16:42:17 +0000
committerKeith Packard <keithp@keithp.com>2001-07-11 16:42:17 +0000
commit090a429573dfb965ebc4ea8ea57e3bef5f9a8539 (patch)
treed6e8c32919f77d9bf629576c4e4acec51e848060
parent99fb2eb76d8f93578e4aba75c73b9be0766f7b6f (diff)
kdrive/fbdev: dont set DPMS mode repeatedly to the same value
-rw-r--r--hw/kdrive/fbdev/fbdev.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c
index 4ab88aea8..39e17410b 100644
--- a/hw/kdrive/fbdev/fbdev.c
+++ b/hw/kdrive/fbdev/fbdev.c
@@ -770,14 +770,23 @@ fbdevDPMS (ScreenPtr pScreen, int mode)
{
KdScreenPriv(pScreen);
FbdevPriv *priv = pScreenPriv->card->driver;
+ static int oldmode = -1;
+ if (mode == oldmode)
+ return TRUE;
#ifdef FBIOPUT_POWERMODE
if (ioctl (priv->fd, FBIOPUT_POWERMODE, &mode) >= 0)
+ {
+ oldmode = mode;
return TRUE;
+ }
#endif
#ifdef FBIOBLANK
if (ioctl (priv->fd, FBIOBLANK, mode ? mode + 1 : 0) >= 0)
+ {
+ oldmode = mode;
return TRUE;
+ }
#endif
return FALSE;
}