[PATCH] ARM: PL330: Accept revisions of the dmac

Kukjin Kim kgene.kim at samsung.com
Fri Sep 3 18:43:57 EDT 2010


Jassi Brar wrote:
> 
> From: Jassi Brar <jassi.brar at samsung.com>
> 
> The driver can handle different revisions of the core which
> vary only minorly. So check for only the necessary part of
> the IDs.
> 
> Signed-off-by: Jassi Brar <jassi.brar at samsung.com>
> ---
>  arch/arm/common/pl330.c |    7 +++----
>  1 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/common/pl330.c b/arch/arm/common/pl330.c
> index 5ebbab6..8f0f86d 100644
> --- a/arch/arm/common/pl330.c
> +++ b/arch/arm/common/pl330.c
> @@ -146,8 +146,7 @@
>  #define DESIGNER	0x41
>  #define REVISION	0x0
>  #define INTEG_CFG	0x0
> -#define PERIPH_ID_VAL	((PART << 0) | (DESIGNER << 12) \
> -			  | (REVISION << 20) | (INTEG_CFG << 24))
> +#define PERIPH_ID_VAL	((PART << 0) | (DESIGNER << 12))
> 
>  #define PCELL_ID_VAL	0xb105f00d
> 
> @@ -1859,10 +1858,10 @@ int pl330_add(struct pl330_info *pi)
>  	regs = pi->base;
> 
>  	/* Check if we can handle this DMAC */
> -	if (get_id(pi, PERIPH_ID) != PERIPH_ID_VAL
> +	if ((get_id(pi, PERIPH_ID) & 0xfffff) != PERIPH_ID_VAL
>  	   || get_id(pi, PCELL_ID) != PCELL_ID_VAL) {
>  		dev_err(pi->dev, "PERIPH_ID 0x%x, PCELL_ID 0x%x !\n",
> -			readl(regs + PERIPH_ID), readl(regs + PCELL_ID));
> +			get_id(pi, PERIPH_ID), get_id(pi, PCELL_ID));

mm...really needed to change readl to get_id?

According to PL330 TRM 3-48, seems that PERIPH_ID includes all of other
PERIPH_ID_X's information.
And PCELL_ID is same...

But I'm not sure whether there is any update...

>  		return -EINVAL;
>  	}
> 
> --
> 1.6.2.5


Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.




More information about the linux-arm-kernel mailing list