38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
|
[Adapted from yocto project]
|
||
|
|
||
|
Add ARM support into xf86drm.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 */
|
||
|
|