diff options
8 files changed, 175 insertions, 97 deletions
diff --git a/conf/checksums.ini b/conf/checksums.ini index bf17d0ce55..0f57d97bec 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -26802,6 +26802,10 @@ sha256=d70c198cde981c3a53b1c41b717dea4bbf1d397d82957f584c641bb5fd02c82d md5=4c652ecba772f705296b8e52d746857c sha256=2d252847a410636b55bf80900d9432ca438775f70377ce81311282a2d12853b5 +[http://xorg.freedesktop.org/releases/individual/driver/xf86-video-geode-2.11.4.1.tar.bz2] +md5=05f85d897ef41d13de354ac0252bf923 +sha256=d739f6762fe3aa7ef7ca74f87fbe4d6ec3bb13a735e5dfb82b6748eda2b31138 + [http://xorg.freedesktop.org/releases/individual/driver/xf86-video-geode-2.8.0.tar.bz2] md5=a2b9c70a32b0a6436d837d67fa7aae18 sha256=f0b68171dd4256c927fbee91ecf84fa28c409b5b6b39cbf47eaa48fd73db305f diff --git a/conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc b/conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc index 6e42065aed..4acca00174 100644 --- a/conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc +++ b/conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc @@ -2,6 +2,6 @@ PREFERRED_VERSION_xserver-xorg ?= "1.5.3" PREFERRED_VERSION_xf86-input-evdev ?= "2.1.0" -PREFERRED_VERSION_xf86-video-geode ?= "2.11.2" +PREFERRED_VERSION_xf86-video-geode ?= "2.11.4.1" PREFERRED_VERSION_libxi ?= "1.2.0" PREFERRED_VERSION_inputproto ?= "1.5.0" diff --git a/conf/distro/include/preferred-xorg-versions-X11R7.5.inc b/conf/distro/include/preferred-xorg-versions-X11R7.5.inc index de59bd07e2..d3794834b9 100644 --- a/conf/distro/include/preferred-xorg-versions-X11R7.5.inc +++ b/conf/distro/include/preferred-xorg-versions-X11R7.5.inc @@ -102,7 +102,7 @@ PREFERRED_VERSION_xf86-video-chips ?= "1.2.0" PREFERRED_VERSION_xf86-video-cirrus ?= "1.2.1" PREFERRED_VERSION_xf86-video-dummy ?= "0.3.0" PREFERRED_VERSION_xf86-video-fbdev ?= "0.4.0" -PREFERRED_VERSION_xf86-video-geode ?= "2.11.2" +PREFERRED_VERSION_xf86-video-geode ?= "2.11.4.1" PREFERRED_VERSION_xf86-video-glide ?= "1.0.1" PREFERRED_VERSION_xf86-video-glint ?= "1.2.1" PREFERRED_VERSION_xf86-video-i128 ?= "1.3.1" 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" |