Ack: [PATCH] ARM: highbank: Only touch common coherency control register fields
Brad Figg
brad.figg at canonical.com
Tue Jul 23 17:06:43 UTC 2013
On 07/23/2013 09:43 AM, Paolo Pisati wrote:
> From: Rob Herring <rob.herring at calxeda.com>
>
> 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: Rob Herring <rob.herring at calxeda.com>
> Signed-off-by: Olof Johansson <olof at lixom.net>
>
> BugLink: https://bugs.launchpad.net/bugs/1196946
>
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
> ---
> arch/arm/mach-highbank/highbank.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
> index e6c0612..a246d2d 100644
> --- a/arch/arm/mach-highbank/highbank.c
> +++ b/arch/arm/mach-highbank/highbank.c
> @@ -147,6 +147,7 @@ static int highbank_platform_notifier(struct notifier_block *nb,
> {
> struct resource *res;
> int reg = -1;
> + u32 val;
> struct device *dev = __dev;
>
> if (event != BUS_NOTIFY_ADD_DEVICE)
> @@ -173,10 +174,10 @@ static int highbank_platform_notifier(struct notifier_block *nb,
> return NOTIFY_DONE;
>
> 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);
> - } else
> - writel(0, sregs_base + reg);
> + }
>
> return NOTIFY_OK;
> }
>
--
Brad Figg brad.figg at canonical.com http://www.canonical.com
More information about the kernel-team
mailing list