From 1f73362ddde8464e598ebbd72fe70e943e9128e8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=BC=A0=E6=99=B4?= Date: Fri, 1 Nov 2013 11:14:02 +0800 Subject: [PATCH] rk31:pmu:rt5025:Optimize the interrupt process --- drivers/mfd/rt5025-irq.c | 8 ++++++-- include/linux/mfd/rt5025-irq.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/rt5025-irq.c b/drivers/mfd/rt5025-irq.c index 6989f812553b..76c50a9b1ce2 100644 --- a/drivers/mfd/rt5025-irq.c +++ b/drivers/mfd/rt5025-irq.c @@ -75,7 +75,9 @@ static void rt5025_work_func(struct work_struct *work) irq_enable[3] = rt5025_reg_read(ii->i2c, RT5025_REG_IRQEN4); irq_enable[4] = rt5025_reg_read(ii->i2c, RT5025_REG_IRQEN5); irq_enable[5] = rt5025_reg_read(ii->i2c, RT5025_REG_GAUGEIRQEN); - #if 0 + #if 1 + rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN2, irq_enable[1]&(~RT5025_CHTERMI_MASK)); + #else /* disable all irq enable bit first */ rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN1, irq_enable[0]&RT5025_ADAPIRQ_MASK); rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN2, 0x00); @@ -159,7 +161,9 @@ static void rt5025_work_func(struct work_struct *work) if (ii->init_once) ii->init_once = 0; - #if 0 + #if 1 + rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN2, irq_enable[1]); + #else /* restore all irq enable bit */ rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN1, irq_enable[0]); rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN2, irq_enable[1]); diff --git a/include/linux/mfd/rt5025-irq.h b/include/linux/mfd/rt5025-irq.h index 8e9070029d37..d826b2fc625d 100644 --- a/include/linux/mfd/rt5025-irq.h +++ b/include/linux/mfd/rt5025-irq.h @@ -29,6 +29,7 @@ #define RT5025_INACIRQ_MASK 0x40 #define RT5025_INUSBIRQ_MASK 0x08 #define RT5025_ADAPIRQ_MASK (RT5025_INACIRQ_MASK|RT5025_INUSBIRQ_MASK) +#define RT5025_CHTERMI_MASK 0x01 #define RT5025_REG_GAUGEIRQEN 0x50 #define RT5025_REG_GAUGEIRQFLG 0x51 -- 2.34.1