[PATCH] ARM: PL330: Accept revisions of the dmac
Jassi Brar
jassisinghbrar at gmail.com
Fri Sep 3 21:32:08 EDT 2010
On Sat, Sep 4, 2010 at 7:43 AM, Kukjin Kim <kgene.kim at samsung.com> wrote:
> 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?
Yes, get_id will read regs and encode the values to provide real IDs.
>
> 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...
Our newer SoCs, C210 and V310 have revised versions and does not work without
this patch.
More information about the linux-arm-kernel
mailing list