aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator
diff options
context:
space:
mode:
authorKyle Manna <kyle.manna@fuel7.com>2011-11-03 13:08:06 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-23 09:02:48 -0500
commitc1fc1480249dfe059254779a4bb7ca27cf5f8038 (patch)
treecafbba26ca72d2720b3eca5e279c61d8638627af /drivers/regulator
parent72c108cc4947db2fcdd3f3e8a2b60bd65e74a1cc (diff)
regulator: TPS65910: Create an array for init data
Create an array of fixed size for the platform to pass regulator initalization data through. Passing an array of pointers to init data also allows more flexible definition of init data as well as prevents reading past the end of the array should the platform define an incorrectly sized array. Signed-off-by: Kyle Manna <kyle.manna@fuel7.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator')
-rw-r--r--drivers/regulator/tps65910-regulator.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/regulator/tps65910-regulator.c b/drivers/regulator/tps65910-regulator.c
index 44b4f22a7f9f..a620e25c85c4 100644
--- a/drivers/regulator/tps65910-regulator.c
+++ b/drivers/regulator/tps65910-regulator.c
@@ -861,8 +861,6 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
861 if (!pmic_plat_data) 861 if (!pmic_plat_data)
862 return -EINVAL; 862 return -EINVAL;
863 863
864 reg_data = pmic_plat_data->tps65910_pmic_init_data;
865
866 pmic = kzalloc(sizeof(*pmic), GFP_KERNEL); 864 pmic = kzalloc(sizeof(*pmic), GFP_KERNEL);
867 if (!pmic) 865 if (!pmic)
868 return -ENOMEM; 866 return -ENOMEM;
@@ -913,7 +911,16 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
913 goto err_free_info; 911 goto err_free_info;
914 } 912 }
915 913
916 for (i = 0; i < pmic->num_regulators; i++, info++, reg_data++) { 914 for (i = 0; i < pmic->num_regulators && i < TPS65910_NUM_REGS;
915 i++, info++) {
916
917 reg_data = pmic_plat_data->tps65910_pmic_init_data[i];
918
919 /* Regulator API handles empty constraints but not NULL
920 * constraints */
921 if (!reg_data)
922 continue;
923
917 /* Register the regulators */ 924 /* Register the regulators */
918 pmic->info[i] = info; 925 pmic->info[i] = info;
919 926