Commit 1f20756ce695ee56c2899e95757497d9c1cc8bbb

Authored by Thomas Petazzoni
Committed by Greg Kroah-Hartman
1 parent 7b915d382a

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 <thomas.petazzoni@free-electrons.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Showing 1 changed file with 6 additions and 1 deletions Side-by-side Diff

arch/arm/mach-mvebu/coherency.c
... ... @@ -398,9 +398,14 @@
398 398 return type;
399 399 }
400 400  
  401 +/*
  402 + * As a precaution, we currently completely disable hardware I/O
  403 + * coherency, until enough testing is done with automatic I/O
  404 + * synchronization barriers to validate that it is a proper solution.
  405 + */
401 406 int coherency_available(void)
402 407 {
403   - return coherency_type() != COHERENCY_FABRIC_TYPE_NONE;
  408 + return false;
404 409 }
405 410  
406 411 int __init coherency_init(void)