regulator: Fixes for v6.6
A couple of fixes that came in during the merge window, both driver specific - one for a bug that came up in testing, one for a bug due to a misreading of the datasheet. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmT5wtcACgkQJNaLcl1U h9D42Qf+LB9UYFJKAXPyLkpQYGHKbSaqz6hIMFWjmpsVjvuahI63wVRv/GoPZDIU B1Zy8mrC4t37BK/CmjlwvxVFPuY+DaYTTBjjnSEnfrDsQZ+PgfIRmfqzxp/q6TYr cpDOg/HrLkvfzNoTVtnUDz4Kn1l66OAMWXlwZ/AZEW8uD/JY172H7tBfjqDdzDvc NCxKW0FO/pX07kc1IFaPl6UvZRqJLQUkYl7dKFl7PrG6Lzh1+FKQSUmtZY33Ndgd LqFux/mc3jsV5E6Y0F899Lf1890VxzYHpbwT1QrHdaXhbqoACrQoaFfLfvd5YQLY K9ncwzj8hNM87t0LYLH09lSsH5L2Xw== =UyE6 -----END PGP SIGNATURE----- Merge tag 'regulator-fix-v6.6-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fixes from Mark Brown: "A couple of fixes that came in during the merge window, both driver specific - one for a bug that came up in testing, one for a bug due to a misreading of the datasheet" * tag 'regulator-fix-v6.6-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: tps6594-regulator: Fix random kernel crash regulator: tps6287x: Fix n_voltages
This commit is contained in:
commit
d9b9ea589b
@ -119,7 +119,7 @@ static struct regulator_desc tps6287x_reg = {
|
||||
.ramp_mask = TPS6287X_CTRL1_VRAMP,
|
||||
.ramp_delay_table = tps6287x_ramp_table,
|
||||
.n_ramp_values = ARRAY_SIZE(tps6287x_ramp_table),
|
||||
.n_voltages = 256,
|
||||
.n_voltages = 256 * ARRAY_SIZE(tps6287x_voltage_ranges),
|
||||
.linear_ranges = tps6287x_voltage_ranges,
|
||||
.n_linear_ranges = ARRAY_SIZE(tps6287x_voltage_ranges),
|
||||
.linear_range_selectors_bitfield = tps6287x_voltage_range_sel,
|
||||
|
@ -384,21 +384,19 @@ static int tps6594_request_reg_irqs(struct platform_device *pdev,
|
||||
if (irq < 0)
|
||||
return -EINVAL;
|
||||
|
||||
irq_data[*irq_idx + j].dev = tps->dev;
|
||||
irq_data[*irq_idx + j].type = irq_type;
|
||||
irq_data[*irq_idx + j].rdev = rdev;
|
||||
irq_data[*irq_idx].dev = tps->dev;
|
||||
irq_data[*irq_idx].type = irq_type;
|
||||
irq_data[*irq_idx].rdev = rdev;
|
||||
|
||||
error = devm_request_threaded_irq(tps->dev, irq, NULL,
|
||||
tps6594_regulator_irq_handler,
|
||||
IRQF_ONESHOT,
|
||||
irq_type->irq_name,
|
||||
&irq_data[*irq_idx]);
|
||||
(*irq_idx)++;
|
||||
tps6594_regulator_irq_handler, IRQF_ONESHOT,
|
||||
irq_type->irq_name, &irq_data[*irq_idx]);
|
||||
if (error) {
|
||||
dev_err(tps->dev, "tps6594 failed to request %s IRQ %d: %d\n",
|
||||
irq_type->irq_name, irq, error);
|
||||
return error;
|
||||
}
|
||||
(*irq_idx)++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -420,8 +418,8 @@ static int tps6594_regulator_probe(struct platform_device *pdev)
|
||||
int error, i, irq, multi, delta;
|
||||
int irq_idx = 0;
|
||||
int buck_idx = 0;
|
||||
int ext_reg_irq_nb = 2;
|
||||
|
||||
size_t ext_reg_irq_nb = 2;
|
||||
size_t reg_irq_nb;
|
||||
enum {
|
||||
MULTI_BUCK12,
|
||||
MULTI_BUCK123,
|
||||
@ -484,15 +482,16 @@ static int tps6594_regulator_probe(struct platform_device *pdev)
|
||||
}
|
||||
}
|
||||
|
||||
if (tps->chip_id == LP8764)
|
||||
if (tps->chip_id == LP8764) {
|
||||
/* There is only 4 buck on LP8764 */
|
||||
buck_configured[4] = 1;
|
||||
reg_irq_nb = size_mul(REGS_INT_NB, (BUCK_NB - 1));
|
||||
} else {
|
||||
reg_irq_nb = size_mul(REGS_INT_NB, (size_add(BUCK_NB, LDO_NB)));
|
||||
}
|
||||
|
||||
irq_data = devm_kmalloc_array(tps->dev,
|
||||
REGS_INT_NB * sizeof(struct tps6594_regulator_irq_data),
|
||||
ARRAY_SIZE(tps6594_bucks_irq_types) +
|
||||
ARRAY_SIZE(tps6594_ldos_irq_types),
|
||||
GFP_KERNEL);
|
||||
irq_data = devm_kmalloc_array(tps->dev, reg_irq_nb,
|
||||
sizeof(struct tps6594_regulator_irq_data), GFP_KERNEL);
|
||||
if (!irq_data)
|
||||
return -ENOMEM;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user