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