summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch
blob: 1160cd10ac513f99d09332177b036203d0710194 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Add ARM support into xf86arm.h.  This provides support for Xorg interface.
Without this the vivante samples will hang during close requiring a reboot

Upstream-Status: Pending

Signed-off-by: Lauren Post <lauren.post@freescale.com>
Signed-off-by: Evan Kotara <evan.kotara@freescale.com>

diff --git a/xf86drm.h b/xf86drm.h
--- a/xf86drm.h
+++ b/xf86drm.h
@@ -461,6 +461,23 @@ do {	register unsigned int __old __asm("
 		: "cr0", "memory");			\
 	} while (0)
 
+#elif defined(__arm__)
+       #undef DRM_DEV_MODE
+       #define DRM_DEV_MODE     (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
+
+       #define DRM_CAS(lock,old,new,__ret)             \
+       do {                                            \
+               __asm__ __volatile__ (                  \
+                       "1: ldrex %0, [%1]\n"           \
+                       "   teq %0, %2\n"               \
+                       "   ite eq\n"                   \
+                       "   strexeq %0, %3, [%1]\n"     \
+                       "   movne   %0, #1\n"           \
+               : "=&r" (__ret)                         \
+               : "r" (lock), "r" (old), "r" (new)      \
+               : "cc","memory");                       \
+       } while (0)
+
 #endif /* architecture */
 #endif /* __GNUC__ >= 2 */