diff options
author | Mark Brown <broonie@kernel.org> | 2015-02-02 11:29:07 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-02-02 11:29:07 +0000 |
commit | 692d96aa22dea8bb80018c6a76556ad6afd464a6 (patch) | |
tree | e8dd55655fa001e53058c5264d541f8b3d3c1a7b /drivers/bus | |
parent | 1874098820e8269fe88d67bc08c908134dd87102 (diff) | |
parent | 4227cffc1f9e4a9241071354476c225705b614c8 (diff) |
Merge tag 'v3.10.67' into linux-linaro-lsk
This is the 3.10.67 stable release
Diffstat (limited to 'drivers/bus')
-rw-r--r-- | drivers/bus/mvebu-mbus.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c index 5dcc8305abd1..711dcf4a0313 100644 --- a/drivers/bus/mvebu-mbus.c +++ b/drivers/bus/mvebu-mbus.c @@ -209,12 +209,25 @@ static void mvebu_mbus_disable_window(struct mvebu_mbus_state *mbus, } /* Checks whether the given window number is available */ + +/* On Armada XP, 375 and 38x the MBus window 13 has the remap + * capability, like windows 0 to 7. However, the mvebu-mbus driver + * isn't currently taking into account this special case, which means + * that when window 13 is actually used, the remap registers are left + * to 0, making the device using this MBus window unavailable. The + * quick fix for stable is to not use window 13. A follow up patch + * will correctly handle this window. +*/ static int mvebu_mbus_window_is_free(struct mvebu_mbus_state *mbus, const int win) { void __iomem *addr = mbus->mbuswins_base + mbus->soc->win_cfg_offset(win); u32 ctrl = readl(addr + WIN_CTRL_OFF); + + if (win == 13) + return false; + return !(ctrl & WIN_CTRL_ENABLE); } |