Re: New resources - pls, explain :-(

Jeff Garzik (jgarzik@pobox.com)
Wed, 11 Aug 1999 18:44:37 -0400


Alan Cox wrote:
> > right thing" for that bus. One could add "bigendian_writel()" and
> > "littleendian_writel()" to satisfy the Linus constraint of making
> > unusual usage of writel() obvious.

> So every I/O has an if in it. Nothing like stalling the pipeline before we
> probably stall on I/O writes to make things twice as painful.

Various implementations of writel() do stuff to stall the pipeline a bit
anyway. It's really a convenience/speed tradeoff. IMHO writel() should
continue to "do the right thing" as it currently does, regardless of its
bus, while allowing saavy driver writers to employ BUS_writel() if they
so desire.

My main motivation is keeping the codebase the same across multiple
buses. The 'if' has to occur somewhere, if your driver supports
multiple buses. I would rather have the ifs in a common place,
writel(), to avoid

void vga_mm_wcrt (caddr_t vga_base, unsigned char reg, unsigned char
val)
{
if (zorro_bus) {
zorro_writeb
zorro_writeb
} else if (pci_bus) {
...use pci_writeb to duplicate above logic...
} else if (sbus) {
...use sbus_writeb to duplicate above logic...
}
}

-- 
Entropy requires no maintenance.
                -- Markoff Chaney

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