max17042_battery: Clean up interrupt handling
[linux-block.git] / drivers / power / max17042_battery.c
index d576912b1219e67d4e18e38c99a2c2c7f9039652..04620c2cb388f3f5f2411f6a2b8191c5b36b459f 100644 (file)
@@ -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;