From 558a4dbb2e9426a9afb0b322328e3f76aedd2bf2 Mon Sep 17 00:00:00 2001 From: Zhao Hang Date: Tue, 21 May 2024 13:58:44 +0800 Subject: [PATCH 1/2] update to libdrm-2.4.117-1.src.rpm Signed-off-by: Zhao Hang --- download | 2 +- libdrm-2.4.114-sw.patch | 90 ----------------------------------------- libdrm.spec | 12 ++---- 3 files changed, 5 insertions(+), 99 deletions(-) delete mode 100644 libdrm-2.4.114-sw.patch diff --git a/download b/download index 29e08d2..bebd0aa 100644 --- a/download +++ b/download @@ -1 +1 @@ -5403981a20c964f4c893ff91393652bd libdrm-2.4.115.tar.xz +69b17be6250b2c863411e0c5f6aefd6a libdrm-2.4.117.tar.xz 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 fa8f7b2..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.115 -Release: 1%{anolis_release}%{?dist} +Version: 2.4.117 +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,9 +279,8 @@ cp %{SOURCE1} %{buildroot}%{_docdir}/libdrm %endif %changelog -* Mon Mar 25 2024 wxiat - 2.4.115-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 * Wed May 17 2023 Dave Airlie - 2.4.115-1 - Update to 2.4.115 -- Gitee From f53f3fa8c92025d8d45a062036026fb547d49f16 Mon Sep 17 00:00:00 2001 From: wxiat Date: Mon, 31 Jul 2023 15:39:03 +0800 Subject: [PATCH 2/2] cherry-pick `add sw arch #69144edad3fa9f6d32041144524ba7509d3bc9a3`. cherry-pick `Fix sw macro #ffacd58d562e62de7abf3ed2128aaaee26a703e2`. Signed-off-by: Weisson --- libdrm-2.4.114-sw.patch | 90 +++++++++++++++++++++++++++++++++++++++++ libdrm.spec | 9 ++++- 2 files changed, 98 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..3f23e4c --- /dev/null +++ b/libdrm-2.4.114-sw.patch @@ -0,0 +1,90 @@ +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 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