From 8d5c6603c408d91ecf543f244f10ccb8b500ad95 Mon Sep 17 00:00:00 2001
From: Keith Packard <keithp@keithp.com>
Date: Mon, 3 Nov 2008 18:21:44 +0100
Subject: [PATCH] io mapping: improve documentation

Impact: add documentation

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 Documentation/io-mapping.txt | 12 +++++++++---
 1 file 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
 map_atomic and map functions add the requested offset to the base of the
 virtual address returned by ioremap_wc.
 
-On 32-bit processors, io_mapping_map_atomic_wc uses io_map_atomic_prot_pfn,
-which uses the fixmaps to get us a mapping to a page using an atomic fashion.
-For io_mapping_map_wc, ioremap_wc() is used to get a mapping of the region.
+On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses
+kmap_atomic_pfn to map the specified page in an atomic fashion;
+kmap_atomic_pfn isn't really supposed to be used with device pages, but it
+provides an efficient mapping for this usage.
+
+On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and
+io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which
+performs an IPI to inform all processors about the new mapping. This results
+in a significant performance penalty.
-- 
GitLab