> 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to