Patchwork [meta-fsl-arm,07/15] libdrm: Add fix to avoid GPU freeze

login
register
mail settings
Submitter Otavio Salvador
Date July 23, 2013, 6:43 p.m.
Message ID <1374605026-7933-8-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/54233/
State Superseded
Delegated to: Otavio Salvador
Headers show

Comments

Otavio Salvador - July 23, 2013, 6:43 p.m.
Add ARM support into xf86drm.h.  This provides support for Xorg
interface.  Without this the vivante samples will hang during close
requiring a reboot

Change-Id: I60ea3c87c35fadaa00c64baffd24f74f41dfbb9b
Signed-off-by: Lauren Post <lauren.post@freescale.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../drm/libdrm/mx6/drm-update-arm.patch            | 32 ++++++++++++++++++++++
 recipes-graphics/drm/libdrm_2.4.45.bbappend        |  5 ++++
 2 files changed, 37 insertions(+)
 create mode 100644 recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch
 create mode 100644 recipes-graphics/drm/libdrm_2.4.45.bbappend

Patch

diff --git a/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch b/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch
new file mode 100644
index 0000000..bb0eac9
--- /dev/null
+++ b/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch
@@ -0,0 +1,32 @@ 
+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>
+
+diff --git a/xf86drm.h b/xf86drm.h
+--- a/xf86drm.h
++++ b/xf86drm.h
+@@ -455,6 +455,21 @@ do {       register unsigned int __old __asm("o0");                \
+                : "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"               \
++                       "   strexeq %0, %3, [%1]\n"     \
++               : "=&r" (__ret)                         \
++               : "r" (lock), "r" (old), "r" (new)      \
++               : "cc","memory");                       \
++       } while (0)
++
+ #endif /* architecture */
+ #endif /* __GNUC__ >= 2 */
+
diff --git a/recipes-graphics/drm/libdrm_2.4.45.bbappend b/recipes-graphics/drm/libdrm_2.4.45.bbappend
new file mode 100644
index 0000000..8c8ea6b
--- /dev/null
+++ b/recipes-graphics/drm/libdrm_2.4.45.bbappend
@@ -0,0 +1,5 @@ 
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append_mx6 = "file://drm-update-arm.patch"
+
+PACKAGE_ARCH_mx6 = "${MACHINE_ARCH}"