Also, das erste, was mir so auffällt, ist, dass du (zumindest in diesem Code) NAMBar und NABMBar nicht initialisierst…
EDIT: Ah, das hab ich ja auch gar nicht ins Wiki geschrieben. Ich hatte wohl darauf vertraut, dass man mitbekommt, dass sich die Variablen nicht aus eigenem Antrieb oder unter Zuhilfename schwarzer Magie mit den korrekten Werten füllen, vor allem, da der Compiler da meckern sollte. Und zusammen mit dem Satz „Die Geräte besitzen zwei I/O-Räume, der erste heißt NAM-BAR (Native Audio Mixer BAR) und der zweite NABM-BAR (Native Audio Bus Master BAR).“ könnte man auch rausfinden, wie nambar und nabmbar zu setzen sind (habs jetzt mal eindeutiger hingeschrieben).
EDIT2: Hab jetzt auch die Register in der Spec gefunden (im Artikel als „Intels Programmierspezifikation (ICH6)“ verlinkt): POBDBAR ist Abschnitt 2.2.1 (x_BDBAR), POLVI ist 2.2.3 (x_LVI) und POCONTROL ist 2.2.7 (x_CR).