From e04b8f6135c411976915e64f1521aa7e8729e16d Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Thu, 7 May 2020 20:50:51 -0400 Subject: [PATCH] Fixes for 4.19 Signed-off-by: Sasha Levin --- ...add-a-helper-function-for-ioremap_uc.patch | 84 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 85 insertions(+) create mode 100644 queue-4.19/lib-devres-add-a-helper-function-for-ioremap_uc.patch diff --git a/queue-4.19/lib-devres-add-a-helper-function-for-ioremap_uc.patch b/queue-4.19/lib-devres-add-a-helper-function-for-ioremap_uc.patch new file mode 100644 index 00000000000..c04dfce5b30 --- /dev/null +++ b/queue-4.19/lib-devres-add-a-helper-function-for-ioremap_uc.patch @@ -0,0 +1,84 @@ +From 6438cb39936a9fa5aa731022d40ff07118be5bb0 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 32e30e8fb9db9..da39ff89df651 100644 +--- a/include/linux/io.h ++++ b/include/linux/io.h +@@ -75,6 +75,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 aa0f5308ac6be..75ea32d9b661b 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-4.19/series b/queue-4.19/series index 60418c4d1a7..6f941a479f7 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -21,4 +21,5 @@ net-bcmgenet-suppress-warnings-on-failed-rx-skb-allo.patch net-systemport-suppress-warnings-on-failed-rx-skb-al.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 +lib-devres-add-a-helper-function-for-ioremap_uc.patch mfd-intel-lpss-use-devm_ioremap_uc-for-mmio.patch -- 2.47.3