diff options
author | Thierry Reding | 2019-10-02 16:43:18 +0200 |
---|---|---|
committer | Lee Jones | 2019-11-11 08:45:02 +0000 |
commit | 7f0e60c751dc7252276230c7f8def447ffc0af4e (patch) | |
tree | b48ed8047a04867b839b8007d45ee40bf2ca8878 | |
parent | f5b4c8b45d937a94302ba135c9909423d89b0834 (diff) |
mfd: max77620: Do not allocate IRQs upfront
regmap_add_irq_chip() will try to allocate all of the IRQ descriptors
upfront if passed a non-zero irq_base parameter. However, the intention
is to allocate IRQ descriptors on an as-needed basis if possible. Pass 0
instead of -1 to fix that use-case.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r-- | drivers/mfd/max77620.c | 5 | ||||
-rw-r--r-- | include/linux/mfd/max77620.h | 1 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/mfd/max77620.c b/drivers/mfd/max77620.c index a851ff473a44..c7ed5c353553 100644 --- a/drivers/mfd/max77620.c +++ b/drivers/mfd/max77620.c @@ -507,7 +507,6 @@ static int max77620_probe(struct i2c_client *client, i2c_set_clientdata(client, chip); chip->dev = &client->dev; - chip->irq_base = -1; chip->chip_irq = client->irq; chip->chip_id = (enum max77620_chip_id)id->driver_data; @@ -545,8 +544,8 @@ static int max77620_probe(struct i2c_client *client, max77620_top_irq_chip.irq_drv_data = chip; ret = devm_regmap_add_irq_chip(chip->dev, chip->rmap, client->irq, - IRQF_ONESHOT | IRQF_SHARED, - chip->irq_base, &max77620_top_irq_chip, + IRQF_ONESHOT | IRQF_SHARED, 0, + &max77620_top_irq_chip, &chip->top_irq_data); if (ret < 0) { dev_err(chip->dev, "Failed to add regmap irq: %d\n", ret); diff --git a/include/linux/mfd/max77620.h b/include/linux/mfd/max77620.h index 12ba157cb83f..f552ef5b1100 100644 --- a/include/linux/mfd/max77620.h +++ b/include/linux/mfd/max77620.h @@ -329,7 +329,6 @@ struct max77620_chip { struct regmap *rmap; int chip_irq; - int irq_base; /* chip id */ enum max77620_chip_id chip_id; |