FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo User

 
 
LinkBack Thread Tools
 
Old 04-16-2012, 01:09 PM
Helmut Jarausch
 
Default ATI-drivers 12.3 with Kernel 3.4

Hi,

does anybody know about patches for the ATI-drivers 12.3 to work with
git-sources 3.4_rc3 ?


Many thanks for a hint,
Helmut.
 
Old 04-16-2012, 06:45 PM
walt
 
Default ATI-drivers 12.3 with Kernel 3.4

On 04/16/2012 06:09 AM, Helmut Jarausch wrote:
>
> Hi,
>
> does anybody know about patches for the ATI-drivers 12.3 to work with git-sources 3.4_rc3 ?

Well, "patch" is too formal for the ugly hack I use

After building your new kernel you should patch one kernel header file
before building ati-drivers (taken from lkml):


--- arch/x86/include/asm/compat.h.orig 2012-04-08 11:51:29.569528342 -0700
+++ arch/x86/include/asm/compat.h 2012-04-08 14:33:58.309972502 -0700
@@ -221,6 +221,7 @@
return (u32)(unsigned long)uptr;
}

+#ifdef CONFIG_x86_64
static inline void __user *arch_compat_alloc_user_space(long len)
{
compat_uptr_t sp;
@@ -234,6 +235,15 @@

return (void __user *)round_down(sp - len, 16);
}
+#else
+
+static inline void __user *arch_compat_alloc_user_space(long len)
+{
+ struct pt_regs *regs = task_pt_regs(current);
+ return (void __user *)regs->sp -len;
+}
+
+#endif

static inline bool is_x32_task(void)
{


Here's the ugly part: some names in compat.h were changed recently, and
I can't be bothered to do a proper fix, so I hacked this together instead:

--- common/lib/modules/fglrx/build_mod/firegl_public.c 2012-03-23 13:38:48.000000000 -0700
+++ /tmp/firegl_public.c 2012-04-16 10:45:41.426582953 -0700
@@ -4181,7 +4181,7 @@
{
unsigned int p;
KCL_DEBUG5(FN_FIREGL_KAS, "%d
", level_init);
- for_each_cpu_mask(p, cpu_possible_map)
+ for (p=0; p<4; p++)
{
KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d
", p);
preempt_disable();


NOTE: my new machine has 4 cpus, numbered 0 through 3, and I hardcoded that
number into the ati code, above, instead of deciphering the new kernel headers.
Ugly, ugly, ugly. But it works perfectly

If you have two cpus you should change the p<4 to p<2, etc. And then wait
for a professional fix from ati
 
Old 04-17-2012, 07:28 AM
Helmut Jarausch
 
Default ATI-drivers 12.3 with Kernel 3.4

Many thanks, Walt,

your patches work just fine for me.

Helmut.


On 04/16/2012 08:45:14 PM, walt wrote:

On 04/16/2012 06:09 AM, Helmut Jarausch wrote:
>
> Hi,
>
> does anybody know about patches for the ATI-drivers 12.3 to work
with git-sources 3.4_rc3 ?


Well, "patch" is too formal for the ugly hack I use

After building your new kernel you should patch one kernel header file
before building ati-drivers (taken from lkml):


--- arch/x86/include/asm/compat.h.orig 2012-04-08 11:51:29.569528342
-0700
+++ arch/x86/include/asm/compat.h 2012-04-08 14:33:58.309972502
-0700

@@ -221,6 +221,7 @@
return (u32)(unsigned long)uptr;
}

+#ifdef CONFIG_x86_64
static inline void __user *arch_compat_alloc_user_space(long len)
{
compat_uptr_t sp;
@@ -234,6 +235,15 @@

return (void __user *)round_down(sp - len, 16);
}
+#else
+
+static inline void __user *arch_compat_alloc_user_space(long len)
+{
+ struct pt_regs *regs = task_pt_regs(current);
+ return (void __user *)regs->sp -len;
+}
+
+#endif

static inline bool is_x32_task(void)
{


Here's the ugly part: some names in compat.h were changed recently,
and
I can't be bothered to do a proper fix, so I hacked this together
instead:


--- common/lib/modules/fglrx/build_mod/firegl_public.c 2012-03-23
13:38:48.000000000 -0700

+++ /tmp/firegl_public.c 2012-04-16 10:45:41.426582953 -0700
@@ -4181,7 +4181,7 @@
{
unsigned int p;
KCL_DEBUG5(FN_FIREGL_KAS, "%d
", level_init);
- for_each_cpu_mask(p, cpu_possible_map)
+ for (p=0; p<4; p++)
{
KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level
for CPU # %d
", p);

preempt_disable();


NOTE: my new machine has 4 cpus, numbered 0 through 3, and I
hardcoded that
number into the ati code, above, instead of deciphering the new
kernel headers.

Ugly, ugly, ugly. But it works perfectly

If you have two cpus you should change the p<4 to p<2, etc. And then
wait

for a professional fix from ati
 

Thread Tools




All times are GMT. The time now is 08:27 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org