Sergei,

Thanks for the patch. Looks good to me.

Murali Karicheri
Software Design Engineer
email: m-kariche...@ti.com


>> -----Original Message-----
>> From: davinci-linux-open-source-boun...@linux.davincidsp.com
>> [mailto:davinci-linux-open-source-boun...@linux.davincidsp.com] On Behalf
>> Of Sergei Shtylyov
>> Sent: Thursday, September 15, 2011 10:30 AM
>> To: Hilman, Kevin; davinci-linux-open-source@linux.davincidsp.com; Nori,
>> Sekhar
>> Cc: linux-arm-ker...@lists.infradead.org
>> Subject: [PATCH] DaVinci: only poll EPCPR on DM644x and DM355
>> 
>> EPCPR register and PDCTL.EPCGOOD bit exist only on DaVinci DM644x and
>> DM35x,
>> so do not try to poll EPCPR and set PDCTL.EPCGOOD on the other SoCs -- it
>> would
>> lead to lock up if some power domain hasn't been powered up by this time
>> (which
>> hasn't happened yet on any board, it seems).
>> 
>> Signed-off-by: Sergei Shtylyov <sshtyl...@ru.mvista.com>
>> 
>> ---
>> The patch is against the recent DaVinci tree plus this patch:
>> 
>> http://linux.davincidsp.com/pipermail/davinci-linux-open-source/2011-
>> September/023308.html
>> 
>> Index: linux-davinci/arch/arm/mach-davinci/psc.c
>> ===================================================================
>> --- linux-davinci.orig/arch/arm/mach-davinci/psc.c
>> +++ linux-davinci/arch/arm/mach-davinci/psc.c
>> @@ -88,14 +88,19 @@ void davinci_psc_config(unsigned int dom
>>              ptcmd = 1 << domain;
>>              __raw_writel(ptcmd, psc_base + PTCMD);
>> 
>> -            do {
>> -                    epcpr = __raw_readl(psc_base + EPCPR);
>> -            } while ((((epcpr >> domain) & 1) == 0));
>> -
>> -            pdctl = __raw_readl(psc_base + PDCTL + 4 * domain);
>> -            pdctl |= 0x100;
>> -            __raw_writel(pdctl, psc_base + PDCTL + 4 * domain);
>> -
>> +            /*
>> +             * EPCPR register and PDCTL.EPCGOOD bit exist only on DaVinci
>> +             * DM644x and DM35x...
>> +             */
>> +            if (cpu_is_davinci_dm644x() || cpu_is_davinci_dm355()) {
>> +                    do {
>> +                            epcpr = __raw_readl(psc_base + EPCPR);
>> +                    } while (((epcpr >> domain) & 1) == 0);
>> +
>> +                    pdctl = __raw_readl(psc_base + PDCTL + 4 * domain);
>> +                    pdctl |= 0x100;
>> +                    __raw_writel(pdctl, psc_base + PDCTL + 4 * domain);
>> +            }
>>      } else {
>>              ptcmd = 1 << domain;
>>              __raw_writel(ptcmd, psc_base + PTCMD);
>> _______________________________________________
>> Davinci-linux-open-source mailing list
>> Davinci-linux-open-source@linux.davincidsp.com
>> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to