On Sat, May 30, 2015 at 1:52 PM, Arnd Bergmann <arnd(a)arndb.de> wrote:
On Saturday 30 May 2015, Dan Williams wrote:
> @@ -154,7 +148,7 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct
resource *res)
> }
>
> if (res->flags & IORESOURCE_CACHEABLE)
> - dest_ptr = devm_ioremap(dev, res->start, size);
> + dest_ptr = devm_ioremap_cache(dev, res->start, size);
> else
> dest_ptr = devm_ioremap_nocache(dev, res->start, size);
I think the existing uses of IORESOURCE_CACHEABLE are mostly bugs, so changing
the behavior here may cause more problems than it solves.
Ok, but that effectively makes devm_ioremap_resource() unusable for
the cached case. How about introducing devm_ioremap_cache_resource(),
and cleaning up devm_ioremap_resource() to stop pretending that it is
honoring the memory type of the resource?