Messages in this thread | | | Subject | Re: [PATCH] revert ath5k ioread32()/iowrite32() usage - use readl()/writel(), we're MMIO-only | From | Benjamin Herrenschmidt <> | Date | Wed, 19 Sep 2007 08:18:54 +1000 |
| |
> > > > If the driver knows its MMIO, using readX/writeX after pci_iomap() is > > > > just fine, for all current implementations, and it makes sense that way. > > > > > > There is nothing that guarantees this is permitted, any more than there > > > is anything saying not to use outb/outl. Some of the implementations do > > > quite strange things. It may happen to work but its not in the > > > documentation or the comments. > > > > I posted a patch to update the documentation with this. > > > > > Please, can anybody clarify it? > > > > Based on Alan's 'Review-by' remarks on my patch for updating the > > documenation on pci_iomap() it seems this validates this patch. Please > > see thread with subject: > > > > [PATCH] Clarify pci_iomap() usage for MMIO-only devices > > Well spoke too soon. Now Linus disagrees. We'll see the outcome on the > other thread then.
To be more precise, a platform has every right to return some kind of "token" from ioport_map/pci_iomap that encodes the type of address, and that is -different- from what a normal ioremap does. In which case, you will -not- be able to use readb/writeb & cie on such a token.
The fact that current implementations seem to return something for MMIO that is equivalent to what ioremap returns is an accident and cannot be relied upon.
Cheers, Ben.
- 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/
| |