From 59d394a67db43c38767af9fb496754bbe6dde153 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Sun, 13 Jun 2010 03:44:48 +0200 Subject: libdrm: add lemote specific fixes --- package/libdrm/patches/patch-xf86drm_h | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 package/libdrm/patches/patch-xf86drm_h (limited to 'package/libdrm/patches/patch-xf86drm_h') diff --git a/package/libdrm/patches/patch-xf86drm_h b/package/libdrm/patches/patch-xf86drm_h new file mode 100644 index 000000000..aa3f49cca --- /dev/null +++ b/package/libdrm/patches/patch-xf86drm_h @@ -0,0 +1,42 @@ + Fix for lemote. +--- libdrm-2.4.20.orig/xf86drm.h 2010-03-06 00:21:13.000000000 +0100 ++++ libdrm-2.4.20/xf86drm.h 2010-06-12 20:43:01.324916826 +0200 +@@ -374,6 +374,29 @@ typedef struct _drmSetVersion { + : "memory"); \ + } while (0) + ++#elif defined(__mips__) ++ ++#define DRM_CAS(lock, old, new, ret) \ ++ do { \ ++ __asm__ __volatile__( \ ++ " .set mips3;.set noreorder;\n" \ ++ " sync; \n" \ ++ " ll %1, %0;\n" \ ++ " bne %1, %2, 1f;\n" \ ++ " li %1, 1; \n" \ ++ " move %1, %3; \n" \ ++ " sc %1, %0;\n" \ ++ " xori %1, %1, 1\n" \ ++ "1: \n" \ ++ " .set mips0; .set reorder;\n" \ ++ : "=m" (__drm_dummy_lock(lock)),\ ++ "=&r" (ret) \ ++ : "r" (old), \ ++ "r" (new) \ ++ : "memory","$8" \ ++ ); \ ++ } while(0) ++ + #elif defined(__sparc__) + + #define DRM_CAS(lock,old,new,__ret) \ +@@ -457,7 +480,7 @@ do { register unsigned int __old __asm(" + + #if defined(__alpha__) + #define DRM_CAS_RESULT(_result) long _result +-#elif defined(__powerpc__) ++#elif defined(__powerpc__) || defined(__mips__) + #define DRM_CAS_RESULT(_result) int _result + #else + #define DRM_CAS_RESULT(_result) char _result -- cgit v1.2.3