mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
regulator: tps6594-regulator: Fix the number of irqs for TPS65224 and TPS6594
The number of irqs is computed to allocate the right amount of memory for
the irq data. An array of struct tps6594_regulator_irq_data is allocated
one time for all the irqs. Each irq uses one cell of the array.
If the computed number of irqs is not correct, not allocated memory could
be used.
Fix the values used in the calculation for TPS6594 and TPS65224.
Fixes: 00c826525f
(regulator: tps6594-regulator: Add TI TPS65224 PMIC regulators)
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Tested-by: Nishanth Menon <nm@ti.com>
Link: https://msgid.link/r/20240603170100.2394402-1-thomas.richard@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
c3f38fa61a
commit
8141b6da17
@ -653,18 +653,14 @@ static int tps6594_regulator_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tps->chip_id == LP8764) {
|
if (tps->chip_id == TPS65224) {
|
||||||
nr_buck = ARRAY_SIZE(buck_regs);
|
|
||||||
nr_ldo = 0;
|
|
||||||
nr_types = REGS_INT_NB;
|
|
||||||
} else if (tps->chip_id == TPS65224) {
|
|
||||||
nr_buck = ARRAY_SIZE(tps65224_buck_regs);
|
nr_buck = ARRAY_SIZE(tps65224_buck_regs);
|
||||||
nr_ldo = ARRAY_SIZE(tps65224_ldo_regs);
|
nr_ldo = ARRAY_SIZE(tps65224_ldo_regs);
|
||||||
nr_types = REGS_INT_NB;
|
nr_types = TPS65224_REGS_INT_NB;
|
||||||
} else {
|
} else {
|
||||||
nr_buck = ARRAY_SIZE(buck_regs);
|
nr_buck = ARRAY_SIZE(buck_regs);
|
||||||
nr_ldo = ARRAY_SIZE(tps6594_ldo_regs);
|
nr_ldo = (tps->chip_id == LP8764) ? 0 : ARRAY_SIZE(tps6594_ldo_regs);
|
||||||
nr_types = TPS65224_REGS_INT_NB;
|
nr_types = REGS_INT_NB;
|
||||||
}
|
}
|
||||||
|
|
||||||
reg_irq_nb = nr_types * (nr_buck + nr_ldo);
|
reg_irq_nb = nr_types * (nr_buck + nr_ldo);
|
||||||
|
Loading…
Reference in New Issue
Block a user