Blame view

buildroot/buildroot-2016.08.1/package/libdrm/0001-Add-ARM-support-into-xf86drm.h.patch 2.18 KB
6b13f685e   김민수   BSP 최초 추가
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  From 2e3dd0040e676530f7e735fab335ff449b9b3f4d Mon Sep 17 00:00:00 2001
  From: Lauren Post <lauren.post@freescale.com>
  Date: Tue, 22 Mar 2016 22:08:25 +0100
  Subject: [PATCH] Add ARM support into xf86drm.h
  
  This provides support for Xorg interface.  Without this the vivante
  samples will hang during close requiring a reboot
  
  [Adapted from yocto project]
  Upstream-Status: Pending
  Signed-off-by: Lauren Post <lauren.post@freescale.com>
  Signed-off-by: Evan Kotara <evan.kotara@freescale.com>
  [Thomas: change CAS code to only be used on ARMv6/ARMv7, and not
  ARMv4/ARMv5, which don't support ldrex/strex. If no CAS implementation
  is provided libdrm falls back to a system call for locking/unlocking.]
  Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  ---
   xf86drm.h | 22 ++++++++++++++++++++++
   1 file changed, 22 insertions(+)
  
  diff --git a/xf86drm.h b/xf86drm.h
  index 481d882..72341f6 100644
  --- a/xf86drm.h
  +++ b/xf86drm.h
  @@ -469,6 +469,28 @@ do {	register unsigned int __old __asm("o0");		\
   		: "cr0", "memory");			\
   	} while (0)
   
  +# elif defined (__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
  +	|| defined (__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) \
  +	|| defined (__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) \
  +	|| defined (__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
  +	|| defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
  +	|| defined(__ARM_ARCH_7EM__)
  +       #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]
  "           \
  +                       "   teq %0, %2
  "               \
  +                       "   ite eq
  "                   \
  +                       "   strexeq %0, %3, [%1]
  "     \
  +                       "   movne   %0, #1
  "           \
  +               : "=&r" (__ret)                         \
  +               : "r" (lock), "r" (old), "r" (new)      \
  +               : "cc","memory");                       \
  +       } while (0)
  +
   #endif /* architecture */
   #endif /* __GNUC__ >= 2 */
   
  -- 
  2.6.4