hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/include/linux/ioport.h
....@@ -12,6 +12,7 @@
1212 #ifndef __ASSEMBLY__
1313 #include <linux/compiler.h>
1414 #include <linux/types.h>
15
+#include <linux/bits.h>
1516 #include <linux/android_kabi.h>
1617 /*
1718 * Resources are tree-like, allowing
....@@ -62,6 +63,10 @@
6263
6364 #define IORESOURCE_EXT_TYPE_BITS 0x01000000 /* Resource extended types */
6465 #define IORESOURCE_SYSRAM 0x01000000 /* System RAM (modifier) */
66
+
67
+/* IORESOURCE_SYSRAM specific bits. */
68
+#define IORESOURCE_SYSRAM_DRIVER_MANAGED 0x02000000 /* Always detected via a driver. */
69
+#define IORESOURCE_SYSRAM_MERGEABLE 0x04000000 /* Resource can be merged. */
6570
6671 #define IORESOURCE_EXCLUSIVE 0x08000000 /* Userland may not map this resource */
6772
....@@ -138,7 +143,16 @@
138143 IORES_DESC_PERSISTENT_MEMORY = 4,
139144 IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5,
140145 IORES_DESC_DEVICE_PRIVATE_MEMORY = 6,
141
- IORES_DESC_DEVICE_PUBLIC_MEMORY = 7,
146
+ IORES_DESC_RESERVED = 7,
147
+ IORES_DESC_SOFT_RESERVED = 8,
148
+};
149
+
150
+/*
151
+ * Flags controlling ioremap() behavior.
152
+ */
153
+enum {
154
+ IORES_MAP_SYSTEM_RAM = BIT(0),
155
+ IORES_MAP_ENCRYPTED = BIT(1),
142156 };
143157
144158 /* helpers to define resources */
....@@ -243,8 +257,10 @@
243257 extern void __release_region(struct resource *, resource_size_t,
244258 resource_size_t);
245259 #ifdef CONFIG_MEMORY_HOTREMOVE
246
-extern int release_mem_region_adjustable(struct resource *, resource_size_t,
247
- resource_size_t);
260
+extern void release_mem_region_adjustable(resource_size_t, resource_size_t);
261
+#endif
262
+#ifdef CONFIG_MEMORY_HOTPLUG
263
+extern void merge_system_ram_resource(struct resource *res);
248264 #endif
249265
250266 /* Wrappers for managed devices */
....@@ -292,6 +308,16 @@
292308 return (r1->start <= r2->end && r1->end >= r2->start);
293309 }
294310
311
+struct resource *devm_request_free_mem_region(struct device *dev,
312
+ struct resource *base, unsigned long size);
313
+struct resource *request_free_mem_region(struct resource *base,
314
+ unsigned long size, const char *name);
315
+
316
+#ifdef CONFIG_IO_STRICT_DEVMEM
317
+void revoke_devmem(struct resource *res);
318
+#else
319
+static inline void revoke_devmem(struct resource *res) { };
320
+#endif
295321
296322 #endif /* __ASSEMBLY__ */
297323 #endif /* _LINUX_IOPORT_H */