summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2024-01-19 17:26:05 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2024-01-22 13:54:32 +0100
commitb10cb98c70ce36ce3137c7463ec84a54770f82cc (patch)
treebfa7375249e14f2824cdccb5b9327bbe5375167d /include/linux
parente05bc9135e8b20fc622ab3d4792228ceb043279e (diff)
downloadbarebox-b10cb98c70ce36ce3137c7463ec84a54770f82cc.tar.gz
barebox-b10cb98c70ce36ce3137c7463ec84a54770f82cc.tar.xz
include: linux/device.h: implement dev_platform_ioremap_resource
There are more than a thousand instances of devm_platform_ioremap_resource across Linux drivers and porting it to barebox is cumbersome, because unlike Linux we don't remap, so the MMIO region may be at address zero. Now that dev_request_mem_region_err_null() prints a warning in that case, let's just use it to implement dev_platform_ioremap_resource(). Platforms with relevant MMIO at address 0 are scarce anyway and when we run on such a platform, we can always switch to use normal dev_request_mem_resource(). Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240119162610.1014870-15-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/device.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 0bd61154ac..d892a9cb0e 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -32,6 +32,18 @@
#define driver_register register_driver
#define driver_unregister unregister_driver
+
+static inline void __iomem *dev_platform_ioremap_resource(struct device *dev,
+ int resource)
+{
+ /*
+ * barebox maps everything outside the RAM banks suitably for MMIO,
+ * so we don't need to do anything besides requesting the regions
+ * and can leave the memory attributes unchanged.
+ */
+ return dev_request_mem_region_err_null(dev, resource);
+}
+
static inline void __iomem *devm_ioremap(struct device *dev,
resource_size_t start,
resource_size_t size)