Provide a variant of devm_ioremap_resource() for nocache ioremap. Signed-off-by: Yangtao Li <tiny.windzz@xxxxxxxxx> --- Documentation/driver-api/driver-model/devres.rst | 1 + include/linux/device.h | 2 ++ lib/devres.c | 15 +++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst index 13046fcf0a5d..af1b1b9e3a17 100644 --- a/Documentation/driver-api/driver-model/devres.rst +++ b/Documentation/driver-api/driver-model/devres.rst @@ -317,6 +317,7 @@ IOMAP devm_ioremap_uc() devm_ioremap_wc() devm_ioremap_resource() : checks resource, requests memory region, ioremaps + devm_ioremap_resource_nocache() devm_ioremap_resource_wc() devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device devm_platform_ioremap_resource_wc() diff --git a/include/linux/device.h b/include/linux/device.h index 96ff76731e93..3aa353aa52e2 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -962,6 +962,8 @@ extern void devm_free_pages(struct device *dev, unsigned long addr); void __iomem *devm_ioremap_resource(struct device *dev, const struct resource *res); +void __iomem *devm_ioremap_resource_nocache(struct device *dev, + const struct resource *res); void __iomem *devm_ioremap_resource_wc(struct device *dev, const struct resource *res); diff --git a/lib/devres.c b/lib/devres.c index f56070cf970b..a182f8479fbf 100644 --- a/lib/devres.c +++ b/lib/devres.c @@ -188,6 +188,21 @@ void __iomem *devm_ioremap_resource(struct device *dev, } EXPORT_SYMBOL(devm_ioremap_resource); +/** + * devm_ioremap_resource_nocache() - nocache variant of + * devm_ioremap_resource() + * @dev: generic device to handle the resource for + * @res: resource to be handled + * + * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code + * on failure. + */ +void __iomem *devm_ioremap_resource_nocache(struct device *dev, + const struct resource *res) +{ + return __devm_ioremap_resource(dev, res, DEVM_IOREMAP_NC); +} + /** * devm_ioremap_resource_wc() - write-combined variant of * devm_ioremap_resource() -- 2.17.1