mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
44 lines
1.6 KiB
Diff
44 lines
1.6 KiB
Diff
|
Commit a0b5cd4ac2d6 ("bus: mvebu-mbus: use automatic I/O
|
||
|
synchronization barriers") enabled the usage of automatic I/O
|
||
|
synchronization barriers by enabling bit WIN_CTRL_SYNCBARRIER in the
|
||
|
control registers of MBus windows, but on non io-coherent platforms
|
||
|
(orion5x, kirkwood and dove) the WIN_CTRL_SYNCBARRIER bit in
|
||
|
the window control register is either reserved (all windows except 6
|
||
|
and 7) or enables read-only protection (windows 6 and 7).
|
||
|
|
||
|
Signed-off-by: Nicolas Schichan <nschichan@xxxxxxxxxx>
|
||
|
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
|
||
|
Cc: <stable@xxxxxxxxxxxxxxx> # v4.0+
|
||
|
Fixes: a0b5cd4ac2d6 ("bus: mvebu-mbus: use automatic I/O synchronization barriers")
|
||
|
|
||
|
---
|
||
|
drivers/bus/mvebu-mbus.c | 4 +++-
|
||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
|
||
|
index fb9ec62..7fa4510 100644
|
||
|
--- a/drivers/bus/mvebu-mbus.c
|
||
|
+++ b/drivers/bus/mvebu-mbus.c
|
||
|
@@ -70,6 +70,7 @@
|
||
|
*/
|
||
|
#define WIN_CTRL_OFF 0x0000
|
||
|
#define WIN_CTRL_ENABLE BIT(0)
|
||
|
+/* Only on HW I/O coherency capable platforms */
|
||
|
#define WIN_CTRL_SYNCBARRIER BIT(1)
|
||
|
#define WIN_CTRL_TGT_MASK 0xf0
|
||
|
#define WIN_CTRL_TGT_SHIFT 4
|
||
|
@@ -323,8 +324,9 @@ static int mvebu_mbus_setup_window(struct mvebu_mbus_state *mbus,
|
||
|
ctrl = ((size - 1) & WIN_CTRL_SIZE_MASK) |
|
||
|
(attr << WIN_CTRL_ATTR_SHIFT) |
|
||
|
(target << WIN_CTRL_TGT_SHIFT) |
|
||
|
- WIN_CTRL_SYNCBARRIER |
|
||
|
WIN_CTRL_ENABLE;
|
||
|
+ if (mbus->hw_io_coherency)
|
||
|
+ ctrl |= WIN_CTRL_SYNCBARRIER;
|
||
|
|
||
|
writel(base & WIN_BASE_LOW, addr + WIN_BASE_OFF);
|
||
|
writel(ctrl, addr + WIN_CTRL_OFF);
|
||
|
--
|
||
|
1.9.1
|
||
|
|