Commit 7f0e60c7 authored by Thierry Reding's avatar Thierry Reding Committed by Lee Jones
Browse files

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: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent f5b4c8b4
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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);
+0 −1
Original line number Diff line number Diff line
@@ -329,7 +329,6 @@ struct max77620_chip {
	struct regmap *rmap;

	int chip_irq;
	int irq_base;

	/* chip id */
	enum max77620_chip_id chip_id;