diff options
author | Charles Keepax <ckeepax@opensource.wolfsonmicro.com> | 2016-11-22 16:10:26 +0000 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2017-02-13 09:29:40 +0000 |
commit | 003db34ef33eb2d8848e0962bd72ee42d7344271 (patch) | |
tree | 7df740ab673f8d0085d40902ad6fabd0286a877c /drivers/mfd/arizona-irq.c | |
parent | 128818f126bc2b9aa5cbcc1ac0429a20876d911b (diff) | |
download | lwn-003db34ef33eb2d8848e0962bd72ee42d7344271.tar.gz lwn-003db34ef33eb2d8848e0962bd72ee42d7344271.zip |
mfd: arizona: Use arizona_map_irq instead of hard coding it
We have arizona_map_irq we might as well use it rather than hard coding
it in several places.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/arizona-irq.c')
-rw-r--r-- | drivers/mfd/arizona-irq.c | 22 |
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 = { int arizona_irq_init(struct arizona *arizona) { int flags = IRQF_ONESHOT; - int ret, i; + int ret; const struct regmap_irq_chip *aod, *irq; struct irq_data *irq_data; @@ -368,9 +368,8 @@ int arizona_irq_init(struct arizona *arizona) } /* Make sure the boot done IRQ is unmasked for resumes */ - i = arizona_map_irq(arizona, ARIZONA_IRQ_BOOT_DONE); - ret = request_threaded_irq(i, NULL, arizona_boot_done, IRQF_ONESHOT, - "Boot done", arizona); + ret = arizona_request_irq(arizona, ARIZONA_IRQ_BOOT_DONE, "Boot done", + arizona_boot_done, arizona); if (ret != 0) { dev_err(arizona->dev, "Failed to request boot done %d: %d\n", arizona->irq, ret); @@ -379,10 +378,9 @@ int arizona_irq_init(struct arizona *arizona) /* Handle control interface errors in the core */ if (arizona->ctrlif_error) { - i = arizona_map_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR); - ret = request_threaded_irq(i, NULL, arizona_ctrlif_err, - IRQF_ONESHOT, - "Control interface error", arizona); + ret = arizona_request_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR, + "Control interface error", + arizona_ctrlif_err, arizona); if (ret != 0) { dev_err(arizona->dev, "Failed to request CTRLIF_ERR %d: %d\n", @@ -394,7 +392,7 @@ int arizona_irq_init(struct arizona *arizona) return 0; err_ctrlif: - free_irq(arizona_map_irq(arizona, ARIZONA_IRQ_BOOT_DONE), arizona); + arizona_free_irq(arizona, ARIZONA_IRQ_BOOT_DONE, arizona); err_boot_done: free_irq(arizona->irq, arizona); err_main_irq: @@ -410,9 +408,9 @@ err: int arizona_irq_exit(struct arizona *arizona) { if (arizona->ctrlif_error) - free_irq(arizona_map_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR), - arizona); - free_irq(arizona_map_irq(arizona, ARIZONA_IRQ_BOOT_DONE), arizona); + arizona_free_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR, arizona); + arizona_free_irq(arizona, ARIZONA_IRQ_BOOT_DONE, arizona); + regmap_del_irq_chip(irq_find_mapping(arizona->virq, 1), arizona->irq_chip); regmap_del_irq_chip(irq_find_mapping(arizona->virq, 0), |