diff options
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/tps65910-regulator.c | 13 |
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 | ||