Commit ec46855d authored by Lee Jones's avatar Lee Jones

mfd: sprd-sc27xx-spi: Fix-up bogus IRQ register offset and mask setting

'i / pdata->num_irqs' always equates to 0 and 'BIT(i % pdata->num_irqs)'
always ends up being BIT(i) here, so make that clearer in the code.  If
the code base needs to support more than 32 IRQs in the future, this will
have to be reworked, but lets just keep it simple for as long as we can.

This fixes the following W=1 warning:

 drivers/mfd/sprd-sc27xx-spi.c:255 sprd_pmic_probe() debug: sval_binop_unsigned: divide by zero

Cc: Orson Zhai <orsonzhai@gmail.com>
Cc: Chunyan Zhang <zhang.lyra@gmail.com>
Suggested-by: default avatarBaolin Wang <baolin.wang7@gmail.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Reviewed-by: default avatarBaolin Wang <baolin.wang7@gmail.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 768c1e38
...@@ -185,10 +185,8 @@ static int sprd_pmic_probe(struct spi_device *spi) ...@@ -185,10 +185,8 @@ static int sprd_pmic_probe(struct spi_device *spi)
return -ENOMEM; return -ENOMEM;
ddata->irq_chip.irqs = ddata->irqs; ddata->irq_chip.irqs = ddata->irqs;
for (i = 0; i < pdata->num_irqs; i++) { for (i = 0; i < pdata->num_irqs; i++)
ddata->irqs[i].reg_offset = i / pdata->num_irqs; ddata->irqs[i].mask = BIT(i);
ddata->irqs[i].mask = BIT(i % pdata->num_irqs);
}
ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq, ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq,
IRQF_ONESHOT | IRQF_NO_SUSPEND, 0, IRQF_ONESHOT | IRQF_NO_SUSPEND, 0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment