diff -Nru 15.7/common/lib/modules/fglrx/build_mod/firegl_public.c 15.7.new/common/lib/modules/fglrx/build_mod/firegl_public.c --- 15.7/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-07-04 10:31:23.000000000 -0400 +++ 15.7.new/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-08-03 21:21:13.893211082 -0400 @@ -242,6 +242,14 @@ #endif // ============================================================ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,18,0) +#define __read_cr4 read_cr4 +#define __write_cr4 write_cr4 +#endif + +// ============================================================ + /* globals */ char* firegl = NULL; @@ -3495,10 +3503,12 @@ KCL_PUB_InterruptHandlerWrap, #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) ((useMSI) ? (SA_INTERRUPT) : (SA_SHIRQ)), -#else +#elif LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) //when MSI enabled. keep irq disabled when calling the action handler, //exclude this IRQ from irq balancing (only on one CPU) ((useMSI) ? (IRQF_DISABLED) : (IRQF_SHARED)), +#else + ((useMSI) ? 0 : IRQF_SHARED), #endif dev_name, context); @@ -4498,8 +4508,8 @@ if (cpu_has_pge) { - cr4 = read_cr4(); - write_cr4(cr4 & ~X86_CR4_PGE); + cr4 = __read_cr4(); + __write_cr4(cr4 & ~X86_CR4_PGE); } __flush_tlb(); @@ -4512,7 +4522,7 @@ write_cr0(cr0 & 0xbfffffff); if (cpu_has_pge) { - write_cr4(cr4); + __write_cr4(cr4); } local_irq_restore(flags); @@ -4539,8 +4549,8 @@ if (cpu_has_pge) { - cr4 = read_cr4(); - write_cr4(cr4 & ~X86_CR4_PGE); + cr4 = __read_cr4(); + __write_cr4(cr4 & ~X86_CR4_PGE); } __flush_tlb(); @@ -4552,7 +4562,7 @@ write_cr0(cr0 & 0xbfffffff); if (cpu_has_pge) { - write_cr4(cr4); + __write_cr4(cr4); } local_irq_restore(flags); diff -Nru 15.7/common/lib/modules/fglrx/build_mod/kcl_acpi.c 15.7.new/common/lib/modules/fglrx/build_mod/kcl_acpi.c --- 15.7/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-07-04 10:31:23.000000000 -0400 +++ 15.7.new/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-08-02 19:59:54.797911610 -0400 @@ -861,7 +861,10 @@ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) if(pdev) { - pci_ignore_hotplug(pdev); + struct pci_dev *bridge = pdev->bus->self; + + pdev->ignore_hotplug = 1; + if(bridge) bridge->ignore_hotplug = 1; } #endif } diff -Nru 15.7/common/lib/modules/fglrx/build_mod/kcl_str.c 15.7.new/common/lib/modules/fglrx/build_mod/kcl_str.c --- 15.7/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-07-04 10:31:23.000000000 -0400 +++ 15.7.new/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-08-03 00:35:25.938410435 -0400 @@ -169,7 +169,7 @@ const char* s2, KCL_TYPE_SizeSigned count) { - return strnicmp(s1, s2, count); + return strncasecmp(s1, s2, count); } /** \brief Locate character in string