From: zhangqing Date: Wed, 15 Oct 2014 01:54:00 +0000 (+0800) Subject: rk312x:pmic:rk818:slove irq handle failed X-Git-Tag: firefly_0821_release~4586 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5932cde9e40f716dd58850256412a26ec40475a3;p=firefly-linux-kernel-4.4.55.git rk312x:pmic:rk818:slove irq handle failed --- diff --git a/drivers/mfd/rk818-irq.c b/drivers/mfd/rk818-irq.c index 8b15cb7700e4..7315fa1e3d60 100755 --- a/drivers/mfd/rk818-irq.c +++ b/drivers/mfd/rk818-irq.c @@ -46,7 +46,7 @@ static irqreturn_t rk818_irq(int irq, void *irq_data) u32 irq_sts; u32 irq_mask; u8 reg; - int i; + int i, cur_irq; //printk(" rk818 irq %d \n",irq); wake_lock(&rk818->irq_wake); rk818_i2c_read(rk818, RK818_INT_STS_REG1, 1, ®); @@ -72,7 +72,10 @@ static irqreturn_t rk818_irq(int irq, void *irq_data) if (!(irq_sts & (1 << i))) continue; - handle_nested_irq(rk818->irq_base + i); + cur_irq = irq_find_mapping(rk818->irq_domain, i); + + if (cur_irq) + handle_nested_irq(cur_irq); } /* Write the STS register back to clear IRQs we handled */