mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 14:37:59 +00:00
xf86-video-fglrx: add patches to build with newer kernels
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
cab74c1cfb
commit
9ad481f896
@ -0,0 +1,40 @@
|
|||||||
|
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-05-26 18:33:25.044695179 +0200
|
||||||
|
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-05-26 18:28:39.692699095 +0200
|
||||||
|
@@ -188,6 +188,12 @@
|
||||||
|
#include <linux/swap.h>
|
||||||
|
#include "asm/i387.h"
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)
|
||||||
|
+#ifdef CONFIG_X86_32
|
||||||
|
+#include "asm/fpu-internal.h"
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include "firegl_public.h"
|
||||||
|
#include "kcl_osconfig.h"
|
||||||
|
#include "kcl_io.h"
|
||||||
|
@@ -4154,7 +4160,11 @@ static int kasInitExecutionLevels(unsign
|
||||||
|
{
|
||||||
|
unsigned int p;
|
||||||
|
KCL_DEBUG5(FN_FIREGL_KAS, "%d\n", level_init);
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)
|
||||||
|
+ for_each_possible_cpu(p)
|
||||||
|
+#else
|
||||||
|
for_each_cpu_mask(p, cpu_possible_map)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d\n", p);
|
||||||
|
preempt_disable();
|
||||||
|
--- a/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:11:03.402987821 +0200
|
||||||
|
+++ b/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:13:00.273986422 +0200
|
||||||
|
@@ -217,6 +217,10 @@
|
||||||
|
* \param size [in] Number of bytes to allocate
|
||||||
|
* \return Pointer to allocated memory
|
||||||
|
*/
|
||||||
|
+#ifndef CONFIG_X86_X32
|
||||||
|
+DEFINE_PER_CPU(unsigned long, old_rsp);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
|
||||||
|
{
|
||||||
|
void __user *ret = COMPAT_ALLOC_USER_SPACE(size);
|
@ -0,0 +1,50 @@
|
|||||||
|
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-06-15 18:30:13.483762070 +0200
|
||||||
|
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-06-17 17:47:36.543041869 +0200
|
||||||
|
@@ -2106,6 +2106,12 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
|
||||||
|
+# define NO_DO_MMAP
|
||||||
|
+# define do_mmap(a,b,c,d,e,f) vm_mmap(a, b, c, d, e, f)
|
||||||
|
+# define do_munmap(a,b,c) vm_munmap(b, c)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
unsigned long ATI_API_CALL KCL_MEM_AllocLinearAddrInterval(
|
||||||
|
KCL_IO_FILE_Handle file,
|
||||||
|
unsigned long addr,
|
||||||
|
@@ -2117,10 +2123,13 @@
|
||||||
|
|
||||||
|
flags = MAP_SHARED;
|
||||||
|
prot = PROT_READ|PROT_WRITE;
|
||||||
|
-
|
||||||
|
+#ifdef NO_DO_MMAP
|
||||||
|
+ vaddr = (void *) vm_mmap(file, 0, len, prot, flags, pgoff);
|
||||||
|
+#else
|
||||||
|
down_write(¤t->mm->mmap_sem);
|
||||||
|
vaddr = (void *) do_mmap(file, 0, len, prot, flags, pgoff);
|
||||||
|
up_write(¤t->mm->mmap_sem);
|
||||||
|
+#endif
|
||||||
|
if (IS_ERR(vaddr))
|
||||||
|
return 0;
|
||||||
|
else
|
||||||
|
@@ -2131,7 +2140,9 @@
|
||||||
|
{
|
||||||
|
int retcode = 0;
|
||||||
|
|
||||||
|
+#ifndef NO_DO_MMAP
|
||||||
|
down_write(¤t->mm->mmap_sem);
|
||||||
|
+#endif
|
||||||
|
#ifdef FGL_LINUX_RHEL_MUNMAP_API
|
||||||
|
retcode = do_munmap(current->mm,
|
||||||
|
addr,
|
||||||
|
@@ -2142,7 +2153,9 @@
|
||||||
|
addr,
|
||||||
|
len);
|
||||||
|
#endif
|
||||||
|
+#ifndef NO_DO_MMAP
|
||||||
|
up_write(¤t->mm->mmap_sem);
|
||||||
|
+#endif
|
||||||
|
return retcode;
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user