From 4130c9a970b65c23cf44abd02eef870c9f2f18c8 Mon Sep 17 00:00:00 2001 From: BlackNoxis Date: Thu, 30 Apr 2015 22:57:21 +0300 Subject: [x11-drivers/ati-drivers] thanks mudler for the >=4.0 kernel patch --- x11-drivers/ati-drivers/ati-drivers-13.12.ebuild | 5 ++ .../ati-drivers/ati-drivers-14.12-r3.ebuild | 5 ++ x11-drivers/ati-drivers/ati-drivers-14.4.ebuild | 7 ++- .../ati-drivers/files/ati-drivers-linux-4.0.patch | 72 ++++++++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 x11-drivers/ati-drivers/files/ati-drivers-linux-4.0.patch (limited to 'x11-drivers') diff --git a/x11-drivers/ati-drivers/ati-drivers-13.12.ebuild b/x11-drivers/ati-drivers/ati-drivers-13.12.ebuild index 5af335c3..b6e549f9 100644 --- a/x11-drivers/ati-drivers/ati-drivers-13.12.ebuild +++ b/x11-drivers/ati-drivers/ati-drivers-13.12.ebuild @@ -156,6 +156,11 @@ src_prepare() { # Linux 3.13 support epatch "${FILESDIR}/buildfix_kernel_3.13.patch" + # Linux 4.0 support + if kernel_is ge 4 0; then + epatch "${FILESDIR}/${PN}-linux-4.0.patch" + fi + # Compile fix, https://bugs.gentoo.org/show_bug.cgi?id=454870 use pax_kernel && epatch "${FILESDIR}/const-notifier-block.patch" diff --git a/x11-drivers/ati-drivers/ati-drivers-14.12-r3.ebuild b/x11-drivers/ati-drivers/ati-drivers-14.12-r3.ebuild index 168b39e8..b351099a 100644 --- a/x11-drivers/ati-drivers/ati-drivers-14.12-r3.ebuild +++ b/x11-drivers/ati-drivers/ati-drivers-14.12-r3.ebuild @@ -167,6 +167,11 @@ src_prepare() { # Linux 3.19 support epatch "${FILESDIR}/${P}-linux-3.19.patch" + # Linux 4.0 support + if kernel_is ge 4 0; then + epatch "${FILESDIR}/${PN}-linux-4.0.patch" + fi + cd "${MODULE_DIR}" # bugged fglrx build system, this file should be copied by hand cp ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 2.6.x diff --git a/x11-drivers/ati-drivers/ati-drivers-14.4.ebuild b/x11-drivers/ati-drivers/ati-drivers-14.4.ebuild index 9892b7c8..afc92344 100644 --- a/x11-drivers/ati-drivers/ati-drivers-14.4.ebuild +++ b/x11-drivers/ati-drivers/ati-drivers-14.4.ebuild @@ -154,12 +154,17 @@ src_prepare() { # Fix #483400 epatch "${FILESDIR}/fgl_glxgears-do-not-include-glATI.patch" - # Sabayon 3.9 kernels are versioned 3.9.0 + # Kogaion 3.9 kernels are versioned 3.9.0 epatch "${FILESDIR}/ati-drivers-14.4-acpi.patch" # Compile fix, https://bugs.gentoo.org/show_bug.cgi?id=454870 use pax_kernel && epatch "${FILESDIR}/const-notifier-block.patch" + # Linux 4.0 support + if kernel_is ge 4 0; then + epatch "${FILESDIR}/${PN}-linux-4.0.patch" + fi + cd "${MODULE_DIR}" # bugged fglrx build system, this file should be copied by hand cp ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 2.6.x diff --git a/x11-drivers/ati-drivers/files/ati-drivers-linux-4.0.patch b/x11-drivers/ati-drivers/files/ati-drivers-linux-4.0.patch new file mode 100644 index 00000000..9b321955 --- /dev/null +++ b/x11-drivers/ati-drivers/files/ati-drivers-linux-4.0.patch @@ -0,0 +1,72 @@ +diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c +index 0f7399d..eb23e06 100644 +--- a/common/lib/modules/fglrx/build_mod/firegl_public.c ++++ b/common/lib/modules/fglrx/build_mod/firegl_public.c +@@ -4240,8 +4240,13 @@ static void kcl_mem_pat_setup (void *info) + + if (cpu_has_pge) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,20,0) + cr4 = read_cr4(); + write_cr4(cr4 & ~X86_CR4_PGE); ++#else ++ cr4 = __read_cr4(); ++ __write_cr4(cr4 & ~X86_CR4_PGE); ++#endif + } + __flush_tlb(); + +@@ -4254,7 +4259,11 @@ static void kcl_mem_pat_setup (void *info) + write_cr0(cr0 & 0xbfffffff); + if (cpu_has_pge) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,20,0) + write_cr4(cr4); ++#else ++ __write_cr4(cr4); ++#endif + } + local_irq_restore(flags); + +@@ -4281,8 +4290,13 @@ static void kcl_mem_pat_restore (void *info) + + if (cpu_has_pge) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,20,0) + cr4 = read_cr4(); + write_cr4(cr4 & ~X86_CR4_PGE); ++#else ++ cr4 = __read_cr4(); ++ __write_cr4(cr4 & ~X86_CR4_PGE); ++#endif + } + __flush_tlb(); + +@@ -4294,7 +4308,11 @@ static void kcl_mem_pat_restore (void *info) + write_cr0(cr0 & 0xbfffffff); + if (cpu_has_pge) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,20,0) + write_cr4(cr4); ++#else ++ __write_cr4(cr4); ++#endif + } + local_irq_restore(flags); + +diff --git a/common/lib/modules/fglrx/build_mod/kcl_str.c b/common/lib/modules/fglrx/build_mod/kcl_str.c +index 2d89eb0..6df117c 100644 +--- a/common/lib/modules/fglrx/build_mod/kcl_str.c ++++ b/common/lib/modules/fglrx/build_mod/kcl_str.c +@@ -169,7 +169,11 @@ int ATI_API_CALL KCL_STR_Strnicmp(const char* s1, + const char* s2, + KCL_TYPE_SizeSigned count) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,20,0) + return strnicmp(s1, s2, count); ++#else ++ return strncasecmp(s1, s2, count); ++#endif + } + + /** \brief Locate character in string -- cgit v1.2.3