From: Thomas Petazzoni Date: Fri, 16 Jan 2015 16:11:27 +0000 (+0100) Subject: ARM: mvebu: completely disable hardware I/O coherency X-Git-Tag: v3.16.35~2990 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3601b1ffdd7cbe327d6299b47f315a29b3d2f3b5;p=thirdparty%2Fkernel%2Fstable.git ARM: mvebu: completely disable hardware I/O coherency commit 8f1e8ee28660018a935c7576b9af8ffe1feab54c upstream. 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 Signed-off-by: Andrew Lunn Signed-off-by: Luis Henriques --- diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index c31f4c00b1fca..1163a3e9accd7 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -398,9 +398,14 @@ static int coherency_type(void) return type; } +/* + * As a precaution, we currently completely disable hardware I/O + * coherency, until enough testing is done with automatic I/O + * synchronization barriers to validate that it is a proper solution. + */ int coherency_available(void) { - return coherency_type() != COHERENCY_FABRIC_TYPE_NONE; + return false; } int __init coherency_init(void)