aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/io-mapping.txt12
1 files changed, 9 insertions, 3 deletions
diff --git a/Documentation/io-mapping.txt b/Documentation/io-mapping.txt
index cd2f726becc8..473e43b2d588 100644
--- a/Documentation/io-mapping.txt
+++ b/Documentation/io-mapping.txt
@@ -71,6 +71,12 @@ range, creating a permanent kernel-visible mapping to the resource. The
71map_atomic and map functions add the requested offset to the base of the 71map_atomic and map functions add the requested offset to the base of the
72virtual address returned by ioremap_wc. 72virtual address returned by ioremap_wc.
73 73
74On 32-bit processors, io_mapping_map_atomic_wc uses io_map_atomic_prot_pfn, 74On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses
75which uses the fixmaps to get us a mapping to a page using an atomic fashion. 75kmap_atomic_pfn to map the specified page in an atomic fashion;
76For io_mapping_map_wc, ioremap_wc() is used to get a mapping of the region. 76kmap_atomic_pfn isn't really supposed to be used with device pages, but it
77provides an efficient mapping for this usage.
78
79On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and
80io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which
81performs an IPI to inform all processors about the new mapping. This results
82in a significant performance penalty.