Changeset 18037


Ignore:
Timestamp:
2009-10-11T21:51:27+02:00 (8 years ago)
Author:
nbd
Message:

atheros: merge gpio changes from r18036 to 8.09

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/8.09/target/linux/atheros/files/arch/mips/atheros/ar5315/irq.c

    r11113 r18037  
    3434{ 
    3535        u32 pend; 
     36        u32 gpio; 
     37 
    3638        sysRegWrite(AR5315_ISR, sysRegRead(AR5315_IMR) | ~AR5315_ISR_GPIO); 
    3739 
     
    4143                return; 
    4244 
    43         do_IRQ(AR531X_GPIO_IRQ_BASE + fls(pend) - 1); 
     45        gpio = fls(pend) - 1; 
     46 
     47        /* check if GPIO line is input */ 
     48        if ((sysRegRead(AR5315_GPIO_CR) & (AR5315_GPIO_CR_M(gpio))) != AR5315_GPIO_CR_I(gpio)) 
     49                return; 
     50 
     51        do_IRQ(AR531X_GPIO_IRQ_BASE + gpio); 
    4452} 
    4553 
     
    117125        gpiointmask |= mask; 
    118126 
    119         /* reconfigure GPIO line as input */ 
    120         sysRegMask(AR5315_GPIO_CR, AR5315_GPIO_CR_M(gpio), AR5315_GPIO_CR_I(gpio)); 
     127        /* check if GPIO line is input */ 
     128        if ((sysRegRead(AR5315_GPIO_CR) & (AR5315_GPIO_CR_M(gpio))) != AR5315_GPIO_CR_I(gpio)) 
     129                return; 
    121130 
    122131        /* Enable interrupt with edge detection */ 
     
    139148static unsigned int ar5315_gpio_intr_startup(unsigned int irq) 
    140149{ 
     150        u32 gpio = irq - AR531X_GPIO_IRQ_BASE; 
     151 
     152        /* reconfigure GPIO line as input */ 
     153        sysRegMask(AR5315_GPIO_CR, AR5315_GPIO_CR_M(gpio), AR5315_GPIO_CR_I(gpio)); 
     154 
    141155        ar5315_gpio_intr_enable(irq); 
    142156        return 0; 
Note: See TracChangeset for help on using the changeset viewer.