SOURCES: xorg-xserver-server-preferred-thinko.patch (NEW), xorg-xserver-ser...
arekm
arekm at pld-linux.org
Thu Mar 26 22:12:33 CET 2009
Author: arekm Date: Thu Mar 26 21:12:33 2009 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- from fc
---- Files affected:
SOURCES:
xorg-xserver-server-preferred-thinko.patch (NONE -> 1.1) (NEW), xorg-xserver-server-xinerama-cursors.patch (NONE -> 1.1) (NEW), xorg-xserver-server-xtest-pointerscreen.patch (NONE -> 1.1) (NEW), xorg-xserver-server-less-acpi-brokenness.patch (NONE -> 1.1) (NEW), xorg-xserver-server-xiproptoint.patch (NONE -> 1.1) (NEW), xorg-xserver-server-xatom-float.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/xorg-xserver-server-preferred-thinko.patch
diff -u /dev/null SOURCES/xorg-xserver-server-preferred-thinko.patch:1.1
--- /dev/null Thu Mar 26 22:12:34 2009
+++ SOURCES/xorg-xserver-server-preferred-thinko.patch Thu Mar 26 22:12:25 2009
@@ -0,0 +1,28 @@
+From 33c791b421db742e78c74028a5ef5f6604e66c48 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax at redhat.com>
+Date: Mon, 2 Mar 2009 13:00:31 -0500
+Subject: [PATCH] Fix output setup when only one head, and it's not the zeroth one.
+
+---
+ hw/xfree86/modes/xf86Crtc.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
+index a8fd099..ad6ca98 100644
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -2070,9 +2070,9 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
+ (float)config->output[p]->mm_height;
+
+ if (aspect)
+- preferred_match[0] = bestModeForAspect(config, enabled, aspect);
++ preferred_match[p] = bestModeForAspect(config, enabled, aspect);
+
+- if (preferred_match[0])
++ if (preferred_match[p])
+ ret = TRUE;
+
+ } while (0);
+--
+1.6.1.3
+
================================================================
Index: SOURCES/xorg-xserver-server-xinerama-cursors.patch
diff -u /dev/null SOURCES/xorg-xserver-server-xinerama-cursors.patch:1.1
--- /dev/null Thu Mar 26 22:12:35 2009
+++ SOURCES/xorg-xserver-server-xinerama-cursors.patch Thu Mar 26 22:12:25 2009
@@ -0,0 +1,108 @@
+From 69e53f2493c142ef5569af01ce52565be5b2976e Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax at redhat.com>
+Date: Tue, 3 Mar 2009 10:58:33 -0500
+Subject: [PATCH] Primary video device hack
+
+---
+ hw/xfree86/common/xf86pciBus.c | 60 ++++++++++++++++++++++++++++++++--------
+ 1 files changed, 48 insertions(+), 12 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
+index 467a0c3..0d2d01c 100644
+--- a/hw/xfree86/common/xf86pciBus.c
++++ b/hw/xfree86/common/xf86pciBus.c
+@@ -60,11 +60,7 @@ static struct pci_device ** xf86PciVideoInfo = NULL; /* PCI probe for video hw *
+ /* PCI classes that get included in xf86PciVideoInfo */
+ #define PCIINFOCLASSES(c) \
+ ( (((c) & 0x00ff0000) == (PCI_CLASS_PREHISTORIC << 16)) \
+- || (((c) & 0x00ff0000) == (PCI_CLASS_DISPLAY << 16)) \
+- || ((((c) & 0x00ffff00) \
+- == ((PCI_CLASS_MULTIMEDIA << 16) | (PCI_SUBCLASS_MULTIMEDIA_VIDEO << 8)))) \
+- || ((((c) & 0x00ffff00) \
+- == ((PCI_CLASS_PROCESSOR << 16) | (PCI_SUBCLASS_PROCESSOR_COPROC << 8)))) )
++ || (((c) & 0x00ffff00) == (PCI_CLASS_DISPLAY << 16)) )
+
+ /*
+ * PCI classes that have messages printed always. The others are only
+@@ -341,6 +337,39 @@ restorePciBusState(BusAccPtr ptr)
+ }
+ #undef MASKBITS
+
++/* oh god what have i done */
++static Bool
++looks_like_bios_primary(struct pci_device *info)
++{
++ unsigned char *bios;
++ unsigned short vendor, device;
++ int offset;
++ Bool ret = FALSE;
++
++ bios = xf86MapVidMem(-1, VIDMEM_MMIO, 0xc0000, 0x10000);
++ if (!bios)
++ return FALSE;
++
++ if (bios[0] != 0x55 || bios[1] != 0xAA)
++ goto out;
++
++ offset = (bios[0x19] << 8) + bios[0x18];
++
++ if (bios[offset] != 'P' ||
++ bios[offset+1] != 'C' ||
++ bios[offset+2] != 'I' ||
++ bios[offset+3] != 'R')
++ goto out;
++
++ vendor = (bios[offset+5] << 8) + bios[offset+4];
++ device = (bios[offset+7] << 8) + bios[offset+6];
++
++ ret = (info->vendor_id == vendor) && (info->device_id == device);
++
++out:
++ xf86UnMapVidMem(-1, bios, 0x10000);
++ return ret;
++}
+
+ /*
+ * xf86Bus.c interface
+@@ -375,24 +404,31 @@ xf86PciProbe(void)
+ }
+ }
+
+-
+ /* If we haven't found a primary device try a different heuristic */
+ if (primaryBus.type == BUS_NONE && num) {
+ for (i = 0; i < num; i++) {
+ uint16_t command;
+
+ info = xf86PciVideoInfo[i];
++ if (!IS_VGA(info->device_class))
++ continue;
++
+ pci_device_cfg_read_u16(info, & command, 4);
+
+- if ((command & PCI_CMD_MEM_ENABLE)
+- && ((num == 1) || IS_VGA(info->device_class))) {
+- if (primaryBus.type == BUS_NONE) {
++ if ((command & PCI_CMD_MEM_ENABLE)) {
++ if (num == 1) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+- } else {
+- xf86Msg(X_NOTICE,
++ break;
++ } else if (looks_like_bios_primary(info)) {
++ if (primaryBus.type == BUS_NONE) {
++ primaryBus.type = BUS_PCI;
++ primaryBus.id.pci = info;
++ } else {
++ xf86Msg(X_NOTICE,
+ "More than one possible primary device found\n");
+- primaryBus.type ^= (BusType)(-1);
++ primaryBus.type ^= (BusType)(-1);
++ }
+ }
+ }
+ }
+--
+1.6.1.3
+
================================================================
Index: SOURCES/xorg-xserver-server-xtest-pointerscreen.patch
diff -u /dev/null SOURCES/xorg-xserver-server-xtest-pointerscreen.patch:1.1
--- /dev/null Thu Mar 26 22:12:35 2009
+++ SOURCES/xorg-xserver-server-xtest-pointerscreen.patch Thu Mar 26 22:12:26 2009
@@ -0,0 +1,73 @@
+From c3e5af42be915b27056644c2df6a4ce30b4ab5f3 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Wed, 25 Mar 2009 15:51:43 +1000
+Subject: [PATCH] Xext: set POINTER_SCREEN flag in XTestFakeInput if necessary. (RH #490984)
+
+The POINTER_SCREEN flag must be set explicitly for XTest core events to avoid
+out-of-range events when the lastSlave was an SD with an explicit axis range.
+Device events sent through XTest don't need this flag, they are expected to be
+in the valuator range of the device anyway.
+
+Red Hat Bug 490984 <https://bugzilla.redhat.com/show_bug.cgi?id=490984>
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ Xext/xtest.c | 14 +++++++++++---
+ 1 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/Xext/xtest.c b/Xext/xtest.c
+index a7f3830..3ff02ed 100644
+--- a/Xext/xtest.c
++++ b/Xext/xtest.c
+@@ -161,6 +161,7 @@ ProcXTestFakeInput(client)
+ int nevents;
+ int i;
+ int base = 0;
++ int flags = 0;
+
+ nev = (stuff->length << 2) - sizeof(xReq);
+ if ((nev % sizeof(xEvent)) || !nev)
+@@ -211,8 +212,14 @@ ProcXTestFakeInput(client)
+ client->errorValue = ev->u.u.type;
+ return BadValue;
+ }
++
++ if (ev->u.u.detail == xFalse)
++ flags |= POINTER_ABSOLUTE;
+ } else
++ {
+ firstValuator = 0;
++ flags |= POINTER_ABSOLUTE;
++ }
+
+ if (nev == 1 && type == XI_DeviceMotionNotify && !dev->valuator)
+ {
+@@ -281,6 +288,8 @@ ProcXTestFakeInput(client)
+ valuators[1] = ev->u.keyButtonPointer.rootY;
+ numValuators = 2;
+ firstValuator = 0;
++ if (ev->u.u.detail == xFalse)
++ flags = POINTER_ABSOLUTE | POINTER_SCREEN;
+ break;
+ default:
+ client->errorValue = ev->u.u.type;
+@@ -378,14 +387,13 @@ ProcXTestFakeInput(client)
+ GetEventList(&events);
+ switch(type) {
+ case MotionNotify:
+- nevents = GetPointerEvents(events, dev, type, 0,
+- (ev->u.u.detail == xFalse) ? POINTER_ABSOLUTE : 0,
++ nevents = GetPointerEvents(events, dev, type, 0, flags,
+ firstValuator, numValuators, valuators);
+ break;
+ case ButtonPress:
+ case ButtonRelease:
+ nevents = GetPointerEvents(events, dev, type, ev->u.u.detail,
+- POINTER_ABSOLUTE, firstValuator,
++ flags, firstValuator,
+ numValuators, valuators);
+ break;
+ case KeyPress:
+--
+1.6.0.6
+
================================================================
Index: SOURCES/xorg-xserver-server-less-acpi-brokenness.patch
diff -u /dev/null SOURCES/xorg-xserver-server-less-acpi-brokenness.patch:1.1
--- /dev/null Thu Mar 26 22:12:36 2009
+++ SOURCES/xorg-xserver-server-less-acpi-brokenness.patch Thu Mar 26 22:12:26 2009
@@ -0,0 +1,31 @@
+From a8079882f1884edc62a9de28af915bd8b65dfbbe Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax at redhat.com>
+Date: Wed, 11 Mar 2009 14:02:11 -0400
+Subject: [PATCH] Don't build the ACPI code.
+
+No good can come of this.
+---
+ configure.ac | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 72ae67e..04716f8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1269,13 +1269,11 @@ if test "x$XORG" = xyes; then
+ case $host_cpu in
+ ia64*)
+ linux_ia64=yes
+- linux_acpi="yes"
+ ;;
+ alpha*)
+ linux_alpha=yes
+ ;;
+ i*86|amd64*|x86_64*)
+- linux_acpi="yes"
+ ;;
+ *)
+ ;;
+--
+1.6.1.3
+
================================================================
Index: SOURCES/xorg-xserver-server-xiproptoint.patch
diff -u /dev/null SOURCES/xorg-xserver-server-xiproptoint.patch:1.1
--- /dev/null Thu Mar 26 22:12:37 2009
+++ SOURCES/xorg-xserver-server-xiproptoint.patch Thu Mar 26 22:12:27 2009
@@ -0,0 +1,120 @@
+From 669f6810af9a89187d6149841925fe765f3988ff Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at redhat.com>
+Date: Wed, 19 Nov 2008 15:50:57 +1000
+Subject: [PATCH] Xi: add XIPropToInt() auxiliary function.
+
+Converts an XIPropertyValuePtr to an integer, provided that type and format is
+right.
+
+Code originally written by Simon Thum.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at redhat.com>
+---
+ Xi/xiproperty.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ include/exevents.h | 6 ++++
+ 2 files changed, 74 insertions(+), 0 deletions(-)
+
+diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
+index e79a2ed..cd9805a 100644
+--- a/Xi/xiproperty.c
++++ b/Xi/xiproperty.c
+@@ -32,6 +32,7 @@
+ #include "dix.h"
+ #include "inputstr.h"
+ #include <X11/extensions/XI.h>
++#include <X11/Xatom.h>
+ #include <X11/extensions/XIproto.h>
+ #include "exglobals.h"
+ #include "exevents.h"
+@@ -71,6 +72,73 @@ XIGetKnownProperty(char *name)
+ }
+
+ /**
++ * Convert the given property's value(s) into @nelem_return integer values and
++ * store them in @buf_return. If @nelem_return is larger than the number of
++ * values in the property, @nelem_return is set to the number of values in the
++ * property.
++ *
++ * If *@buf_return is NULL and @nelem_return is 0, memory is allocated
++ * automatically and must be freed by the caller.
++ *
++ * Possible return codes.
++ * Success ... No error.
++ * BadMatch ... Wrong atom type, atom is not XA_INTEGER
++ * BadAlloc ... NULL passed as buffer and allocation failed.
++ * BadLength ... @buff is NULL but @nelem_return is non-zero.
++ *
++ * @param val The property value
++ * @param nelem_return The maximum number of elements to return.
++ * @param buf_return Pointer to an array of at least @nelem_return values.
++ * @return Success or the error code if an error occured.
++ */
++_X_EXPORT int
++XIPropToInt(XIPropertyValuePtr val, int *nelem_return, int **buf_return)
++{
++ int i;
++ int *buf;
++
++ if (val->type != XA_INTEGER)
++ return BadMatch;
++ if (!*buf_return && *nelem_return)
++ return BadLength;
++
++ switch(val->format)
++ {
++ case 8:
++ case 16:
++ case 32:
++ break;
++ default:
++ return BadValue;
++ }
++
++ buf = *buf_return;
++
++ if (!buf && !(*nelem_return))
++ {
++ buf = xcalloc(val->size, sizeof(int));
++ if (!buf)
++ return BadAlloc;
++ *buf_return = buf;
++ *nelem_return = val->size;
++ } else if (val->size < *nelem_return)
++ *nelem_return = val->size;
++
++ for (i = 0; i < val->size && i < *nelem_return; i++)
++ {
++ switch(val->format)
++ {
++ case 8: buf[i] = ((CARD8*)val->data)[i]; break;
++ case 16: buf[i] = ((CARD16*)val->data)[i]; break;
++ case 32: buf[i] = ((CARD32*)val->data)[i]; break;
++ }
++ }
++
++ return Success;
++}
++
++
++/**
+ * Init those properties that are allocated by the server and most likely used
+ * by the DIX or the DDX.
+ */
+diff --git a/include/exevents.h b/include/exevents.h
+index 2a7ec97..485347b 100644
+--- a/include/exevents.h
++++ b/include/exevents.h
+@@ -251,4 +251,10 @@ extern _X_EXPORT Atom XIGetKnownProperty(
+
+ extern DeviceIntPtr XIGetDevice(xEvent *ev);
+
++extern _X_EXPORT int XIPropToInt(
++ XIPropertyValuePtr val,
++ int *nelem_return,
++ int **buf_return
++);
++
+ #endif /* EXEVENTS_H */
+--
+1.6.0.6
+
================================================================
Index: SOURCES/xorg-xserver-server-xatom-float.patch
diff -u /dev/null SOURCES/xorg-xserver-server-xatom-float.patch:1.1
--- /dev/null Thu Mar 26 22:12:38 2009
+++ SOURCES/xorg-xserver-server-xatom-float.patch Thu Mar 26 22:12:27 2009
@@ -0,0 +1,123 @@
+From a48c81dcdf569a3f634ac23e08d2491354de6a36 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Fri, 5 Dec 2008 16:24:57 +1000
+Subject: [PATCH] Xi: add XATOM_FLOAT to server-defined properties.
+
+This property is used to denote type float for input properties. Such
+properties can be accessed easily through the XIPropToFloat() function.
+
+Code originally written by Simon Thum.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at redhat.com>
+---
+ Xi/xiproperty.c | 55 +++++++++++++++++++++++++++++++++++++++++-
+ include/exevents.h | 6 ++++
+ include/xserver-properties.h | 4 +++
+ 3 files changed, 64 insertions(+), 1 deletions(-)
+
+diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
+index cd9805a..6da8424 100644
+--- a/Xi/xiproperty.c
++++ b/Xi/xiproperty.c
+@@ -49,7 +49,8 @@ static struct dev_properties
+ Atom type;
+ char *name;
+ } dev_properties[] = {
+- {0, XI_PROP_ENABLED}
++ {0, XI_PROP_ENABLED},
++ {0, XATOM_FLOAT}
+ };
+
+ static long XIPropHandlerID = 1;
+@@ -137,6 +138,58 @@ XIPropToInt(XIPropertyValuePtr val, int *nelem_return, int **buf_return)
+ return Success;
+ }
+
++/**
++ * Convert the given property's value(s) into @nelem_return float values and
++ * store them in @buf_return. If @nelem_return is larger than the number of
++ * values in the property, @nelem_return is set to the number of values in the
++ * property.
++ *
++ * If *@buf_return is NULL and @nelem_return is 0, memory is allocated
++ * automatically and must be freed by the caller.
++ *
++ * Possible errors returned:
++ * Success
++ * BadMatch ... Wrong atom type, atom is not XA_FLOAT
++ * BadValue ... Wrong format, format is not 32
++ * BadAlloc ... NULL passed as buffer and allocation failed.
++ * BadLength ... @buff is NULL but @nelem_return is non-zero.
++ *
++ * @param val The property value
++ * @param nelem_return The maximum number of elements to return.
++ * @param buf_return Pointer to an array of at least @nelem_return values.
++ * @return Success or the error code if an error occured.
++ */
++_X_EXPORT int
++XIPropToFloat(XIPropertyValuePtr val, int *nelem_return, float **buf_return)
++{
++ int i;
++ float *buf;
++
++ if (!val->type || val->type != XIGetKnownProperty(XATOM_FLOAT))
++ return BadMatch;
++
++ if (val->format != 32)
++ return BadValue;
++ if (!*buf_return && *nelem_return)
++ return BadLength;
++
++ buf = *buf_return;
++
++ if (!buf && !(*nelem_return))
++ {
++ buf = xcalloc(val->size, sizeof(float));
++ if (!buf)
++ return BadAlloc;
++ *buf_return = buf;
++ *nelem_return = val->size;
++ } else if (val->size < *nelem_return)
++ *nelem_return = val->size;
++
++ for (i = 0; i < val->size && i < *nelem_return; i++)
++ buf[i] = ((float*)val->data)[i];
++
++ return Success;
++}
+
+ /**
+ * Init those properties that are allocated by the server and most likely used
+diff --git a/include/exevents.h b/include/exevents.h
+index 485347b..2504baf 100644
+--- a/include/exevents.h
++++ b/include/exevents.h
+@@ -257,4 +257,10 @@ extern _X_EXPORT int XIPropToInt(
+ int **buf_return
+ );
+
++extern _X_EXPORT int XIPropToFloat(
++ XIPropertyValuePtr val,
++ int *nelem_return,
++ float **buf_return
++);
++
+ #endif /* EXEVENTS_H */
+diff --git a/include/xserver-properties.h b/include/xserver-properties.h
+index 4d602b5..f8aeab6 100644
+--- a/include/xserver-properties.h
++++ b/include/xserver-properties.h
+@@ -26,6 +26,10 @@
+ #ifndef _XSERVER_PROPERTIES_H_
+ #define _XSERVER_PROPERTIES_H_
+
++/* Type for a 4 byte float. Storage format IEEE 754 in client's default
++ * byte-ordering. */
++#define XATOM_FLOAT "FLOAT"
++
+ /* BOOL. 0 - device disabled, 1 - device enabled */
+ #define XI_PROP_ENABLED "Device Enabled"
+
+--
+1.6.0.6
+
================================================================
More information about the pld-cvs-commit
mailing list