From d96238b1773dabfdf3d6ea6ad7a2852d153416d4 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Thu, 17 Sep 2009 12:43:44 -0300
Subject: xf86-video-geode: update to 2.11.4.1

Since it is a bugfix release we updated from 2.11.2 to 2.11.4.1 and
also set this as preferred version for the distros using the upcoming
Xorg 7.5 release or the 7.4 (updates).

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 ...e-GPIO-device-before-asking-for-base_addr.patch |  30 ----
 ...X-fix-RandR-to-properly-use-dixSetPrivate.patch |  56 -------
 recipes/xorg-driver/xf86-video-geode/fixes.patch   | 161 +++++++++++++++++++++
 recipes/xorg-driver/xf86-video-geode_2.11.2.bb     |   9 --
 recipes/xorg-driver/xf86-video-geode_2.11.4.1.bb   |   8 +
 5 files changed, 169 insertions(+), 95 deletions(-)
 delete mode 100644 recipes/xorg-driver/xf86-video-geode/0001-probe-GPIO-device-before-asking-for-base_addr.patch
 delete mode 100644 recipes/xorg-driver/xf86-video-geode/0002-GX-fix-RandR-to-properly-use-dixSetPrivate.patch
 create mode 100644 recipes/xorg-driver/xf86-video-geode/fixes.patch
 delete mode 100644 recipes/xorg-driver/xf86-video-geode_2.11.2.bb
 create mode 100644 recipes/xorg-driver/xf86-video-geode_2.11.4.1.bb

(limited to 'recipes/xorg-driver')

diff --git a/recipes/xorg-driver/xf86-video-geode/0001-probe-GPIO-device-before-asking-for-base_addr.patch b/recipes/xorg-driver/xf86-video-geode/0001-probe-GPIO-device-before-asking-for-base_addr.patch
deleted file mode 100644
index af267ba269..0000000000
--- a/recipes/xorg-driver/xf86-video-geode/0001-probe-GPIO-device-before-asking-for-base_addr.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 1c70b4d2b70155558a9b5edb79a172696c16e129 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Fri, 22 May 2009 18:02:04 -0300
-Subject: [PATCH] probe GPIO device before asking for base_addr
-
-After finding the PCI ISA device it is required to ask for the
-resources to be read, before we use the base_addr for GPIO.
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- src/geode_ddc.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/src/geode_ddc.c b/src/geode_ddc.c
-index 2533488..086dbb1 100644
---- a/src/geode_ddc.c
-+++ b/src/geode_ddc.c
-@@ -72,6 +72,9 @@ geode_gpio_iobase(void)
-     if (pci == NULL)
- 	return 0;
- 
-+    if (pci_device_probe(pci) != 0)
-+        return 0;
-+
-     /* The GPIO I/O address is in resource 1 */
-     return (unsigned short)pci->regions[1].base_addr;
- #else
--- 
-1.6.3.1.54.g99dd
-
diff --git a/recipes/xorg-driver/xf86-video-geode/0002-GX-fix-RandR-to-properly-use-dixSetPrivate.patch b/recipes/xorg-driver/xf86-video-geode/0002-GX-fix-RandR-to-properly-use-dixSetPrivate.patch
deleted file mode 100644
index 7408473063..0000000000
--- a/recipes/xorg-driver/xf86-video-geode/0002-GX-fix-RandR-to-properly-use-dixSetPrivate.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 312b5ad7a3e1f92abaa113c3e72c8da5cb3e6cb0 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Fri, 22 May 2009 20:40:16 -0300
-Subject: [PATCH 2/2] [GX] fix RandR to properly use dixSetPrivate
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- src/gx_randr.c |   13 +++----------
- 1 files changed, 3 insertions(+), 10 deletions(-)
-
-diff --git a/src/gx_randr.c b/src/gx_randr.c
-index 6cdd244..68e1dbd 100644
---- a/src/gx_randr.c
-+++ b/src/gx_randr.c
-@@ -57,18 +57,13 @@ typedef struct _GXRandRInfo
- 
- #define AMD_OLDPRIV (GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 4)
- 
--#if AMD_OLDPRIV
--
- static int GXRandRIndex;
- 
-+#if AMD_OLDPRIV
- #define XF86RANDRINFO(p) ((XF86RandRInfoPtr) (p)->devPrivates[GXRandRIndex].ptr)
- #else
--
--static DevPrivateKey GXRandRKey;
--
- #define XF86RANDRINFO(p) ((XF86RandRInfoPtr) \
--			  dixLookupPrivate(&(p)->devPrivates, GXRandRKey));
--
-+			  dixLookupPrivate(&(p)->devPrivates, GXRandRIndex));
- #endif
- 
- static int
-@@ -333,8 +328,6 @@ GXRandRInit(ScreenPtr pScreen, int rotation)
-     }
- #if AMD_OLDPRIV
-     GXRandRIndex = AllocateScreenPrivateIndex();
--#else
--    GXRandRKey = &GXRandRKey;
- #endif
- 
-     pRandr = xcalloc(sizeof(XF86RandRInfoRec), 1);
-@@ -363,7 +356,7 @@ GXRandRInit(ScreenPtr pScreen, int rotation)
- #if AMD_OLDPRIV
-     pScreen->devPrivates[GXRandRIndex].ptr = pRandr;
- #else
--    dixSetPrivate(&pScreen->devPrivates, GXRandRKey, pRandr);
-+    dixSetPrivate(&pScreen->devPrivates, &GXRandRIndex, pRandr);
- #endif
-     return TRUE;
- }
--- 
-1.6.3.1.54.g99dd
-
diff --git a/recipes/xorg-driver/xf86-video-geode/fixes.patch b/recipes/xorg-driver/xf86-video-geode/fixes.patch
new file mode 100644
index 0000000000..b581b5668c
--- /dev/null
+++ b/recipes/xorg-driver/xf86-video-geode/fixes.patch
@@ -0,0 +1,161 @@
+diff --git a/README b/README
+index 8ae3ce7..74f3a9a 100644
+--- a/README
++++ b/README
+@@ -1,6 +1,6 @@
+ AMD Geode GX and LX graphics driver for X.Org
+ =============================================
+-README last updated: 2009-08-04
++README last updated: 2009-09-03
+ 
+ GIT repository:
+         git://anongit.freedesktop.org/git/xorg/driver/xf86-video-geode
+@@ -29,15 +29,23 @@ at which point xf86-video-cyrix and xf86-video-nsc will be retired.
+ 
+ = Dependencies =
+ 
+-As of version 2.9.0, this driver depends on X.Org server 1.3 or newer,
++As of version 2.11.4, this driver depends upon X server 1.5 or newer,
++because the GX Randr code utilizes dixSetPrivate whose API was modified 
++in a non backward-compatible way.
++
++  #ifdef'ing the changes from f1268f3ba8404129d358db3bb1e66f3841f7018a 
++  and b28abde0276ddd7f687242f3886f98b0e49a7fc2 might make it possible
++  to build this driver against older X servers. Patches are welcome.
++
++As of version 2.9.0, this driver depends on X server 1.3 or newer,
+ because it utilizes the new common DDC probing libraries from X.Org.
+ 
+-If necessary, it might be possible to create autoconf macros to make 
+-this driver compile against older X servers, following this example:
++  If necessary, it might be possible to create autoconf macros to make 
++  this driver compile against older X servers, following this example:
+ 
+-http://lists.freedesktop.org/archives/xorg-commit/2007-February/010341.html
++  http://lists.freedesktop.org/archives/xorg-commit/2007-February/010341.html
+ 
+-Patches accomplishing the same trick for the Geode driver are welcome.
++  Patches accomplishing the same trick for the Geode driver are welcome.
+ 
+ = FAQ =
+ 
+diff --git a/src/geode.h b/src/geode.h
+index 4f0b467..8fe67b5 100644
+--- a/src/geode.h
++++ b/src/geode.h
+@@ -60,7 +60,7 @@
+ #define LX      0x20
+ 
+ #define PCI_VENDOR_ID_CYRIX  0x1078
+-#define PCI_VENDOR_ID_NS     0x100B
++#define PCI_VENDOR_ID_NS     0x100b
+ #define PCI_VENDOR_ID_AMD    0x1022
+ 
+ #define PCI_CHIP_5530     0x0104
+diff --git a/src/gx_driver.c b/src/gx_driver.c
+index 7ff5418..6f5767d 100644
+--- a/src/gx_driver.c
++++ b/src/gx_driver.c
+@@ -464,7 +464,7 @@ GXPreInit(ScrnInfoPtr pScrni, int flags)
+     /* Fill in the monitor information */
+     pScrni->monitor = pScrni->confScreen->monitor;
+ 
+-    if (!xf86SetDepthBpp(pScrni, 16, 16, 16, Support24bppFb | Support32bppFb))
++    if (!xf86SetDepthBpp(pScrni, 24, 16, 32, Support24bppFb | Support32bppFb))
+ 	return FALSE;
+ 
+     switch (pScrni->depth) {
+diff --git a/src/gx_randr.c b/src/gx_randr.c
+index 2669912..91ca43e 100644
+--- a/src/gx_randr.c
++++ b/src/gx_randr.c
+@@ -56,15 +56,17 @@ typedef struct _GXRandRInfo
+     Rotation supported_rotations;      /* driver supported */
+ } XF86RandRInfoRec, *XF86RandRInfoPtr;
+ 
+-#define AMD_OLDPRIV (GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 4)
+-
+ static int GXRandRIndex;
+ 
+-#if AMD_OLDPRIV
+-#define XF86RANDRINFO(p) ((XF86RandRInfoPtr) (p)->devPrivates[GXRandRIndex].ptr)
++#define OLD_VIDEODRV_INTERFACE (GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 4)
++
++#if OLD_VIDEODRV_INTERFACE
++#define XF86RANDRINFO(p)   ((XF86RandRInfoPtr) (p)->devPrivates[GXRandRIndex].ptr)
++#define XF86RANDRSET(p, v) (p)->devPrivates[GXRandRIndex].ptr = v
+ #else
+-#define XF86RANDRINFO(p) ((XF86RandRInfoPtr) \
+-			  dixLookupPrivate(&(p)->devPrivates, &GXRandRIndex));
++#define XF86RANDRINFO(p) ((XF86RandRInfoPtr)						\
++			  dixLookupPrivate(&(p)->devPrivates, &GXRandRIndex))
++#define XF86RANDRSET(p, v) dixSetPrivate(&(p)->devPrivates, &GXRandRIndex, v)
+ #endif
+ 
+ static int
+@@ -327,7 +329,7 @@ GXRandRInit(ScreenPtr pScreen, int rotation)
+     if (GXRandRGeneration != serverGeneration) {
+ 	GXRandRGeneration = serverGeneration;
+     }
+-#if AMD_OLDPRIV
++#if OLD_VIDEODRV_INTERFACE
+     GXRandRIndex = AllocateScreenPrivateIndex();
+ #endif
+ 
+@@ -354,10 +356,7 @@ GXRandRInit(ScreenPtr pScreen, int rotation)
+     pRandr->supported_rotations = rotation;
+     pRandr->maxX = pRandr->maxY = 0;
+ 
+-#if AMD_OLDPRIV
+-    pScreen->devPrivates[GXRandRIndex].ptr = pRandr;
+-#else
+-    dixSetPrivate(&pScreen->devPrivates, &GXRandRIndex, pRandr);
+-#endif
++    XF86RANDRSET(pScreen, pRandr);
++
+     return TRUE;
+ }
+diff --git a/src/lx_driver.c b/src/lx_driver.c
+index 08d1fdd..79ec15c 100644
+--- a/src/lx_driver.c
++++ b/src/lx_driver.c
+@@ -331,7 +331,7 @@ LXPreInit(ScrnInfoPtr pScrni, int flags)
+     /* Fill in the monitor information */
+     pScrni->monitor = pScrni->confScreen->monitor;
+ 
+-    if (!xf86SetDepthBpp(pScrni, 16, 16, 16, Support24bppFb | Support32bppFb))
++    if (!xf86SetDepthBpp(pScrni, 24, 16, 32, Support24bppFb | Support32bppFb))
+ 	return FALSE;
+ 
+     switch (pScrni->depth) {
+diff --git a/src/lx_output.c b/src/lx_output.c
+index 5508477..72e5e2a 100644
+--- a/src/lx_output.c
++++ b/src/lx_output.c
+@@ -108,7 +108,7 @@ lx_output_set_property(xf86OutputPtr output, Atom property,
+ 
+ 	    if (!ret) {
+ 		xf86DrvMsg(pScrni->scrnIndex, X_ERROR,
+-		    "Failed to set mode after propery change!\n");
++		    "Failed to set mode after property change!\n");
+ 
+ 		pGeode->Scale = scale;
+ 		return FALSE;
+diff --git a/src/lx_output.c b/src/lx_output.c
+index 72e5e2a..3eecc9e 100644
+--- a/src/lx_output.c
++++ b/src/lx_output.c
+@@ -163,6 +163,13 @@ lx_output_mode_valid(xf86OutputPtr output, DisplayModePtr pMode)
+ 	    return MODE_BAD;
+     }
+ 
++    if (gfx_is_display_mode_supported(pMode->HDisplay,
++                                      pMode->VDisplay,
++                                      pScrni->bitsPerPixel,
++                                      GeodeGetRefreshRate(pMode)) < 0) {
++        return MODE_BAD;
++    }
++
+     return MODE_OK;
+ }
+ 
diff --git a/recipes/xorg-driver/xf86-video-geode_2.11.2.bb b/recipes/xorg-driver/xf86-video-geode_2.11.2.bb
deleted file mode 100644
index e98c4fce09..0000000000
--- a/recipes/xorg-driver/xf86-video-geode_2.11.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require xorg-driver-video.inc
-PE = "1"
-
-COMPATIBLE_HOST = 'i.86.*-linux'
-DESCRIPTION = "X.org server -- Geode GX2/LX display driver"
-
-SRC_URI += "file://0001-probe-GPIO-device-before-asking-for-base_addr.patch;patch=1 \
-            file://0002-GX-fix-RandR-to-properly-use-dixSetPrivate.patch;patch=1 \
-           "
diff --git a/recipes/xorg-driver/xf86-video-geode_2.11.4.1.bb b/recipes/xorg-driver/xf86-video-geode_2.11.4.1.bb
new file mode 100644
index 0000000000..93f734b989
--- /dev/null
+++ b/recipes/xorg-driver/xf86-video-geode_2.11.4.1.bb
@@ -0,0 +1,8 @@
+require xorg-driver-video.inc
+PE = "1"
+PR = "r1"
+
+COMPATIBLE_HOST = 'i.86.*-linux'
+DESCRIPTION = "X.org server -- Geode GX2/LX display driver"
+
+SRC_URI += "file://fixes.patch;patch=1"
-- 
cgit v1.2.3