[ALSA] AMD Au1x00: AC'97 controller is memory mapped
Modules: MIPS AU1x00 driver
AMD Au1x00 ALSA driver erroneously calls request_region() for AC'97
controller registers -- the controller is actually memory mapped at
addresses 0x10000000 thru 0x100FFFFF.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
diff --git a/sound/mips/au1x00.c b/sound/mips/au1x00.c
index 961453b..cf476fe 100644
--- a/sound/mips/au1x00.c
+++ b/sound/mips/au1x00.c
@@ -561,12 +561,13 @@
.read = snd_au1000_ac97_read,
};
- if ((au1000->ac97_res_port = request_region(AC97C_CONFIG,
- sizeof(struct au1000_ac97_reg), "Au1x00 AC97")) == NULL) {
+ if ((au1000->ac97_res_port = request_mem_region(CPHYSADDR(AC97C_CONFIG),
+ 0x100000, "Au1x00 AC97")) == NULL) {
snd_printk(KERN_ERR "ALSA AC97: can't grap AC97 port\n");
return -EBUSY;
}
- au1000->ac97_ioport = (struct au1000_ac97_reg *) au1000->ac97_res_port->start;
+ au1000->ac97_ioport = (struct au1000_ac97_reg *)
+ KSEG1ADDR(au1000->ac97_res_port->start);
spin_lock_init(&au1000->ac97_lock);