Hi Murali, I posted an updated version of this patch. In future, can you please CC LAKML in for all kernel patches.
And, the subject like prefix we are using is: "ARM: davinci: " On Sat, Sep 24, 2011 at 02:56:12, Karicheri, Muralidharan wrote: > From: Murali Karicheri <[email protected]> > > There are 5 LSB bits defined in PDSTAT and the code currently uses > a mask of 1 bit to check the status. Also there is PDSTAT and PDCTL > registers defined for domain0 and domain1 where as the code > always read the domain0 PDSTAT register and domain1 PDCTL register. > This patch fixes these issues. These two issues are now dealt in separate patches. > > Reviewed-by: Sergei Shtylyov <[email protected]> > > Signed-off-by: Murali Karicheri <[email protected]> > --- > change from v2-v3 > - description of patch changed as per review comment > - defined a constant for PDSTAT_STATE_MASK > This patch applies to the davinci-next branch of linux-davinci tree > > arch/arm/mach-davinci/include/mach/psc.h | 3 ++- > arch/arm/mach-davinci/psc.c | 18 +++++++++--------- > 2 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/arch/arm/mach-davinci/include/mach/psc.h > b/arch/arm/mach-davinci/include/mach/psc.h > index a47e6f2..1724d95 100644 > --- a/arch/arm/mach-davinci/include/mach/psc.h > +++ b/arch/arm/mach-davinci/include/mach/psc.h > @@ -233,7 +233,7 @@ > #define PTCMD 0x120 > #define PTSTAT 0x128 > #define PDSTAT 0x200 > -#define PDCTL1 0x304 > +#define PDCTL 0x300 > #define MDSTAT 0x800 > #define MDCTL 0xA00 > > @@ -244,6 +244,7 @@ > #define PSC_STATE_ENABLE 3 > > #define MDSTAT_STATE_MASK 0x1f > +#define PDSTAT_STATE_MASK 0x1f > > #ifndef __ASSEMBLER__ > > diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c > index a415804..5dbe974 100644 > --- a/arch/arm/mach-davinci/psc.c > +++ b/arch/arm/mach-davinci/psc.c > @@ -50,7 +50,7 @@ int __init davinci_psc_is_clk_active(unsigned int ctlr, > unsigned int id) > void davinci_psc_config(unsigned int domain, unsigned int ctlr, > unsigned int id, u32 next_state) > { > - u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl; > + u32 epcpr, ptcmd, ptstat, pdstat, pdctl, mdstat, mdctl; > void __iomem *psc_base; > struct davinci_soc_info *soc_info = &davinci_soc_info; > > @@ -67,11 +67,11 @@ void davinci_psc_config(unsigned int domain, unsigned int > ctlr, > mdctl |= next_state; > __raw_writel(mdctl, psc_base + MDCTL + 4 * id); > > - pdstat = __raw_readl(psc_base + PDSTAT); > - if ((pdstat & 0x00000001) == 0) { > - pdctl1 = __raw_readl(psc_base + PDCTL1); > - pdctl1 |= 0x1; > - __raw_writel(pdctl1, psc_base + PDCTL1); > + pdstat = __raw_readl(psc_base + PDSTAT + 4 * domain); > + if ((pdstat & PDSTAT_STATE_MASK) == 0) { > + pdctl = __raw_readl(psc_base + PDCTL + 4 * domain); > + pdctl |= 0x1; I have defined and used the macro PDCTL_NEXT here. > + __raw_writel(pdctl, psc_base + PDCTL + 4 * domain); > > ptcmd = 1 << domain; > __raw_writel(ptcmd, psc_base + PTCMD); > @@ -80,9 +80,9 @@ void davinci_psc_config(unsigned int domain, unsigned int > ctlr, > epcpr = __raw_readl(psc_base + EPCPR); > } while ((((epcpr >> domain) & 1) == 0)); > > - pdctl1 = __raw_readl(psc_base + PDCTL1); > - pdctl1 |= 0x100; > - __raw_writel(pdctl1, psc_base + PDCTL1); > + pdctl = __raw_readl(psc_base + PDCTL + 4 * domain); > + pdctl |= 0x100; And used PDCTL_EPCGOOD good here. Thanks, Sekhar _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
