gpio-ml-ioh: fix a bug in the interrupt handler
authorFeng Tang <feng.tang@intel.com>
Tue, 13 Dec 2011 15:53:49 +0000 (23:53 +0800)
committerGrant Likely <grant.likely@secretlab.ca>
Tue, 13 Dec 2011 18:05:17 +0000 (11:05 -0700)
GPIO's irq action's dev_id is set to the first struct ioh_gpio chip,
so when loop checking the 8 chips, the "chip" should be changed
according.

Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/gpio/gpio-ml-ioh.c

index ea8e738..92b6f51 100644 (file)
@@ -339,7 +339,7 @@ static irqreturn_t ioh_gpio_handler(int irq, void *dev_id)
        int i, j;
        int ret = IRQ_NONE;
 
-       for (i = 0; i < 8; i++) {
+       for (i = 0; i < 8; i++, chip++) {
                reg_val = ioread32(&chip->reg->regs[i].istatus);
                for (j = 0; j < num_ports[i]; j++) {
                        if (reg_val & BIT(j)) {