summaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/pxa2xx_base.c
diff options
context:
space:
mode:
authorMilan Plzik <milan.plzik@gmail.com>2007-10-16 10:23:49 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 18:42:49 +0200
commit24d6572b4f7eae3d015e0e5027df761b3ce4ebcd (patch)
tree9cd3136ca46055b6d4e78f180234529c948939c2 /drivers/pcmcia/pxa2xx_base.c
parentUse menuconfig objects: PCMCIA (diff)
downloadlinux-24d6572b4f7eae3d015e0e5027df761b3ce4ebcd.tar.xz
linux-24d6572b4f7eae3d015e0e5027df761b3ce4ebcd.zip
pxa2xx PCMCIA timing issue on iPAQ H5550
Recently I've been trying to get working PCMCIA interface on H5000 ipaq series, using dual PCMCIA sleeve. So far things work correctly, but I had to do one modification to drivers/pcmcia/pxa2xx_base.c to get the interface working with orinoco gold PCMCIA card (wired pcnet_cs ethernet card worked even without this modification). The issue has something to do with assert time on PCMCIA bus, but I'm not really sure what -- I found the working value just by trial&error approach. I'm not sure how is the assert value in pxa2xx_mcxx_asst calculated (I know, simple formula, but the reason why is it calculated that way is not obvious for me), neither that my modification is correct. It just works with iPAQ. Cc: Russell King <rmk@arm.linux.org.uk> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/pcmcia/pxa2xx_base.c')
-rw-r--r--drivers/pcmcia/pxa2xx_base.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index dca9f8549b32..874923fcb2f9 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -58,7 +58,7 @@ static inline u_int pxa2xx_mcxx_asst(u_int pcmcia_cycle_ns,
u_int mem_clk_10khz)
{
u_int code = pcmcia_cycle_ns * mem_clk_10khz;
- return (code / 300000) + ((code % 300000) ? 1 : 0) - 1;
+ return (code / 300000) + ((code % 300000) ? 1 : 0) + 1;
}
static inline u_int pxa2xx_mcxx_setup(u_int pcmcia_cycle_ns,