diff options
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.patch | 118 |
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 |