diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2019-12-02 16:43:51 -0800 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2019-12-02 16:43:51 -0800 |
commit | 0af44e8cf49d3dc5959db4086e1bbb905e385017 (patch) | |
tree | 87d6b5e753607a5117e6592d9aefcacfe9d2f631 /0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch | |
parent | Updated to 5.4.1 (diff) | |
download | linux-ck-0af44e8cf49d3dc5959db4086e1bbb905e385017.tar.xz |
Applied hotfixes
Diffstat (limited to '0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch')
-rw-r--r-- | 0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch b/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch new file mode 100644 index 0000000..3fc3722 --- /dev/null +++ b/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch @@ -0,0 +1,79 @@ +From 72bc3d71be44797eeb76ad17f124877f19526313 Mon Sep 17 00:00:00 2001 +From: Tuowen Zhao <ztuowen@gmail.com> +Date: Wed, 16 Oct 2019 15:06:28 -0600 +Subject: lib: devres: add a helper function for ioremap_uc + +Implement a resource managed strongly uncachable ioremap function. + +Cc: <stable@vger.kernel.org> # v4.19+ +Tested-by: AceLan Kao <acelan.kao@canonical.com> +Signed-off-by: Tuowen Zhao <ztuowen@gmail.com> +Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> +Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> +Acked-by: Luis Chamberlain <mcgrof@kernel.org> +Signed-off-by: Lee Jones <lee.jones@linaro.org> +--- + include/linux/io.h | 2 ++ + lib/devres.c | 19 +++++++++++++++++++ + 2 files changed, 21 insertions(+) + +diff --git a/include/linux/io.h b/include/linux/io.h +index accac822336a..a59834bc0a11 100644 +--- a/include/linux/io.h ++++ b/include/linux/io.h +@@ -64,6 +64,8 @@ static inline void devm_ioport_unmap(struct device *dev, void __iomem *addr) + + void __iomem *devm_ioremap(struct device *dev, resource_size_t offset, + resource_size_t size); ++void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset, ++ resource_size_t size); + void __iomem *devm_ioremap_nocache(struct device *dev, resource_size_t offset, + resource_size_t size); + void __iomem *devm_ioremap_wc(struct device *dev, resource_size_t offset, +diff --git a/lib/devres.c b/lib/devres.c +index 6a0e9bd6524a..17624d35e82d 100644 +--- a/lib/devres.c ++++ b/lib/devres.c +@@ -9,6 +9,7 @@ + enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_NC, ++ DEVM_IOREMAP_UC, + DEVM_IOREMAP_WC, + }; + +@@ -39,6 +40,9 @@ static void __iomem *__devm_ioremap(struct device *dev, resource_size_t offset, + case DEVM_IOREMAP_NC: + addr = ioremap_nocache(offset, size); + break; ++ case DEVM_IOREMAP_UC: ++ addr = ioremap_uc(offset, size); ++ break; + case DEVM_IOREMAP_WC: + addr = ioremap_wc(offset, size); + break; +@@ -68,6 +72,21 @@ void __iomem *devm_ioremap(struct device *dev, resource_size_t offset, + } + EXPORT_SYMBOL(devm_ioremap); + ++/** ++ * devm_ioremap_uc - Managed ioremap_uc() ++ * @dev: Generic device to remap IO address for ++ * @offset: Resource address to map ++ * @size: Size of map ++ * ++ * Managed ioremap_uc(). Map is automatically unmapped on driver detach. ++ */ ++void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset, ++ resource_size_t size) ++{ ++ return __devm_ioremap(dev, offset, size, DEVM_IOREMAP_UC); ++} ++EXPORT_SYMBOL_GPL(devm_ioremap_uc); ++ + /** + * devm_ioremap_nocache - Managed ioremap_nocache() + * @dev: Generic device to remap IO address for +-- +cgit v1.2.1-1-g437b + |