Commit 77fa44d0e10711e899788c58fe53f8f7b18c7f67

Authored by Axel Lin
Committed by Liam Girdwood
1 parent c01e36dde4

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))