regulator: Fix desc_id for tps65023/6507x/65910
authorAxel Lin <axel.lin@gmail.com>
Thu, 12 May 2011 05:47:50 +0000 (13:47 +0800)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Fri, 27 May 2011 09:49:09 +0000 (10:49 +0100)
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>
drivers/regulator/tps65023-regulator.c
drivers/regulator/tps6507x-regulator.c
drivers/regulator/tps65910-regulator.c

index 60a7ca5409e9766bfe829c0d581d4dca910acc98..fbddc15e1811fefdec139965a425f45a5c05d473 100644 (file)
@@ -466,7 +466,6 @@ static struct regulator_ops tps65023_ldo_ops = {
 static int __devinit tps_65023_probe(struct i2c_client *client,
                                     const struct i2c_device_id *id)
 {
-       static int desc_id;
        const struct tps_info *info = (void *)id->driver_data;
        struct regulator_init_data *init_data;
        struct regulator_dev *rdev;
@@ -499,7 +498,7 @@ static int __devinit tps_65023_probe(struct i2c_client *client,
                tps->info[i] = info;
 
                tps->desc[i].name = info->name;
-               tps->desc[i].id = desc_id++;
+               tps->desc[i].id = i;
                tps->desc[i].n_voltages = num_voltages[i];
                tps->desc[i].ops = (i > TPS65023_DCDC_3 ?
                                        &tps65023_ldo_ops : &tps65023_dcdc_ops);
index 0647552905992348652bc6316e7bec23e3257892..bfffabc21edabdffe051466b9d11b9fd60890400 100644 (file)
@@ -553,7 +553,6 @@ static __devinit
 int tps6507x_pmic_probe(struct platform_device *pdev)
 {
        struct tps6507x_dev *tps6507x_dev = dev_get_drvdata(pdev->dev.parent);
-       static int desc_id;
        struct tps_info *info = &tps6507x_pmic_regs[0];
        struct regulator_init_data *init_data;
        struct regulator_dev *rdev;
@@ -598,7 +597,7 @@ int tps6507x_pmic_probe(struct platform_device *pdev)
                }
 
                tps->desc[i].name = info->name;
-               tps->desc[i].id = desc_id++;
+               tps->desc[i].id = i;
                tps->desc[i].n_voltages = num_voltages[i];
                tps->desc[i].ops = (i > TPS6507X_DCDC_3 ?
                &tps6507x_pmic_ldo_ops : &tps6507x_pmic_dcdc_ops);
index d461fa7906b8b363a6f5177f95d791eb0209dbb4..048ba47e058f0c6bbd34275ae9200ccde63e3ece 100644 (file)
@@ -604,7 +604,6 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
        struct regulator_dev *rdev;
        struct tps65910_reg *pmic;
        struct tps65910_board *pmic_plat_data;
-       static int desc_id;
        int i, err;
 
        pmic_plat_data = dev_get_platdata(tps65910->dev);
@@ -630,7 +629,7 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
                pmic->info[i] = info;
 
                pmic->desc[i].name = info->name;
-               pmic->desc[i].id = desc_id++;
+               pmic->desc[i].id = i;
                pmic->desc[i].n_voltages = info->table_len;
 
                if ((i == TPS65910_REG_VDD1) || (i == TPS65910_REG_VDD2))