From: Sasha Levin Date: Fri, 8 May 2020 00:50:51 +0000 (-0400) Subject: Fixes for 5.4 X-Git-Tag: v4.4.223~23 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c83c1e7ffb08ad3b2e785d063ed157d347d098cd;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.4 Signed-off-by: Sasha Levin --- diff --git a/queue-5.4/lib-devres-add-a-helper-function-for-ioremap_uc.patch b/queue-5.4/lib-devres-add-a-helper-function-for-ioremap_uc.patch new file mode 100644 index 00000000000..7cd14249c4b --- /dev/null +++ b/queue-5.4/lib-devres-add-a-helper-function-for-ioremap_uc.patch @@ -0,0 +1,84 @@ +From ca0952f189cef302d3f395bc160c2cdfc1338683 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 16 Oct 2019 15:06:28 -0600 +Subject: lib: devres: add a helper function for ioremap_uc + +From: Tuowen Zhao + +[ Upstream commit e537654b7039aacfe8ae629d49655c0e5692ad44 ] + +Implement a resource managed strongly uncachable ioremap function. + +Cc: # v4.19+ +Tested-by: AceLan Kao +Signed-off-by: Tuowen Zhao +Acked-by: Mika Westerberg +Acked-by: Andy Shevchenko +Acked-by: Luis Chamberlain +Signed-off-by: Lee Jones +Signed-off-by: Sasha Levin +--- + 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 accac822336aa..a59834bc0a114 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 6a0e9bd6524ae..17624d35e82d4 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 +-- +2.20.1 + diff --git a/queue-5.4/series b/queue-5.4/series index f2de96f8b66..1950a936f43 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -31,4 +31,5 @@ drm-i915-extend-wadisabledarbfclkgating-to-icl-ehl-tgl.patch sctp-fix-shutdown-ctsn-ack-in-the-peer-restart-case.patch drm-amdgpu-fix-oops-when-pp_funcs-is-unset-in-acpi-event.patch revert-software-node-simplify-software_node_release-function.patch +lib-devres-add-a-helper-function-for-ioremap_uc.patch mfd-intel-lpss-use-devm_ioremap_uc-for-mmio.patch