Re: [PATCH] ioremap_cached()

Andi Kleen
2006-03-30T18:28:11Z

Matthew Wilcox <matthew@wil.cx> writes:

> We currently have three ways for getting access to device memory --
> ioremap(), ioremap_nocache() and pci_iomap(). 99% of the callers of
> ioremap() are doing it to access device registers, and really, really
> want to use ioremap_nocache() instead. I presume nobody notices on PCs
> because they have write-through caches, but it ought to trip up people
> trying to flush writes.

Actually MTRRs take care of that on x86.
So essentially on x86 ioremap() for devices is already ioremap_uncached()
And ioremap on memory is cached.

That's nice and simple semantics that other platforms can emulate too.
Doing things differently will just cause pain for the other platforms
when they have to fix up drivers all the time.

It all works fine until someone wants WC too. I would rather add a
ioremap_wc(), that would be more useful.

-Andi