Commit 24d6572b authored by Milan Plzik's avatar Milan Plzik Committed by Linus Torvalds

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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 42c5323c
...@@ -58,7 +58,7 @@ static inline u_int pxa2xx_mcxx_asst(u_int pcmcia_cycle_ns, ...@@ -58,7 +58,7 @@ static inline u_int pxa2xx_mcxx_asst(u_int pcmcia_cycle_ns,
u_int mem_clk_10khz) u_int mem_clk_10khz)
{ {
u_int code = pcmcia_cycle_ns * 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, static inline u_int pxa2xx_mcxx_setup(u_int pcmcia_cycle_ns,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment