提交 e64bf95e 编写于 作者: R Rob Herring 提交者: Olof Johansson

ARM: highbank: Only touch common coherency control register fields

Midway adds new register fields to the coherency control registers, so
writing absolute values will break on Midway. Change the register
accesses to only modify the necessary and common fields in order to
support both Midway and Highbank.
Signed-off-by: NRob Herring <rob.herring@calxeda.com>
Signed-off-by: NOlof Johansson <olof@lixom.net>
上级 eaed1352
...@@ -115,6 +115,7 @@ static int highbank_platform_notifier(struct notifier_block *nb, ...@@ -115,6 +115,7 @@ static int highbank_platform_notifier(struct notifier_block *nb,
{ {
struct resource *res; struct resource *res;
int reg = -1; int reg = -1;
u32 val;
struct device *dev = __dev; struct device *dev = __dev;
if (event != BUS_NOTIFY_ADD_DEVICE) if (event != BUS_NOTIFY_ADD_DEVICE)
...@@ -141,10 +142,10 @@ static int highbank_platform_notifier(struct notifier_block *nb, ...@@ -141,10 +142,10 @@ static int highbank_platform_notifier(struct notifier_block *nb,
return NOTIFY_DONE; return NOTIFY_DONE;
if (of_property_read_bool(dev->of_node, "dma-coherent")) { if (of_property_read_bool(dev->of_node, "dma-coherent")) {
writel(0xff31, sregs_base + reg); val = readl(sregs_base + reg);
writel(val | 0xff01, sregs_base + reg);
set_dma_ops(dev, &arm_coherent_dma_ops); set_dma_ops(dev, &arm_coherent_dma_ops);
} else }
writel(0, sregs_base + reg);
return NOTIFY_OK; return NOTIFY_OK;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册