mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-22 14:45:27 +00:00
linuxPackages.ati_drivers_x11: patch for kernel 4.7+ (#19810)
This commit is contained in:
parent
5d804566df
commit
f0bdca82c0
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, kernel ? null, which
|
{ stdenv, lib, fetchurl, kernel ? null, which
|
||||||
, xorg, makeWrapper, glibc, patchelf, unzip
|
, xorg, makeWrapper, glibc, patchelf, unzip
|
||||||
, fontconfig, freetype, mesa # for fgl_glxgears
|
, fontconfig, freetype, mesa # for fgl_glxgears
|
||||||
, # Whether to build the libraries only (i.e. not the kernel module or
|
, # Whether to build the libraries only (i.e. not the kernel module or
|
||||||
|
@ -75,9 +75,12 @@ stdenv.mkDerivation rec {
|
||||||
./patches/15.9-preempt.patch
|
./patches/15.9-preempt.patch
|
||||||
./patches/15.9-sep_printf.patch ]
|
./patches/15.9-sep_printf.patch ]
|
||||||
++ optionals ( kernel != null &&
|
++ optionals ( kernel != null &&
|
||||||
(builtins.compareVersions kernel.version "4.6") >= 0 )
|
(lib.versionAtLeast kernel.version "4.6") )
|
||||||
[ ./patches/kernel-4.6-get_user_pages.patch
|
[ ./patches/kernel-4.6-get_user_pages.patch
|
||||||
./patches/kernel-4.6-page_cache_release-put_page.patch ];
|
./patches/kernel-4.6-page_cache_release-put_page.patch ]
|
||||||
|
++ optionals ( kernel != null &&
|
||||||
|
(lib.versionAtLeast kernel.version "4.7") )
|
||||||
|
[ ./patches/4.7-arch-cpu_has_pge-v2.patch ];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM
|
[ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM
|
||||||
|
@ -124,7 +127,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "ATI Catalyst display drivers";
|
description = "ATI Catalyst display drivers";
|
||||||
homepage = http://support.amd.com/us/gpudownload/Pages/index.aspx;
|
homepage = http://support.amd.com/us/gpudownload/Pages/index.aspx;
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
maintainers = with maintainers; [ marcweber offline jgeerds ];
|
maintainers = with maintainers; [ marcweber offline jgeerds jerith666 ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
hydraPlatforms = [];
|
hydraPlatforms = [];
|
||||||
# Copied from the nvidia default.nix to prevent a store collision.
|
# Copied from the nvidia default.nix to prevent a store collision.
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||||
|
--- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-12-18 19:47:41.000000000 +0100
|
||||||
|
+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c 2016-08-15 15:09:37.228538907 +0200
|
||||||
|
@@ -4518,7 +4518,11 @@
|
||||||
|
write_cr0(cr0);
|
||||||
|
wbinvd();
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
|
||||||
|
+ if (boot_cpu_has(X86_FEATURE_PGE))
|
||||||
|
+#else
|
||||||
|
if (cpu_has_pge)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
cr4 = READ_CR4();
|
||||||
|
WRITE_CR4(cr4 & ~X86_CR4_PGE);
|
||||||
|
@@ -4532,7 +4536,11 @@
|
||||||
|
wbinvd();
|
||||||
|
__flush_tlb();
|
||||||
|
write_cr0(cr0 & 0xbfffffff);
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
|
||||||
|
+ if (boot_cpu_has(X86_FEATURE_PGE))
|
||||||
|
+#else
|
||||||
|
if (cpu_has_pge)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
WRITE_CR4(cr4);
|
||||||
|
}
|
||||||
|
@@ -4559,7 +4567,11 @@
|
||||||
|
write_cr0(cr0);
|
||||||
|
wbinvd();
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
|
||||||
|
+ if (boot_cpu_has(X86_FEATURE_PGE))
|
||||||
|
+#else
|
||||||
|
if (cpu_has_pge)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
cr4 = READ_CR4();
|
||||||
|
WRITE_CR4(cr4 & ~X86_CR4_PGE);
|
||||||
|
@@ -4572,7 +4584,11 @@
|
||||||
|
wbinvd();
|
||||||
|
__flush_tlb();
|
||||||
|
write_cr0(cr0 & 0xbfffffff);
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
|
||||||
|
+ if (boot_cpu_has(X86_FEATURE_PGE))
|
||||||
|
+#else
|
||||||
|
if (cpu_has_pge)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
WRITE_CR4(cr4);
|
||||||
|
}
|
||||||
|
diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h
|
||||||
|
--- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 2015-12-18 19:47:41.000000000 +0100
|
||||||
|
+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h 2016-08-15 15:09:05.815141238 +0200
|
||||||
|
@@ -650,9 +650,15 @@
|
||||||
|
#define cpu_has_pat test_bit(X86_FEATURE_PAT, (void *) &boot_cpu_data.x86_capability)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
|
||||||
|
+#ifndef boot_cpu_has(X86_FEATURE_PGE)
|
||||||
|
+#define boot_cpu_has(X86_FEATURE_PGE) test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
|
||||||
|
+#endif
|
||||||
|
+#else
|
||||||
|
#ifndef cpu_has_pge
|
||||||
|
#define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* 2.6.29 defines pgprot_writecombine as a macro which resolves to a
|
||||||
|
* GPL-only function with the same name. So we always use our own
|
Loading…
Reference in a new issue