Re: isa_read/write not available on ppc - solution suggestions ??

From: Anton Blanchard (anton@samba.org)
Date: Thu May 03 2001 - 06:08:48 EST


 
> This is where the multiple support issue comes in. In ibmtr_cs.c we do
> ioremap the addresses so pcmcia all works nicely. What we don't do at
> present is an ioremap in ibmtr.c for the non-pcmcia adapters (isa & mca).
> So, I suppose the real fix would be to implement the ioremap in ibmtr.c so
> that regular read/writes can be used everywhere in the driver. (This is
> half the battle with changes to the driver, it supports so many
> combinations that one change for one type of adapter can kill support for
> another adapter, and that's my bottom line with updates: No loss of
> functionality we already had.)

Yes since we ioremap both regions in ibmtr_cs.c and pass the cookies into
ibmtr.c we should be using read*/write*. With the simple fix to do this
and use the non byteswapping versions of read*/write* the token ring
pcmcia driver works fine on a titanium powerbook.

My suggestion is to throw this into ibmtr.h:

#ifdef PCMCIA
#define tr_readb(addr) readb(addr)
#define tr_readw(addr) __raw_readw(addr)
#define tr_readl(addr) __raw_readl(addr)
#define tr_writeb(val, addr) writeb(val, addr)
#define tr_writel(val, addr) __raw_writel(val, addr)
#define tr_writew(val, addr) __raw_writew(val, addr)
#else
#define tr_readb(addr) isa_readb(addr)
#define tr_readw(addr) isa_readw(addr)
#define tr_readl(addr) isa_readl(addr)
#define tr_writeb(val, addr) isa_writeb(val, addr)
#define tr_writel(val, addr) isa_writel(val, addr)
#define tr_writew(val, addr) isa_writew(val, addr)
#endif

Anton
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 07 2001 - 21:00:16 EST