[PATCH] ARM: 2846/1: proper handling of CKEN for pxafb
authorNicolas Pitre <nico@cam.org>
Wed, 10 Aug 2005 15:45:13 +0000 (16:45 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 10 Aug 2005 15:45:13 +0000 (16:45 +0100)
Patch from Nicolas Pitre

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/video/pxafb.c

index 16e37a535d850f83e065d82b9b66069f87cdbb5d..30112816420c71e2d304a538c82bd2129a0ecdf3 100644 (file)
@@ -717,6 +717,9 @@ static void pxafb_enable_controller(struct pxafb_info *fbi)
        DPRINTK("reg_lccr2 0x%08x\n", (unsigned int) fbi->reg_lccr2);
        DPRINTK("reg_lccr3 0x%08x\n", (unsigned int) fbi->reg_lccr3);
 
+       /* enable LCD controller clock */
+       pxa_set_cken(CKEN16_LCD, 1);
+
        /* Sequence from 11.7.10 */
        LCCR3 = fbi->reg_lccr3;
        LCCR2 = fbi->reg_lccr2;
@@ -750,6 +753,9 @@ static void pxafb_disable_controller(struct pxafb_info *fbi)
 
        schedule_timeout(20 * HZ / 1000);
        remove_wait_queue(&fbi->ctrlr_wait, &wait);
+
+       /* disable LCD controller clock */
+       pxa_set_cken(CKEN16_LCD, 0);
 }
 
 /*
@@ -1299,8 +1305,6 @@ int __init pxafb_probe(struct device *dev)
                ret = -ENOMEM;
                goto failed;
        }
-       /* enable LCD controller clock */
-       pxa_set_cken(CKEN16_LCD, 1);
 
        ret = request_irq(IRQ_LCD, pxafb_handle_irq, SA_INTERRUPT, "LCD", fbi);
        if (ret) {