Merge tag 'mfd-3.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
[linux-drm-fsl-dcu.git] / drivers / mfd / da9052-core.c
index 5036cf5fc0776d7df89b2e409367d47e4e03a4c7..1f1313c905736f352d09c8f8d764be2464467cc5 100644 (file)
@@ -791,12 +791,11 @@ int __devinit da9052_device_init(struct da9052 *da9052, u8 chip_id)
        ret = regmap_add_irq_chip(da9052->regmap, da9052->chip_irq,
                                  IRQF_TRIGGER_LOW | IRQF_ONESHOT,
                                  da9052->irq_base, &da9052_regmap_irq_chip,
-                                 NULL);
+                                 &da9052->irq_data);
        if (ret < 0)
                goto regmap_err;
 
-       desc = irq_to_desc(da9052->chip_irq);
-       da9052->irq_base = regmap_irq_chip_get_base(desc->action->dev_id);
+       da9052->irq_base = regmap_irq_chip_get_base(da9052->irq_data);
 
        ret = request_threaded_irq(DA9052_IRQ_ADC_EOM, NULL, da9052_auxadc_irq,
                                   IRQF_TRIGGER_LOW | IRQF_ONESHOT,
@@ -821,8 +820,7 @@ regmap_err:
 void da9052_device_exit(struct da9052 *da9052)
 {
        free_irq(DA9052_IRQ_ADC_EOM, da9052);
-       regmap_del_irq_chip(da9052->chip_irq,
-                           irq_get_irq_data(da9052->irq_base)->chip_data);
+       regmap_del_irq_chip(da9052->chip_irq, da9052->irq_data);
        mfd_remove_devices(da9052->dev);
 }