From c6aae464fadfd33f0fd0d020628096035d34b149 Mon Sep 17 00:00:00 2001 From: Ramakrishna Pallala Date: Wed, 21 Mar 2012 03:03:16 +0530 Subject: [PATCH] --- yaml --- r: 297964 b: refs/heads/master c: 5cdd4d7fa5424f2018193a0c2af3bef9036c973e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/power/max17042_battery.c | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 409ae1630edc..514c59bd52ca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d6f0b00c0a5f21a54b7f44838f3c3bf73d37b920 +refs/heads/master: 5cdd4d7fa5424f2018193a0c2af3bef9036c973e diff --git a/trunk/drivers/power/max17042_battery.c b/trunk/drivers/power/max17042_battery.c index d576912b1219..04620c2cb388 100644 --- a/trunk/drivers/power/max17042_battery.c +++ b/trunk/drivers/power/max17042_battery.c @@ -47,8 +47,8 @@ /* Interrupt mask bits */ #define CONFIG_ALRT_BIT_ENBL (1 << 2) -#define STATUS_INTR_SOC_BIT (1 << 14) -#define STATUS_INTR_LOW_SOC_BIT (1 << 10) +#define STATUS_INTR_SOCMIN_BIT (1 << 10) +#define STATUS_INTR_SOCMAX_BIT (1 << 14) #define VFSOC0_LOCK 0x0000 #define VFSOC0_UNLOCK 0x0080 @@ -569,19 +569,14 @@ static void max17042_set_soc_threshold(struct max17042_chip *chip, u16 off) max17042_write_reg(chip->client, MAX17042_SALRT_Th, soc_tr); } -static irqreturn_t max17042_intr_handler(int id, void *dev) -{ - return IRQ_WAKE_THREAD; -} - static irqreturn_t max17042_thread_handler(int id, void *dev) { struct max17042_chip *chip = dev; u16 val; val = max17042_read_reg(chip->client, MAX17042_STATUS); - if ((val & STATUS_INTR_SOC_BIT) || - (val & STATUS_INTR_LOW_SOC_BIT)) { + if ((val & STATUS_INTR_SOCMIN_BIT) || + (val & STATUS_INTR_SOCMAX_BIT)) { dev_info(&chip->client->dev, "SOC threshold INTR\n"); max17042_set_soc_threshold(chip, 1); } @@ -689,9 +684,10 @@ static int __devinit max17042_probe(struct i2c_client *client, } if (client->irq) { - ret = request_threaded_irq(client->irq, max17042_intr_handler, + ret = request_threaded_irq(client->irq, NULL, max17042_thread_handler, - 0, chip->battery.name, chip); + IRQF_TRIGGER_FALLING, + chip->battery.name, chip); if (!ret) { reg = max17042_read_reg(client, MAX17042_CONFIG); reg |= CONFIG_ALRT_BIT_ENBL;