Explorar o código

[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>
Sergei Shtylyov %!s(int64=19) %!d(string=hai) anos
pai
achega
c5c079e31c
Modificáronse 1 ficheiros con 4 adicións e 3 borrados
  1. 4 3
      sound/mips/au1x00.c

+ 4 - 3
sound/mips/au1x00.c

@@ -561,12 +561,13 @@ snd_au1000_ac97_new(struct snd_au1000 *au1000)
 		.read = snd_au1000_ac97_read,
 		.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");
 		snd_printk(KERN_ERR "ALSA AC97: can't grap AC97 port\n");
 		return -EBUSY;
 		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);
 	spin_lock_init(&au1000->ac97_lock);