diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-01-16 11:11:27 -0500 |
---|---|---|
committer | Andrew Lunn <andrew@lunn.ch> | 2015-01-17 12:46:55 -0500 |
commit | 8f1e8ee28660018a935c7576b9af8ffe1feab54c (patch) | |
tree | 39ecf0922ae98ebbe7bc232076d65d849444af4c /arch/arm | |
parent | eaa27f34e91a14cdceed26ed6c6793ec1d186115 (diff) |
ARM: mvebu: completely disable hardware I/O coherency
The current hardware I/O coherency is known to cause problems with DMA
coherent buffers, as it still requires explicit I/O synchronization
barriers, which is not compatible with the semantics expected by the
Linux DMA coherent buffers API.
So, in order to have enough time to validate a new solution based on
automatic I/O synchronization barriers, this commit disables hardware
I/O coherency entirely. Future patches will re-enable it.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: <stable@vger.kernel.org> # v3.8+
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-mvebu/coherency.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index 3585cb394e9b..caa21e9b8cd9 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c | |||
@@ -246,9 +246,14 @@ static int coherency_type(void) | |||
246 | return type; | 246 | return type; |
247 | } | 247 | } |
248 | 248 | ||
249 | /* | ||
250 | * As a precaution, we currently completely disable hardware I/O | ||
251 | * coherency, until enough testing is done with automatic I/O | ||
252 | * synchronization barriers to validate that it is a proper solution. | ||
253 | */ | ||
249 | int coherency_available(void) | 254 | int coherency_available(void) |
250 | { | 255 | { |
251 | return coherency_type() != COHERENCY_FABRIC_TYPE_NONE; | 256 | return false; |
252 | } | 257 | } |
253 | 258 | ||
254 | int __init coherency_init(void) | 259 | int __init coherency_init(void) |