Subject: Au1000 PCMCIA I/O space?

From: "Ilya A. Volynets-Evenbakh" <[email-masked]>
Date: Sun, 31 Jul 2005 23:16:27 -0700

Is there any particular reason why Au1000 PCMCIA IO space is not 
included in 36-bit address fixup?
Attached patch fixes it for me, but I'm wondering if there is valid 
reason not to do that.

-- 
Ilya A. Volynets-Evenbakh
Total Knowledge. CTO
http://www.total-knowledge.com

Index: arch/mips/au1000/common/setup.c
===================================================================
RCS file: /home/cvs/linux/arch/mips/au1000/common/setup.c,v
retrieving revision 1.25
diff -u -r1.25 setup.c
--- arch/mips/au1000/common/setup.c	11 Jul 2005 10:03:23 -0000	1.25
+++ arch/mips/au1000/common/setup.c	1 Aug 2005 04:18:40 -0000
@@ -179,7 +179,7 @@
 	 * The pseudo address we use is 0xF400 0000. Any address over
 	 * 0xF400 0000 is a pcmcia pseudo address.
 	 */
-	if ((phys_addr >= 0xF4000000) && (phys_addr < 0xFFFFFFFF)) {
+	if ((phys_addr >= 0xF0000000) && (phys_addr < 0xFFFFFFFF)) {
 		return (phys_t)(phys_addr << 4);
 	}

---

From: Pete Popov <[email-masked]>
Date: Sun, 31 Jul 2005 23:31:29 -0700

> Attached patch fixes it for me, but I'm wondering if there is valid 

Because it's ioremapped by the au1x pcmcia driver and the driver passes 
the virt address to the pcmcia stack. If this isn't working for you, 
something else is broken.  You only need the fixup when you can't call 
ioremap with the entire 36 bit phys address. For example, the attribute and
common memory space are ioremapped by the "pcmcia stack" in the kernel,
not the low level socket driver over which we have control. Thus, to
work around the fact that you can't easily change the entire pcmcia
stack, you do the fixup thing. 

Unless the pcmcia stack changed, the driver should work as is.

Pete

---

From: "Ilya A. Volynets-Evenbakh" <[email-masked]>
Date: Mon, 01 Aug 2005 12:08:51 -0700

Hmm, I see. I'm not really using PCMCIA driver - I just have
IDE interface hanging off of PCMCIA controller of Au1000, so
I had to do something similar to drivers/ide/mips/swarm.c.
Thus since I can pass addresses directly to ioremap, I'm OK
anyways.