![](https://secure.gravatar.com/avatar/1e7f006fd590afc9882bbaadffcc064d.jpg?s=120&d=mm&r=g)
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.
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)
I will work more as time allows to find or create configure tests to make sure that the correct versions of these functions get included or patched.