mvebu fixes for 3.19. (Part 4)

bus: mvebu-mbus: fix support of MBus window 13
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJUwDNwAAoJEOa/DcumaUyEkx0QALyev1odfUDjlRqbpsmIh6c4
 sdQFjmIyAoK2SZBsYZE51sFiEBuCw4hF7jMKjgG0JUVOEcrl1pzS6AzdojexinBr
 +b761WDXNsSijls3Uks7NATtuzY2MMqFhTYgXVHLLmw8/vdu3ZWcK6qXtHpIplbH
 yw9GzSN5eZtQ10vx4dwCiAONfHbIFGWeeq57kojIvasCutLwWcEWE96s38hAVYFd
 Vrm7xEng3A+0WOLx6zhTIOZggrNLrv7mAhyhegW7r6PQE44yzyuVeRSnm8ezQ+Rw
 pcLTt92iVVmA8O8dC7MFWr3/0G2zzCZRpKtRwt1iBhfvtb3cDx8qzWfPSiTwFK80
 6sJfFvxrO08qdiduIsJof8sPb/OrcdvCqEw32nOepfrDiv5HP1Z6ReCu98Avitih
 T42OcFc05NY68A72urr0LXJpx3QA8TDkopBmc8H4Z9E+W9sU0ik2MNhUjkUB+biW
 1ll/t1RmFUEENrF+9zKUiqOIvZNacT4kuPPqNx0m9oKB4KhpxuST8qkV79Hthsic
 ayxsfNWys+wOlips9QBVpdOPd2WMDLOD1WSUpd9D8tATJa8N7J7yFHXo3KJrnwvf
 CnKTTh37TrZ/Ddd0KRKvAqLLwWrIkgg+xNzaJIpjeewkwtdDDH2ZlhHLg/uUIQ/h
 wWF0OM0DVmWU5Tq+3kjd
 =9jyZ
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-fixes-3.19-4' of git://git.infradead.org/linux-mvebu into fixes

Merge "mvebu/fixes #3" from Andrew Lunn:

mvebu fixes for 3.19. (Part 4)

bus: mvebu-mbus: fix support of MBus window 13

* tag 'mvebu-fixes-3.19-4' of git://git.infradead.org/linux-mvebu:
  bus: mvebu-mbus: fix support of MBus window 13
  ARM: mvebu: completely disable hardware I/O coherency

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2015-01-23 14:08:13 -08:00
commit 5cf920619e

View file

@ -210,12 +210,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);
}