From: 张晴 Date: Tue, 29 Oct 2013 06:45:46 +0000 (+0800) Subject: rk31:pmu:rt5025:modify some irq error X-Git-Tag: firefly_0821_release~6528 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=e0258457a78bf7fc1660be5f848d910a9e933123;hp=92b21727580b7c81f3f2ac803d77db5b4a52ed85;p=firefly-linux-kernel-4.4.55.git rk31:pmu:rt5025:modify some irq error --- diff --git a/drivers/mfd/rt5025-irq.c b/drivers/mfd/rt5025-irq.c index c0fa0dae5b5e..6989f812553b 100644 --- a/drivers/mfd/rt5025-irq.c +++ b/drivers/mfd/rt5025-irq.c @@ -75,6 +75,7 @@ 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 /* 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); @@ -82,6 +83,7 @@ static void rt5025_work_func(struct work_struct *work) rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN4, 0x00); rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN5, 0x00); rt5025_reg_write(ii->i2c, RT5025_REG_GAUGEIRQEN, 0x00); + #endif //#if 0 /* read irq status bit */ irq_stat[0] = rt5025_reg_read(ii->i2c, RT5025_REG_IRQSTATUS1); irq_stat[1] = rt5025_reg_read(ii->i2c, RT5025_REG_IRQSTATUS2); @@ -124,7 +126,7 @@ static void rt5025_work_func(struct work_struct *work) rt5025_set_charging_buck(ii->i2c, 0); mdelay(50); rt5025_set_charging_buck(ii->i2c, 1); - mdelay(200); + mdelay(400); } } @@ -157,6 +159,7 @@ static void rt5025_work_func(struct work_struct *work) if (ii->init_once) ii->init_once = 0; + #if 0 /* 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]); @@ -165,6 +168,7 @@ static void rt5025_work_func(struct work_struct *work) rt5025_reg_write(ii->i2c, RT5025_REG_IRQEN5, irq_enable[4]); if (rt5025_reg_read(ii->i2c, RT5025_REG_GAUGEIRQEN) == 0) rt5025_reg_write(ii->i2c, RT5025_REG_GAUGEIRQEN, irq_enable[5]); + #endif //#if 0 //enable_irq(ii->irq); } diff --git a/drivers/power/rt5025-power.c b/drivers/power/rt5025-power.c index 85d089e9dcdb..fbc55b7e8c89 100644 --- a/drivers/power/rt5025-power.c +++ b/drivers/power/rt5025-power.c @@ -253,7 +253,8 @@ int rt5025_power_charge_detect(struct rt5025_power_info *info) msleep(100); } - if (old_acval != new_acval || old_usbval != new_usbval) + //if (old_acval != new_acval || old_usbval != new_usbval) + if (new_acval || new_usbval) schedule_delayed_work(&info->usb_detect_work, 0); //no delay new_chgval = (chgstatval&RT5025_CHGSTAT_MASK)>>RT5025_CHGSTAT_SHIFT;