At Thu, 20 Dec 2007 10:13:29 -0800, John Stile wrote:
On Thu, 2007-12-20 at 12:09 +0100, Takashi Iwai wrote:
At Thu, 20 Dec 2007 00:37:46 +0000, forumjunk@comcast.net wrote:
For VIA platforms, to avoid the driver compile error in pci.h, reconfigure your kernel to remove SMP support, and set the architecture type to PC-compatible.
(you already know this, I'm sure): Recompile the kernel (as a paranoid, I always trash /lib/modules/<kernel_version> before making modules_install). Install the kernel, of course, and reconfigure your boot loader and/or initrd and reboot.
There are still several fixes that need to be made to get all of this to compile cleanly, but I haven't got the permanent fixes nailed down yet. I'm almost positive that these are alsa-driver configure errors or omissions. I can't (yet) find a kernel config that will avoid them. The fixes below are harmless, and they will allow you to get the driver compiled.
My guess is that the error of configure script is the only point we need to fix.
Add this definition to the top section of acore/memory_wrapper.c after the line that reads #include <linux/version.h>
#define VMALLOC_VMADDR(x) ((unsigned long)(x))
Change these lines (45 and 46 or close to that) of acore/memory_wrapper.c from:
pmd = pmd_offset(pgd, lpage); pte = pte_offset(pmd, lpage);
to
pmd = pmd_offset((pud_t *)pgd, lpage); pte = pte_offset_kernel(pmd, lpage);
The driver will then compile cleanly (at least with no errors or warnings relating to any of these changes)
Don't do this. This part shouldn't be compiled at all for recent kernels. This is, again, the problem of configure script that detected the codes wrongly.
So, could you guys show config.log? Otherwise it's hard to know what's really wrong.
thanks,
I recompiled the kernel without SMP support, and as PC-compatible (per forumjunk@comcast.net). In config.log, vmalloc_to_page shows a warning starting at line 540. "function cpuid_count causes a warning: pointer targets in passing argument 4 of 'native_cpuid' differ in signedness".
The config.log
Thanks. Does the patch below fix the probelm? Run hgcompile after applying it.
Takashi
diff -r 414b1156a8b3 configure.in --- a/configure.in Tue Dec 18 16:09:20 2007 +0100 +++ b/configure.in Fri Dec 21 12:10:53 2007 +0100 @@ -1230,7 +1230,7 @@ esac
dnl set ia32 (X86) case "$processor" in - i?86*|k?|crusoe|mcyrixiii|mwinchip|viac3_2|mcore2|geodegx*) + i?86*|k?|crusoe|mcyrixiii|mwinchip|viac3_2|mcore2|geodegx*|x86_32) if $KCC -mpreferred-stack-boundary=2 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then c_opts="-mpreferred-stack-boundary=2 $c_opts" CONFIG_X86=y