Commit 77fa44d0e10711e899788c58fe53f8f7b18c7f67
Committed by
Liam Girdwood
1 parent
c01e36dde4
Exists in
master
and in
7 other branches
regulator: Fix desc_id for tps65023/6507x/65910
The desc_id variable should not be a static variable. The rest of the code assumes the desc_id must less than TPSxxxxx_NUM_REGULATOR. If we set desc_id to be a static variable, checking the return value of rdev_get_id() may return error. Signed-off-by: Axel Lin <axel.lin@gmail.com> Cc: Anuj Aggarwal <anuj.aggarwal@ti.com> Cc: Graeme Gregory <gg@slimlogic.co.uk> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Showing 3 changed files with 3 additions and 6 deletions Side-by-side Diff
drivers/regulator/tps65023-regulator.c
... | ... | @@ -466,7 +466,6 @@ |
466 | 466 | static int __devinit tps_65023_probe(struct i2c_client *client, |
467 | 467 | const struct i2c_device_id *id) |
468 | 468 | { |
469 | - static int desc_id; | |
470 | 469 | const struct tps_info *info = (void *)id->driver_data; |
471 | 470 | struct regulator_init_data *init_data; |
472 | 471 | struct regulator_dev *rdev; |
... | ... | @@ -499,7 +498,7 @@ |
499 | 498 | tps->info[i] = info; |
500 | 499 | |
501 | 500 | tps->desc[i].name = info->name; |
502 | - tps->desc[i].id = desc_id++; | |
501 | + tps->desc[i].id = i; | |
503 | 502 | tps->desc[i].n_voltages = num_voltages[i]; |
504 | 503 | tps->desc[i].ops = (i > TPS65023_DCDC_3 ? |
505 | 504 | &tps65023_ldo_ops : &tps65023_dcdc_ops); |
drivers/regulator/tps6507x-regulator.c
... | ... | @@ -553,7 +553,6 @@ |
553 | 553 | int tps6507x_pmic_probe(struct platform_device *pdev) |
554 | 554 | { |
555 | 555 | struct tps6507x_dev *tps6507x_dev = dev_get_drvdata(pdev->dev.parent); |
556 | - static int desc_id; | |
557 | 556 | struct tps_info *info = &tps6507x_pmic_regs[0]; |
558 | 557 | struct regulator_init_data *init_data; |
559 | 558 | struct regulator_dev *rdev; |
... | ... | @@ -598,7 +597,7 @@ |
598 | 597 | } |
599 | 598 | |
600 | 599 | tps->desc[i].name = info->name; |
601 | - tps->desc[i].id = desc_id++; | |
600 | + tps->desc[i].id = i; | |
602 | 601 | tps->desc[i].n_voltages = num_voltages[i]; |
603 | 602 | tps->desc[i].ops = (i > TPS6507X_DCDC_3 ? |
604 | 603 | &tps6507x_pmic_ldo_ops : &tps6507x_pmic_dcdc_ops); |
drivers/regulator/tps65910-regulator.c
... | ... | @@ -604,7 +604,6 @@ |
604 | 604 | struct regulator_dev *rdev; |
605 | 605 | struct tps65910_reg *pmic; |
606 | 606 | struct tps65910_board *pmic_plat_data; |
607 | - static int desc_id; | |
608 | 607 | int i, err; |
609 | 608 | |
610 | 609 | pmic_plat_data = dev_get_platdata(tps65910->dev); |
... | ... | @@ -630,7 +629,7 @@ |
630 | 629 | pmic->info[i] = info; |
631 | 630 | |
632 | 631 | pmic->desc[i].name = info->name; |
633 | - pmic->desc[i].id = desc_id++; | |
632 | + pmic->desc[i].id = i; | |
634 | 633 | pmic->desc[i].n_voltages = info->table_len; |
635 | 634 | |
636 | 635 | if ((i == TPS65910_REG_VDD1) || (i == TPS65910_REG_VDD2)) |