xserver: Branch 'server-1.9-branch' - 3 commits

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Tue Dec 21 11:04:42 PST 2010


 Xext/sync.c                      |   30 ++++++++++++++++++++++++++++++
 hw/xfree86/modes/xf86EdidModes.c |    5 +++++
 2 files changed, 35 insertions(+)

New commits:
commit d819ff1cb521af77764af75e04645af4d4d06e3d
Author: Jörn Horstmann <launchpad at planetxml.de>
Date:   Mon Dec 6 11:24:02 2010 +1100

    Add EDID quirk for HP Compaq nc8430.
    
    Like some other LPL panels, this one reports the vertical size in cm rather
    than mm.
    Patch taken from Launchpad bug #380009 <https://launchpad.net/bugs/380009>
    
    X.Org Bug 28414 <https://bugs.freedesktop.org/show_bug.cgi?id=28414>
    
    Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit 4b88c7be8de4149fe3d166bf115775f9e81a1373)

diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index a94379f..c25b707 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -145,6 +145,11 @@ static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC)
 	DDC->vendor.prod_id == 0x2a00)
 	return TRUE;
 
+    /* Bug #28414: HP Compaq NC8430 LP154W01-TLA8 */
+    if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
+	DDC->vendor.prod_id == 5750)
+	return TRUE;
+
     /* Bug #21750: Samsung Syncmaster 2333HD */
     if (memcmp (DDC->vendor.name, "SAM", 4) == 0 &&
 	DDC->vendor.prod_id == 1157)
commit 11696bb133a5039e51329514377eee6a2cc8dd5a
Author: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
Date:   Mon Dec 6 11:24:01 2010 +1100

    IDLETIME: Fix edge-case in IdleTimeBlockHandler
    
    Ensure that if we're called exactly on the threshold of a
    NegativeTransition trigger that we reshedule to pick up
    an idle time over the threshold.
    
    Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit a2e67a6412386782cb8b644b86a5744591397d45)

diff --git a/Xext/sync.c b/Xext/sync.c
index c00e692..314b63e 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -2322,6 +2322,14 @@ IdleTimeBlockHandler(pointer env, struct timeval **wt, pointer LastSelectMask)
 		break;
 	    }
 	}
+	/* 
+	 * We've been called exactly on the idle time, but we have a
+	 * NegativeTransition trigger which requires a transition from an
+	 * idle time greater than this.  Schedule a wakeup for the next
+	 * millisecond so we won't miss a transition.
+	 */
+	if (XSyncValueEqual (idle, *pIdleTimeValueLess))
+	    AdjustWaitForDelay(wt, 1);
     }
     else if (pIdleTimeValueGreater)
     {
commit 625cb4c14242c3d186ec52425e7c009456eb029b
Author: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
Date:   Mon Dec 6 11:24:00 2010 +1100

    Xext: Fix edge case with {Positive, Negative}Transition triggers.
    
    The {Positive,Negative}Transition triggers only fire when the counter
    goes from strictly {below,above} the threshold.  If
    SyncComputeBracketValues gets called exactly at this threshold we may update
    the bracket values so that the counter is not updated past the threshold.
    
    Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit b55bf248581dc66321b24b29f199f6dc8d02db1b)

diff --git a/Xext/sync.c b/Xext/sync.c
index a51262a..c00e692 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -959,6 +959,17 @@ SyncComputeBracketValues(SyncCounter *pCounter)
 	    {
 		psci->bracket_less = pTrigger->test_value;
 		pnewltval = &psci->bracket_less;
+	    } else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
+		       XSyncValueLessThan(pTrigger->test_value,
+					  psci->bracket_greater))
+	    {
+	        /*
+		 * The value is exactly equal to our threshold.  We want one
+		 * more event in the positive direction to ensure we pick up
+		 * when the value *exceeds* this threshold.
+		 */
+	        psci->bracket_greater = pTrigger->test_value;
+		pnewgtval = &psci->bracket_greater;
 	    }
 	}
         else if (pTrigger->test_type == XSyncPositiveTransition &&
@@ -969,6 +980,17 @@ SyncComputeBracketValues(SyncCounter *pCounter)
 	    {
 		psci->bracket_greater = pTrigger->test_value;
 		pnewgtval = &psci->bracket_greater;
+	    } else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
+		       XSyncValueGreaterThan(pTrigger->test_value,
+					     psci->bracket_less))
+	    {
+	        /*
+		 * The value is exactly equal to our threshold.  We want one
+		 * more event in the negative direction to ensure we pick up
+		 * when the value is less than this threshold.
+		 */
+	        psci->bracket_less = pTrigger->test_value;
+		pnewltval = &psci->bracket_less;
 	    }
 	}
     } /* end for each trigger */


More information about the xorg-commit mailing list