aboutsummaryrefslogtreecommitdiffstats
path: root/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch')
-rw-r--r--main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch118
1 files changed, 118 insertions, 0 deletions
diff --git a/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch b/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch
new file mode 100644
index 0000000000..43fa945f9a
--- /dev/null
+++ b/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch
@@ -0,0 +1,118 @@
+From c66ae235700f5efe64eb168327551b8f1d153c9c Mon Sep 17 00:00:00 2001
+From: Michel Dänzer <michel.daenzer@amd.com>
+Date: Mon, 13 Feb 2012 09:43:58 +0000
+Subject: Handle new xorg_list API.
+
+Fixes https://bugs.freedesktop.org/show_bug.cgi?id=45937
+
+Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+---
+diff --git a/configure.ac b/configure.ac
+index 29f129a..0083325 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -234,10 +234,18 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
+ [#include "xorg-server.h"])
+
+ AC_CHECK_HEADERS([list.h],
+- [], [],
++ [have_list_h="yes"], [have_list_h="no"],
+ [#include <X11/Xdefs.h>
+ #include "xorg-server.h"])
+
++if test "x$have_list_h" = xyes; then
++ AC_CHECK_DECL(xorg_list_init,
++ [AC_DEFINE(HAVE_XORG_LIST, 1, [Have xorg_list API])], [],
++ [#include <X11/Xdefs.h>
++ #include "xorg-server.h"
++ #include "list.h"])
++fi
++
+ CPPFLAGS="$SAVE_CPPFLAGS"
+
+ AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
+diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
+index 835575f..cf905a1 100644
+--- a/src/radeon_dri2.c
++++ b/src/radeon_dri2.c
+@@ -40,6 +40,13 @@
+
+ #if HAVE_LIST_H
+ #include "list.h"
++#if !HAVE_XORG_LIST
++#define xorg_list list
++#define xorg_list_init list_init
++#define xorg_list_add list_add
++#define xorg_list_del list_del
++#define xorg_list_for_each_entry list_for_each_entry
++#endif
+ #endif
+
+ #ifdef RADEON_DRI2
+@@ -515,11 +522,11 @@ typedef struct _DRI2FrameEvent {
+
+ Bool valid;
+
+- struct list link;
++ struct xorg_list link;
+ } DRI2FrameEventRec, *DRI2FrameEventPtr;
+
+ typedef struct _DRI2ClientEvents {
+- struct list reference_list;
++ struct xorg_list reference_list;
+ } DRI2ClientEventsRec, *DRI2ClientEventsPtr;
+
+ #if HAS_DEVPRIVATEKEYREC
+@@ -538,7 +545,7 @@ DevPrivateKey DRI2ClientEventsPrivateKey = &DRI2ClientEventsPrivateKeyIndex;
+ dixLookupPrivate(&(pClient)->devPrivates, DRI2ClientEventsPrivateKey))
+
+ static int
+-ListAddDRI2ClientEvents(ClientPtr client, struct list *entry)
++ListAddDRI2ClientEvents(ClientPtr client, struct xorg_list *entry)
+ {
+ DRI2ClientEventsPtr pClientPriv;
+ pClientPriv = GetDRI2ClientEvents(client);
+@@ -547,12 +554,12 @@ ListAddDRI2ClientEvents(ClientPtr client, struct list *entry)
+ return BadAlloc;
+ }
+
+- list_add(entry, &pClientPriv->reference_list);
++ xorg_list_add(entry, &pClientPriv->reference_list);
+ return 0;
+ }
+
+ static void
+-ListDelDRI2ClientEvents(ClientPtr client, struct list *entry)
++ListDelDRI2ClientEvents(ClientPtr client, struct xorg_list *entry)
+ {
+ DRI2ClientEventsPtr pClientPriv;
+ pClientPriv = GetDRI2ClientEvents(client);
+@@ -560,7 +567,7 @@ ListDelDRI2ClientEvents(ClientPtr client, struct list *entry)
+ if (!pClientPriv) {
+ return;
+ }
+- list_del(entry);
++ xorg_list_del(entry);
+ }
+
+ static void
+@@ -574,7 +581,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d
+
+ switch (pClient->clientState) {
+ case ClientStateInitial:
+- list_init(&pClientEventsPriv->reference_list);
++ xorg_list_init(&pClientEventsPriv->reference_list);
+ break;
+ case ClientStateRunning:
+ break;
+@@ -582,7 +589,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d
+ case ClientStateRetained:
+ case ClientStateGone:
+ if (pClientEventsPriv) {
+- list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) {
++ xorg_list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) {
+ ref->valid = FALSE;
+ }
+ }
+--
+cgit v0.9.0.2-2-gbebe