]> err.no Git - linux-2.6/blobdiff - arch/arm/mach-pxa/pxa3xx.c
Merge branch 'for-2.6.25' of master.kernel.org:/pub/scm/linux/kernel/git/arnd/cell...
[linux-2.6] / arch / arm / mach-pxa / pxa3xx.c
index e47e67c11afe65dfbc10f234c1dbfe8dc636cf32..35f25fdaeba3925303ed0dc1dacd4ed9f105c71a 100644 (file)
@@ -129,28 +129,20 @@ static void clk_pxa3xx_cken_enable(struct clk *clk)
 {
        unsigned long mask = 1ul << (clk->cken & 0x1f);
 
-       local_irq_disable();
-
        if (clk->cken < 32)
                CKENA |= mask;
        else
                CKENB |= mask;
-
-       local_irq_enable();
 }
 
 static void clk_pxa3xx_cken_disable(struct clk *clk)
 {
        unsigned long mask = 1ul << (clk->cken & 0x1f);
 
-       local_irq_disable();
-
        if (clk->cken < 32)
                CKENA &= ~mask;
        else
                CKENB &= ~mask;
-
-       local_irq_enable();
 }
 
 static const struct clkops clk_pxa3xx_cken_ops = {
@@ -266,8 +258,6 @@ static void pxa3xx_cpu_standby(unsigned int pwrmode)
 
        AD2D0ER = 0;
        AD2D1ER = 0;
-
-       printk("PM: AD2D0SR=%08x ASCR=%08x\n", AD2D0SR, ASCR);
 }
 
 /*
@@ -515,6 +505,14 @@ static int __init pxa3xx_init(void)
        int i, ret = 0;
 
        if (cpu_is_pxa3xx()) {
+               /*
+                * clear RDH bit every time after reset
+                *
+                * Note: the last 3 bits DxS are write-1-to-clear so carefully
+                * preserve them here in case they will be referenced later
+                */
+               ASCR &= ~(ASCR_RDH | ASCR_D1S | ASCR_D2S | ASCR_D3S);
+
                clks_register(pxa3xx_clks, ARRAY_SIZE(pxa3xx_clks));
 
                if ((ret = pxa_init_dma(32)))