summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO13
-rw-r--r--4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch129
-rw-r--r--PKGBUILD22
3 files changed, 152 insertions, 12 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 72451847691b..e5635e225eb9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = catalyst-total
pkgdesc = AMD/ATI Catalyst drivers for linux. catalyst-dkms + catalyst-utils + lib32-catalyst-utils + experimental powerXpress suppport. Radeons HD 2 3 4 xxx ARE NOT SUPPORTED
pkgver = 15.9
- pkgrel = 16
+ pkgrel = 17
url = http://www.amd.com
install = catalyst-total.install
arch = i686
@@ -9,7 +9,7 @@ pkgbase = catalyst-total
license = custom
depends = dkms
depends = linux>=3.0
- depends = linux<4.10
+ depends = linux<4.11
depends = linux-headers
depends = xorg-server>=1.7.0
depends = xorg-server<1.18.0
@@ -23,7 +23,7 @@ pkgbase = catalyst-total
depends = make
depends = patch
depends = libxinerama
- depends = mesa>=10.1.0-4
+ depends = mesa
optdepends = qt4: to run ATi Catalyst Control Center (amdcccle)
optdepends = libxxf86vm: to run ATi Catalyst Control Center (amdcccle)
optdepends = opencl-headers: headers necessary for OpenCL development
@@ -42,6 +42,8 @@ pkgbase = catalyst-total
provides = mesa-libgl
provides = mesa-libgl-git
provides = opencl-driver
+ provides = libgles
+ provides = libegl
conflicts = libgl
conflicts = catalyst
conflicts = catalyst-daemon
@@ -51,6 +53,9 @@ pkgbase = catalyst-total
conflicts = catalyst-dkms
conflicts = mesa-libgl
conflicts = mesa-libgl-git
+ conflicts = libgles
+ conflicts = libegl
+ conflicts = opencl-amd
options = staticlibs
options = libtool
options = !strip
@@ -83,6 +88,7 @@ pkgbase = catalyst-total
source = makesh-dont-check-gcc-version.patch
source = 4.7-arch-cpu_has_pge-v2.patch
source = 4.9_over_4.6-arch-get_user_pages_remote.patch
+ source = 4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch
md5sums = d2de2df6946b452c266a3c892e6e46ff
md5sums = af7fb8ee4fc96fd54c5b483e33dc71c4
md5sums = bdafe749e046bfddee2d1c5e90eabd83
@@ -111,6 +117,7 @@ pkgbase = catalyst-total
md5sums = 10829e3b992b3e80a6e78c8e27748703
md5sums = 37eef5103a11d8136979463e7bc31091
md5sums = 194cb44e9e2ab0e65b6267aca66d0400
+ md5sums = 05f6364db877d9c4bdf1592deda905b7
pkgname = catalyst-total
diff --git a/4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch b/4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch
new file mode 100644
index 000000000000..b4103abd82eb
--- /dev/null
+++ b/4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch
@@ -0,0 +1,129 @@
+diff -uNr 17.2/common/lib/modules/fglrx/build_mod/firegl_public.c 17.2b/common/lib/modules/fglrx/build_mod/firegl_public.c
+--- 17.2/common/lib/modules/fglrx/build_mod/firegl_public.c 2017-02-12 19:41:19.000000000 +0100
++++ 17.2b/common/lib/modules/fglrx/build_mod/firegl_public.c 2017-02-12 20:27:36.924630194 +0100
+@@ -3225,7 +3225,9 @@
+ int ret;
+
+ down_read(&current->mm->mmap_sem);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 1, (struct page **)page_list, NULL, NULL);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
+ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 1, (struct page **)page_list, NULL);
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
+ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);
+@@ -3249,7 +3251,9 @@
+ int ret;
+
+ down_read(&current->mm->mmap_sem);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 0, (struct page **)page_list, NULL, NULL);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
+ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 0, (struct page **)page_list, NULL);
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
+ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);
+@@ -3626,7 +3630,9 @@
+ unsigned long vma_offset;
+ unsigned long pte_linear;
+ mem_map_t* pMmPage;
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ unsigned long address = (unsigned long) (vmf->address);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ unsigned long address = (unsigned long) (vmf->virtual_address);
+ #endif
+
+@@ -3701,7 +3707,9 @@
+ {
+ unsigned long kaddr;
+ mem_map_t* pMmPage;
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ unsigned long address = (unsigned long) (vmf->address);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ unsigned long address = (unsigned long) (vmf->virtual_address);
+ #endif
+
+@@ -3746,7 +3754,9 @@
+ {
+ unsigned long kaddr;
+ mem_map_t* pMmPage;
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ unsigned long address = (unsigned long) (vmf->address);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ unsigned long address = (unsigned long) (vmf->virtual_address);
+ #endif
+
+@@ -3809,7 +3819,9 @@
+ mem_map_t* pMmPage;
+ struct firegl_pcie_mem* pciemem;
+ unsigned long* pagelist;
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ unsigned long address = (unsigned long) (vmf->address);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ unsigned long address = (unsigned long) (vmf->virtual_address);
+ #endif
+
+@@ -3871,7 +3883,9 @@
+
+ unsigned long offset;
+ struct page *page;
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ unsigned long address = (unsigned long) (vmf->address);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ unsigned long address = (unsigned long) (vmf->virtual_address);
+ #endif
+
+@@ -4166,12 +4180,21 @@
+
+ #else
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++#define TRACE_FAULT(_f, _v,_a) \
++ int ret; \
++ KCL_DEBUG_TRACEIN(FN_DRM_NOPAGE, (unsigned long)_a->address, NULL); \
++ ret = _f(_v,_a); \
++ KCL_DEBUG_TRACEOUT(FN_DRM_NOPAGE, ret, NULL); \
++ return ret;
++#else
+ #define TRACE_FAULT(_f, _v,_a) \
+ int ret; \
+ KCL_DEBUG_TRACEIN(FN_DRM_NOPAGE, (unsigned long)_a->virtual_address, NULL); \
+ ret = _f(_v,_a); \
+ KCL_DEBUG_TRACEOUT(FN_DRM_NOPAGE, ret, NULL); \
+ return ret;
++#endif
+
+ static int ip_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ {
+diff -uNr 17.2/common/lib/modules/fglrx/build_mod/kcl_acpi.c 17.2b/common/lib/modules/fglrx/build_mod/kcl_acpi.c
+--- 17.2/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2017-02-12 19:41:19.000000000 +0100
++++ 17.2b/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2017-02-12 20:40:04.632067465 +0100
+@@ -363,7 +363,10 @@
+ {
+ struct acpi_table_header *hdr;
+ acpi_size tbl_size ;
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,3)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ tbl_size = hdr->length;
++ if (!ACPI_SUCCESS(acpi_get_table("VFCT", 1, &hdr)))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,3)
+ if (!ACPI_SUCCESS(acpi_get_table_with_size("VFCT", 1, &hdr, &tbl_size)))
+ #else
+ tbl_size = 0x7fffffff;
+@@ -1041,7 +1044,10 @@
+ return KCL_ACPI_ERROR;
+ }
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,3)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++ tbl_size = hdr->length;
++ if (!ACPI_SUCCESS(acpi_get_table(id, 0, &hdr)))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,3)
+ if (!ACPI_SUCCESS(acpi_get_table_with_size(id, 0, &hdr, &tbl_size)))
+ #else
+ tbl_size = 0x7fffffff;
diff --git a/PKGBUILD b/PKGBUILD
index 38ea768fafb8..6319f80921c5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -23,35 +23,36 @@
# Contributor: Philip Muller @ Manjaro (4.4 kernel patch)
# Contributor: aslmaswd (acpi main script)
# Contributor: npfeiler (libcl/opencl-icd-loader cleaning)
+# Contributor: sling00 (4.10 kernel patch)
pkgname=catalyst-total
pkgver=15.9
-pkgrel=16
+pkgrel=17
_amdver=15.201.1151
pkgdesc="AMD/ATI Catalyst drivers for linux. catalyst-dkms + catalyst-utils + lib32-catalyst-utils + experimental powerXpress suppport. Radeons HD 2 3 4 xxx ARE NOT SUPPORTED"
arch=('i686' 'x86_64')
url="http://www.amd.com"
license=('custom')
options=('staticlibs' 'libtool' '!strip' '!upx')
-depends=('dkms' 'linux>=3.0' 'linux<4.10' 'linux-headers' 'xorg-server>=1.7.0' 'xorg-server<1.18.0' 'libxrandr' 'libsm' 'fontconfig' 'libxcursor' 'libxi' 'gcc-libs' 'gcc>4.0.0' 'make' 'patch' 'libxinerama' 'mesa>=10.1.0-4')
+depends=('dkms' 'linux>=3.0' 'linux<4.11' 'linux-headers' 'xorg-server>=1.7.0' 'xorg-server<1.18.0' 'libxrandr' 'libsm' 'fontconfig' 'libxcursor' 'libxi' 'gcc-libs' 'gcc>4.0.0' 'make' 'patch' 'libxinerama' 'mesa')
optdepends=('qt4: to run ATi Catalyst Control Center (amdcccle)'
'libxxf86vm: to run ATi Catalyst Control Center (amdcccle)'
'opencl-headers: headers necessary for OpenCL development'
'acpid: acpi event support / atieventsd'
'procps-ng: brings pgrep used in acpi event support'
'opencl-icd-loader: OpenCL ICD Bindings')
-conflicts=('libgl' 'catalyst' 'catalyst-daemon' 'catalyst-generator' 'catalyst-hook' 'catalyst-utils' 'catalyst-dkms' 'mesa-libgl' 'mesa-libgl-git')
-provides=('libgl' "libatical=${pkgver}" "catalyst=${pkgver}" "catalyst-utils=${pkgver}" "catalyst-hook=${pkgver}" "catalyst-libgl=${pkgver}" "opencl-catalyst=${pkgver}" 'dri' 'libtxc_dxtn' 'mesa-libgl' 'mesa-libgl-git' 'opencl-driver')
+conflicts=('libgl' 'catalyst' 'catalyst-daemon' 'catalyst-generator' 'catalyst-hook' 'catalyst-utils' 'catalyst-dkms' 'mesa-libgl' 'mesa-libgl-git' 'libgles' 'libegl' 'opencl-amd')
+provides=('libgl' "libatical=${pkgver}" "catalyst=${pkgver}" "catalyst-utils=${pkgver}" "catalyst-hook=${pkgver}" "catalyst-libgl=${pkgver}" "opencl-catalyst=${pkgver}" 'dri' 'libtxc_dxtn' 'mesa-libgl' 'mesa-libgl-git' 'opencl-driver' 'libgles' 'libegl')
if [ "${CARCH}" = "x86_64" ]; then
warning "x86_64 system detected"
warning "[multilib] repository must be uncommented in /etc/pacman.conf to add lib32-catalyst-utils into the package"
if [[ `cat /etc/pacman.conf | grep -c "#\[multilib]"` = 0 ]]; then
warning "OK, lib32-catalyst-utils will be added to the package"
- depends+=('lib32-libxext' 'lib32-libdrm' 'lib32-libxinerama' 'lib32-mesa>=10.1.0-4')
- conflicts+=('lib32-libgl' 'lib32-catalyst-utils' 'lib32-mesa-libgl' 'lib32-mesa-libgl-git')
- provides+=('lib32-libgl' "lib32-catalyst-utils=${pkgver}" "lib32-catalyst-libgl=${pkgver}" "lib32-opencl-catalyst=${pkgver}" 'lib32-dri' 'lib32-libtxc_dxtn' 'lib32-mesa-libgl' 'lib32-mesa-libgl-git' 'lib32-opencl-driver')
+ depends+=('lib32-libxext' 'lib32-libdrm' 'lib32-libxinerama' 'lib32-mesa')
+ conflicts+=('lib32-libgl' 'lib32-catalyst-utils' 'lib32-mesa-libgl' 'lib32-mesa-libgl-git' 'lib32-libgles' 'lib32-libegl' 'lib32-opencl-amd')
+ provides+=('lib32-libgl' "lib32-catalyst-utils=${pkgver}" "lib32-catalyst-libgl=${pkgver}" "lib32-opencl-catalyst=${pkgver}" 'lib32-dri' 'lib32-libtxc_dxtn' 'lib32-mesa-libgl' 'lib32-mesa-libgl-git' 'lib32-opencl-driver' 'lib32-libgles' 'lib32-libegl')
optdepends+=('lib32-opencl-icd-loader: OpenCL ICD Bindings (32-bit)')
else
warning "lib32-catalyst-utils will NOT be added to the package"
@@ -96,7 +97,8 @@ source=(
dkms.conf
makesh-dont-check-gcc-version.patch
4.7-arch-cpu_has_pge-v2.patch
- 4.9_over_4.6-arch-get_user_pages_remote.patch)
+ 4.9_over_4.6-arch-get_user_pages_remote.patch
+ 4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch)
md5sums=('d2de2df6946b452c266a3c892e6e46ff'
'af7fb8ee4fc96fd54c5b483e33dc71c4'
@@ -125,7 +127,8 @@ md5sums=('d2de2df6946b452c266a3c892e6e46ff'
'23d569abfdd7de433d76e003e4b3ccf9'
'10829e3b992b3e80a6e78c8e27748703'
'37eef5103a11d8136979463e7bc31091'
- '194cb44e9e2ab0e65b6267aca66d0400')
+ '194cb44e9e2ab0e65b6267aca66d0400'
+ '05f6364db877d9c4bdf1592deda905b7')
build() {
@@ -317,6 +320,7 @@ package() {
patch -Np1 -i ../makesh-dont-check-gcc-version.patch
patch -Np1 -i ../4.7-arch-cpu_has_pge-v2.patch
patch -Np1 -i ../4.9_over_4.6-arch-get_user_pages_remote.patch
+ patch -Np1 -i ../4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch
# Prepare modules source files
install -dm755 ${pkgdir}/usr/src/fglrx-${pkgver}/2.6.x