[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#546838: xserver-xorg-video-sis: blank with, xset s reset



Package: xserver-xorg-video-sis
Version: 1:0.10.0-1
Severity: normal
Tags: patch


The command `xset s reset` will reset the X server screensaver to
reset the timer for the screensaver and dpms.  If the display is
already on, it should do nothing as far as the hardware goes.  In the
SISVGABlankScreen routine it requires as reset to update the register,
but that will disrupt the VGA signal and cause the monitor to resync
leaving the screen blank for a couple seconds.  I have a program that
wants to keep the screensaver from coming on, but allow normal
operation when it isn't running.

I included a patch to only reset and write the register if the value
changed.

diff --git a/xserver-xorg-video-sis-0.10.0/src/sis_vga.c b/xserver-xorg-video-sis-0.10.0/src/sis_vga.c
index b4cd69d..3f6219b 100644
--- a/xserver-xorg-video-sis-0.10.0/src/sis_vga.c
+++ b/xserver-xorg-video-sis-0.10.0/src/sis_vga.c
@@ -1922,11 +1922,17 @@ static void
 SISVGABlankScreen(ScrnInfoPtr pScrn, Bool on)
 {
     SISPtr pSiS = SISPTR(pScrn);
-    UChar  tmp;
+    UChar  tmp, orig;
 
     inSISIDXREG(SISSR, 0x01, tmp);
+    orig = tmp;
     if(on) tmp &= ~0x20;
     else   tmp |= 0x20;
+    /* Only update the hardware if the state changes because the reset will
+     * disrupt the output requiring the screen to resync.
+     */
+    if(orig == tmp)
+        return;
     SiS_SeqReset(pSiS, TRUE);
     outSISIDXREG(SISSR, 0x01, tmp);
     SiS_SeqReset(pSiS, FALSE);


-- Package-specific info:

VGA-compatible devices on PCI bus:
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 315PRO PCI/AGP VGA Display Adapter

Section "Monitor"
    Identifier  "Samsung730B"

-- System Information:
Debian Release: 5.0.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.29-rc4 (PREEMPT)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages xserver-xorg-video-sis depends on:
ii  libc6                  2.7-18            GNU C Library: Shared libraries
ii  xserver-xorg-core      2:1.4.2-10.lenny2 Xorg X server - core server

xserver-xorg-video-sis recommends no packages.

xserver-xorg-video-sis suggests no packages.

-- no debconf information



Reply to: