!24 Add sw64 architecture
From: @zhouwenpei Reviewed-by: @t_feng Signed-off-by: @t_feng
This commit is contained in:
commit
1081af928a
75
libdrm-2.4.109-sw.patch
Executable file
75
libdrm-2.4.109-sw.patch
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
diff -Nuar libdrm-2.4.109.org/include/drm/drm_sarea.h libdrm-2.4.109.sw/include/drm/drm_sarea.h
|
||||||
|
--- libdrm-2.4.109.org/include/drm/drm_sarea.h 2022-02-26 01:16:04.810000000 +0000
|
||||||
|
+++ libdrm-2.4.109.sw/include/drm/drm_sarea.h 2022-02-26 04:13:03.090000000 +0000
|
||||||
|
@@ -39,7 +39,9 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* SAREA area needs to be at least a page */
|
||||||
|
-#if defined(__alpha__)
|
||||||
|
+#if defined(__sw_64__)
|
||||||
|
+#define SAREA_MAX 0x2000U
|
||||||
|
+#elif defined(__alpha__)
|
||||||
|
#define SAREA_MAX 0x2000U
|
||||||
|
#elif defined(__mips__)
|
||||||
|
#define SAREA_MAX 0x4000U
|
||||||
|
diff -Nuar libdrm-2.4.109.org/xf86drm.c libdrm-2.4.109.sw/xf86drm.c
|
||||||
|
--- libdrm-2.4.109.org/xf86drm.c 2022-02-26 01:16:04.840000000 +0000
|
||||||
|
+++ libdrm-2.4.109.sw/xf86drm.c 2022-02-26 02:33:50.700000000 +0000
|
||||||
|
@@ -1044,7 +1044,7 @@
|
||||||
|
sv.drm_dd_major = -1; /* Don't care */
|
||||||
|
sv.drm_dd_minor = -1; /* Don't care */
|
||||||
|
if (drmSetInterfaceVersion(fd, &sv)) {
|
||||||
|
-#ifndef __alpha__
|
||||||
|
+#ifndef __sw_64__
|
||||||
|
pci_domain_ok = 0;
|
||||||
|
#endif
|
||||||
|
sv.drm_di_major = 1;
|
||||||
|
diff -Nuar libdrm-2.4.109.org/xf86drm.h libdrm-2.4.109.sw/xf86drm.h
|
||||||
|
--- libdrm-2.4.109.org/xf86drm.h 2022-02-26 01:16:04.840000000 +0000
|
||||||
|
+++ libdrm-2.4.109.sw/xf86drm.h 2022-02-26 04:11:01.090000000 +0000
|
||||||
|
@@ -382,6 +382,34 @@
|
||||||
|
"r" (new)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
+#elif defined(__sw_64__)
|
||||||
|
+#define DRM_CAS(lock, old, new, ret) \
|
||||||
|
+ do{ \
|
||||||
|
+ int tmp, old32; \
|
||||||
|
+ int tmp1; \
|
||||||
|
+ __asm__ __volatile__( \
|
||||||
|
+ " addw $31, %6, %4\n" \
|
||||||
|
+ " ldi %1, %3\n" \
|
||||||
|
+ "1: lldw %0, 0(%1)\n" \
|
||||||
|
+ " cmpeq %0, %4, %2\n" \
|
||||||
|
+ " wr_f %2\n" \
|
||||||
|
+ " mov %5, %0\n" \
|
||||||
|
+ " lstw %0, 0(%1)\n" \
|
||||||
|
+ " rd_f %0\n" \
|
||||||
|
+ " beq %2, 2f\n" \
|
||||||
|
+ " beq %0, 3f\n" \
|
||||||
|
+ " memb\n" \
|
||||||
|
+ "2: cmpeq %2, 0, %2\n" \
|
||||||
|
+ ".subsection 2\n" \
|
||||||
|
+ "3: br 1b\n" \
|
||||||
|
+ ".previous" \
|
||||||
|
+ : "=&r"(tmp),"=&r"(tmp1), "=&r"(ret), \
|
||||||
|
+ "=m"(__drm_dummy_lock(lock)), \
|
||||||
|
+ "=&r"(old32) \
|
||||||
|
+ : "r"(new), "r"(old) \
|
||||||
|
+ : "memory"); \
|
||||||
|
+ } while (0)
|
||||||
|
+
|
||||||
|
#elif defined(__alpha__)
|
||||||
|
|
||||||
|
#define DRM_CAS(lock, old, new, ret) \
|
||||||
|
@@ -511,7 +539,9 @@
|
||||||
|
#define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(__alpha__)
|
||||||
|
+#if defined(__sw_64__)
|
||||||
|
+#define DRM_CAS_RESULT(_result) long _result
|
||||||
|
+#elif defined(__alpha__)
|
||||||
|
#define DRM_CAS_RESULT(_result) long _result
|
||||||
|
#elif defined(__powerpc__)
|
||||||
|
#define DRM_CAS_RESULT(_result) int _result
|
||||||
11
libdrm.spec
11
libdrm.spec
@ -47,7 +47,7 @@ end}
|
|||||||
|
|
||||||
Name: libdrm
|
Name: libdrm
|
||||||
Version: 2.4.109
|
Version: 2.4.109
|
||||||
Release: 4
|
Release: 6
|
||||||
License: MIT
|
License: MIT
|
||||||
Summary: library for direct rendering manager
|
Summary: library for direct rendering manager
|
||||||
|
|
||||||
@ -80,6 +80,9 @@ BuildRequires: pkgconfig(udev)
|
|||||||
|
|
||||||
Patch1001: %{name}-make-dri-perms-okay.patch
|
Patch1001: %{name}-make-dri-perms-okay.patch
|
||||||
Patch1002: %{name}-2.4.0-no-bc.patch
|
Patch1002: %{name}-2.4.0-no-bc.patch
|
||||||
|
%ifarch sw_64
|
||||||
|
Patch1003: libdrm-2.4.109-sw.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
%{name} provides a user space library for accessing the DRM, direct rendering manager,
|
%{name} provides a user space library for accessing the DRM, direct rendering manager,
|
||||||
@ -267,6 +270,12 @@ install -Dpm0644 -t %{buildroot}%{_udevrulesdir} %{S:2}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Nov 18 2022 zhouwenpei<zhouwenpei1@h-partners.com> - 2.4.109-6
|
||||||
|
- Optimize the patch for add sw architecture
|
||||||
|
|
||||||
|
* Fri Nov 18 2022 wuzx<wuzx1226@qq.com> - 2.4.109-5
|
||||||
|
- Add sw64 architecture
|
||||||
|
|
||||||
* Tue Oct 18 2022 Liu Zixian <liuzixian4@huawei.com> - 2.4.109-4
|
* Tue Oct 18 2022 Liu Zixian <liuzixian4@huawei.com> - 2.4.109-4
|
||||||
- remove unused BuildRequires
|
- remove unused BuildRequires
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user