summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/arizona-irq.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index 2e01975f042d..724fa5404306 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -204,7 +204,7 @@ static const struct irq_domain_ops arizona_domain_ops = {
204int arizona_irq_init(struct arizona *arizona) 204int arizona_irq_init(struct arizona *arizona)
205{ 205{
206 int flags = IRQF_ONESHOT; 206 int flags = IRQF_ONESHOT;
207 int ret, i; 207 int ret;
208 const struct regmap_irq_chip *aod, *irq; 208 const struct regmap_irq_chip *aod, *irq;
209 struct irq_data *irq_data; 209 struct irq_data *irq_data;
210 210
@@ -368,9 +368,8 @@ int arizona_irq_init(struct arizona *arizona)
368 } 368 }
369 369
370 /* Make sure the boot done IRQ is unmasked for resumes */ 370 /* Make sure the boot done IRQ is unmasked for resumes */
371 i = arizona_map_irq(arizona, ARIZONA_IRQ_BOOT_DONE); 371 ret = arizona_request_irq(arizona, ARIZONA_IRQ_BOOT_DONE, "Boot done",
372 ret = request_threaded_irq(i, NULL, arizona_boot_done, IRQF_ONESHOT, 372 arizona_boot_done, arizona);
373 "Boot done", arizona);
374 if (ret != 0) { 373 if (ret != 0) {
375 dev_err(arizona->dev, "Failed to request boot done %d: %d\n", 374 dev_err(arizona->dev, "Failed to request boot done %d: %d\n",
376 arizona->irq, ret); 375 arizona->irq, ret);
@@ -379,10 +378,9 @@ int arizona_irq_init(struct arizona *arizona)
379 378
380 /* Handle control interface errors in the core */ 379 /* Handle control interface errors in the core */
381 if (arizona->ctrlif_error) { 380 if (arizona->ctrlif_error) {
382 i = arizona_map_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR); 381 ret = arizona_request_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR,
383 ret = request_threaded_irq(i, NULL, arizona_ctrlif_err, 382 "Control interface error",
384 IRQF_ONESHOT, 383 arizona_ctrlif_err, arizona);
385 "Control interface error", arizona);
386 if (ret != 0) { 384 if (ret != 0) {
387 dev_err(arizona->dev, 385 dev_err(arizona->dev,
388 "Failed to request CTRLIF_ERR %d: %d\n", 386 "Failed to request CTRLIF_ERR %d: %d\n",
@@ -394,7 +392,7 @@ int arizona_irq_init(struct arizona *arizona)
394 return 0; 392 return 0;
395 393
396err_ctrlif: 394err_ctrlif:
397 free_irq(arizona_map_irq(arizona, ARIZONA_IRQ_BOOT_DONE), arizona); 395 arizona_free_irq(arizona, ARIZONA_IRQ_BOOT_DONE, arizona);
398err_boot_done: 396err_boot_done:
399 free_irq(arizona->irq, arizona); 397 free_irq(arizona->irq, arizona);
400err_main_irq: 398err_main_irq:
@@ -410,9 +408,9 @@ err:
410int arizona_irq_exit(struct arizona *arizona) 408int arizona_irq_exit(struct arizona *arizona)
411{ 409{
412 if (arizona->ctrlif_error) 410 if (arizona->ctrlif_error)
413 free_irq(arizona_map_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR), 411 arizona_free_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR, arizona);
414 arizona); 412 arizona_free_irq(arizona, ARIZONA_IRQ_BOOT_DONE, arizona);
415 free_irq(arizona_map_irq(arizona, ARIZONA_IRQ_BOOT_DONE), arizona); 413
416 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 1), 414 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 1),
417 arizona->irq_chip); 415 arizona->irq_chip);
418 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 0), 416 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 0),