From e8b1f370194ae6ed514ee42eef453046e12b12e9 Mon Sep 17 00:00:00 2001 From: Weisson Date: Wed, 6 Nov 2024 10:34:21 +0800 Subject: [PATCH 1/3] Revert "cherry-pick `add sw arch #69144edad3fa9f6d32041144524ba7509d3bc9a3`." This reverts commit f53f3fa8c92025d8d45a062036026fb547d49f16. --- libdrm-2.4.114-sw.patch | 90 ----------------------------------------- libdrm.spec | 9 +---- 2 files changed, 1 insertion(+), 98 deletions(-) delete mode 100644 libdrm-2.4.114-sw.patch diff --git a/libdrm-2.4.114-sw.patch b/libdrm-2.4.114-sw.patch deleted file mode 100644 index 3f23e4c..0000000 --- a/libdrm-2.4.114-sw.patch +++ /dev/null @@ -1,90 +0,0 @@ -From e275281fadc09630adde823c72047f6695dd8746 Mon Sep 17 00:00:00 2001 -From: Weisson -Date: Thu, 1 Feb 2024 20:58:35 +0800 -Subject: [PATCH] add sw support. - -Signed-off-by: Weisson ---- - include/drm/drm_sarea.h | 2 ++ - xf86drm.c | 2 +- - xf86drm.h | 32 +++++++++++++++++++++++++++++++- - 3 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/include/drm/drm_sarea.h b/include/drm/drm_sarea.h -index 93025be..431287a 100644 ---- a/include/drm/drm_sarea.h -+++ b/include/drm/drm_sarea.h -@@ -39,6 +39,8 @@ extern "C" { - #endif - - /* SAREA area needs to be at least a page */ -+#if defined(__sw_64__) -+#define SAREA_MAX 0x2000U - #if defined(__alpha__) - #define SAREA_MAX 0x2000U - #elif defined(__mips__) -diff --git a/xf86drm.c b/xf86drm.c -index 76d830f..db6dabb 100644 ---- a/xf86drm.c -+++ b/xf86drm.c -@@ -1045,7 +1045,7 @@ static int drmOpenByBusid(const char *busid, int type) - 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 --git a/xf86drm.h b/xf86drm.h -index 4c79a65..3a5e069 100644 ---- a/xf86drm.h -+++ b/xf86drm.h -@@ -382,6 +382,34 @@ typedef struct _drmSetVersion { - "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 @@ do { register unsigned int __old __asm("o0"); \ - #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 --- -2.31.1 diff --git a/libdrm.spec b/libdrm.spec index 3da4e50..1cbce63 100644 --- a/libdrm.spec +++ b/libdrm.spec @@ -51,12 +51,10 @@ end} %bcond_without install_test_programs %bcond_without udev -%define anolis_release .0.1 - Name: libdrm Summary: Direct Rendering Manager runtime library Version: 2.4.117 -Release: 1%{anolis_release}%{?dist} +Release: 1%{?dist} License: MIT URL: https://dri.freedesktop.org @@ -90,7 +88,6 @@ BuildRequires: chrpath Patch1001: libdrm-make-dri-perms-okay.patch # remove backwards compat not needed on Fedora Patch1002: libdrm-2.4.0-no-bc.patch -Patch1003: libdrm-2.4.114-sw.patch %description Direct Rendering Manager runtime library @@ -282,10 +279,6 @@ cp %{SOURCE1} %{buildroot}%{_docdir}/libdrm %endif %changelog -* Tue May 21 2024 wxiat - 2.4.117-1.0.1 -- cherry-pick `add sw arch #69144edad3fa9f6d32041144524ba7509d3bc9a3`. -- cherry-pick `Fix sw macro #ffacd58d562e62de7abf3ed2128aaaee26a703e2`. - * Mon Nov 06 2023 José Expósito - 2.4.117-1 - Update to 2.4.117 -- Gitee From caa7ddbdfa808e60b273d00b2d1b74721c49e188 Mon Sep 17 00:00:00 2001 From: wxiat Date: Mon, 31 Jul 2023 15:39:03 +0800 Subject: [PATCH 2/3] cherry-pick `add sw arch #69144edad3fa9f6d32041144524ba7509d3bc9a3`. cherry-pick `Fix sw macro #ffacd58d562e62de7abf3ed2128aaaee26a703e2`. Signed-off-by: Weisson --- libdrm-2.4.114-sw.patch | 93 +++++++++++++++++++++++++++++++++++++++++ libdrm.spec | 9 +++- 2 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 libdrm-2.4.114-sw.patch diff --git a/libdrm-2.4.114-sw.patch b/libdrm-2.4.114-sw.patch new file mode 100644 index 0000000..900b102 --- /dev/null +++ b/libdrm-2.4.114-sw.patch @@ -0,0 +1,93 @@ +From 34ccc56ce6a51f8ff3f84132be1e0d48940863cb Mon Sep 17 00:00:00 2001 +From: Weisson +Date: Thu, 1 Feb 2024 20:58:35 +0800 +Subject: [PATCH] add sw support. + +Signed-off-by: Weisson +--- + include/drm/drm_sarea.h | 4 +++- + xf86drm.c | 2 +- + xf86drm.h | 32 +++++++++++++++++++++++++++++++- + 3 files changed, 35 insertions(+), 3 deletions(-) + +diff --git a/include/drm/drm_sarea.h b/include/drm/drm_sarea.h +index 93025be..60b979a 100644 +--- a/include/drm/drm_sarea.h ++++ b/include/drm/drm_sarea.h +@@ -39,7 +39,9 @@ extern "C" { + #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 --git a/xf86drm.c b/xf86drm.c +index 5295abe..7bcfa28 100644 +--- a/xf86drm.c ++++ b/xf86drm.c +@@ -1112,7 +1112,7 @@ static int drmOpenByBusid(const char *busid, int type) + 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 --git a/xf86drm.h b/xf86drm.h +index 7a5b4ae..8e4d7cb 100644 +--- a/xf86drm.h ++++ b/xf86drm.h +@@ -382,6 +382,34 @@ typedef struct _drmSetVersion { + "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 @@ do { register unsigned int __old __asm("o0"); \ + #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 +-- +2.31.1 + diff --git a/libdrm.spec b/libdrm.spec index 1cbce63..3da4e50 100644 --- a/libdrm.spec +++ b/libdrm.spec @@ -51,10 +51,12 @@ end} %bcond_without install_test_programs %bcond_without udev +%define anolis_release .0.1 + Name: libdrm Summary: Direct Rendering Manager runtime library Version: 2.4.117 -Release: 1%{?dist} +Release: 1%{anolis_release}%{?dist} License: MIT URL: https://dri.freedesktop.org @@ -88,6 +90,7 @@ BuildRequires: chrpath Patch1001: libdrm-make-dri-perms-okay.patch # remove backwards compat not needed on Fedora Patch1002: libdrm-2.4.0-no-bc.patch +Patch1003: libdrm-2.4.114-sw.patch %description Direct Rendering Manager runtime library @@ -279,6 +282,10 @@ cp %{SOURCE1} %{buildroot}%{_docdir}/libdrm %endif %changelog +* Tue May 21 2024 wxiat - 2.4.117-1.0.1 +- cherry-pick `add sw arch #69144edad3fa9f6d32041144524ba7509d3bc9a3`. +- cherry-pick `Fix sw macro #ffacd58d562e62de7abf3ed2128aaaee26a703e2`. + * Mon Nov 06 2023 José Expósito - 2.4.117-1 - Update to 2.4.117 -- Gitee From 0b768d0a0d64a79cdda352bad658ffd54803cdb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E5=90=8E=E9=93=B6?= <@kanghou-silver> Date: Wed, 17 Apr 2024 17:38:05 +0800 Subject: [PATCH 3/3] add sw8a support. delete wr_f and rd_f in xf86drm.h. Signed-off-by: Weisson --- libdrm-2.4.114-sw.patch => libdrm-2.4.117-sw.patch | 0 libdrm-2.4.117-sw8a.patch | 14 ++++++++++++++ libdrm.spec | 8 ++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) rename libdrm-2.4.114-sw.patch => libdrm-2.4.117-sw.patch (100%) create mode 100644 libdrm-2.4.117-sw8a.patch diff --git a/libdrm-2.4.114-sw.patch b/libdrm-2.4.117-sw.patch similarity index 100% rename from libdrm-2.4.114-sw.patch rename to libdrm-2.4.117-sw.patch diff --git a/libdrm-2.4.117-sw8a.patch b/libdrm-2.4.117-sw8a.patch new file mode 100644 index 0000000..4650002 --- /dev/null +++ b/libdrm-2.4.117-sw8a.patch @@ -0,0 +1,14 @@ +diff -uNar libdrm-2.4.115.org/xf86drm.h libdrm-2.4.115.new/xf86drm.h +--- libdrm-2.4.115.org/xf86drm.h 2024-04-17 14:28:53.679049167 +0800 ++++ libdrm-2.4.115.new/xf86drm.h 2024-04-17 14:31:45.650434817 +0800 +@@ -392,10 +392,8 @@ + " 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" \ diff --git a/libdrm.spec b/libdrm.spec index 3da4e50..9511a88 100644 --- a/libdrm.spec +++ b/libdrm.spec @@ -51,7 +51,7 @@ end} %bcond_without install_test_programs %bcond_without udev -%define anolis_release .0.1 +%define anolis_release .0.2 Name: libdrm Summary: Direct Rendering Manager runtime library @@ -90,7 +90,8 @@ BuildRequires: chrpath Patch1001: libdrm-make-dri-perms-okay.patch # remove backwards compat not needed on Fedora Patch1002: libdrm-2.4.0-no-bc.patch -Patch1003: libdrm-2.4.114-sw.patch +Patch1003: libdrm-2.4.117-sw.patch +Patch1004: libdrm-2.4.117-sw8a.patch %description Direct Rendering Manager runtime library @@ -282,6 +283,9 @@ cp %{SOURCE1} %{buildroot}%{_docdir}/libdrm %endif %changelog +* Tue Nov 5 2024 wxiat - 2.4.117-1.0.2 +- cherry-pick `add sw8a support #f9d26569486686a856a8599a0daf83944c3212e1`. + * Tue May 21 2024 wxiat - 2.4.117-1.0.1 - cherry-pick `add sw arch #69144edad3fa9f6d32041144524ba7509d3bc9a3`. - cherry-pick `Fix sw macro #ffacd58d562e62de7abf3ed2128aaaee26a703e2`. -- Gitee