patch-2.3.35 linux/arch/sparc/kernel/auxio.c

Next file: linux/arch/sparc/kernel/ebus.c
Previous file: linux/arch/sparc/kernel/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.34/linux/arch/sparc/kernel/auxio.c linux/arch/sparc/kernel/auxio.c
@@ -9,6 +9,7 @@
 #include <asm/oplib.h>
 #include <asm/io.h>
 #include <asm/auxio.h>
+#include <asm/string.h>		/* memset(), Linux has no bzero() */
 
 /* Probe and map in the Auxiliary I/O register */
 unsigned char *auxio_register;
@@ -17,6 +18,7 @@
 {
 	int node, auxio_nd;
 	struct linux_prom_registers auxregs[1];
+	struct resource r;
 
 	switch (sparc_cpu_model) {
 	case sun4d:
@@ -51,10 +53,11 @@
 	prom_getproperty(auxio_nd, "reg", (char *) auxregs, sizeof(auxregs));
 	prom_apply_obio_ranges(auxregs, 0x1);
 	/* Map the register both read and write */
-	auxio_register = (unsigned char *) sparc_alloc_io(auxregs[0].phys_addr, 0,
-							  auxregs[0].reg_size,
-							  "auxiliaryIO",
-							  auxregs[0].which_io, 0x0);
+	r.flags = auxregs[0].which_io & 0xF;
+	r.start = auxregs[0].phys_addr;
+	r.end = auxregs[0].phys_addr + auxregs[0].reg_size - 1;
+	auxio_register = (unsigned char *) sbus_ioremap(&r, 0,
+	    auxregs[0].reg_size, "auxio");
 	/* Fix the address on sun4m and sun4c. */
 	if((((unsigned long) auxregs[0].phys_addr) & 3) == 3 ||
 	   sparc_cpu_model == sun4c)
@@ -72,6 +75,7 @@
 {
 	struct linux_prom_registers regs;
 	int node;
+	struct resource r;
 
 	/* Attempt to find the sun4m power control node. */
 	node = prom_getchild(prom_root_node);
@@ -84,9 +88,12 @@
 	/* Map the power control register. */
 	prom_getproperty(node, "reg", (char *)&regs, sizeof(regs));
 	prom_apply_obio_ranges(&regs, 1);
-	auxio_power_register = (volatile unsigned char *)
-		sparc_alloc_io(regs.phys_addr, 0, regs.reg_size,
-			       "power off control", regs.which_io, 0);
+	memset(&r, 0, sizeof(r));
+	r.flags = regs.which_io & 0xF;
+	r.start = regs.phys_addr;
+	r.end = regs.phys_addr + regs.reg_size - 1;
+	auxio_power_register = (unsigned char *) sbus_ioremap(&r, 0,
+	    regs.reg_size, "auxpower");
 
 	/* Display a quick message on the console. */
 	if (auxio_power_register)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)