diff options
-rw-r--r-- | .SRCINFO | 13 | ||||
-rw-r--r-- | 4.10-arch-sling00-virtual_address-acpi_get_table_with_size.patch | 129 | ||||
-rw-r--r-- | PKGBUILD | 22 |
3 files changed, 152 insertions, 12 deletions
@@ -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(¤t->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(¤t->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; @@ -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 |