[DCON] Enable GPIO7 input to ensure DCONIRQ works correctly.

David Woodhouse dwmw2 at infradead.org
Thu Nov 2 00:17:14 EST 2006


Commit:     56340040bf66343f6e34ab86bceda2b46470fae7
Parent:     c9ac945f31ce8e99aea192b13dbddd66b503b53f
commit 56340040bf66343f6e34ab86bceda2b46470fae7
Author:     David Woodhouse <dwmw2 at infradead.org>
AuthorDate: Thu Nov 2 13:20:52 2006 +0800
Commit:     David Woodhouse <dwmw2 at infradead.org>
CommitDate: Thu Nov 2 13:20:52 2006 +0800

    [DCON] Enable GPIO7 input to ensure DCONIRQ works correctly.
    
    OpenFirmware doesn't do this for us; the old BIOS used to.
    
    Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
---
 drivers/video/geode/gxfb_dcon.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/video/geode/gxfb_dcon.c b/drivers/video/geode/gxfb_dcon.c
index a621d1c..88abc38 100644
--- a/drivers/video/geode/gxfb_dcon.c
+++ b/drivers/video/geode/gxfb_dcon.c
@@ -609,7 +609,7 @@ static int dcon_interrupt(int irq, void 
    (out) GPIO11   -- DCONLOAD
 */
 
-#define IN_GPIOS ((1<<5) | (1<<6) | (1<<12))
+#define IN_GPIOS ((1<<5) | (1<<6) | (1<<7) | (1<<12))
 #define OUT_GPIOS (1<<11)
 
 int __init gxfb_dcon_init(void)
@@ -628,14 +628,13 @@ int __init gxfb_dcon_init(void)
 	/* Mask off the IO base address */
 	gpio_base = lo & 0x0000ff00;
 
-	/* Set the directions for the GPIO pins */
+	/* Turn off the event enable for GPIO7 just to be safe */
+	outl(1 << (16 + 7), gpio_base + GPIOx_EVNT_EN);
 
+	/* Set the directions for the GPIO pins */
 	outl(OUT_GPIOS | (IN_GPIOS << 16), gpio_base + GPIOx_OUT_EN);
 	outl(IN_GPIOS | (OUT_GPIOS << 16), gpio_base + GPIOx_IN_EN);
 
-	/* Turn off the event enable for GPIO7 just to be safe */
-	outl(1 << (16 + 7), gpio_base + GPIOx_EVNT_EN);
-
 	/* Set up the interrupt mappings first, so we can collect the
 	 * first interrupt when it happens
 	 */


More information about the Commits-kernel mailing list