From a8f3e82f3d5febd3a30de20b9d1647a2a255189f Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=BC=A0=E6=99=B4?= Date: Tue, 25 Dec 2012 16:40:10 +0800 Subject: [PATCH] rk3168:act8846:modify some error --- drivers/regulator/act8846.c | 5 ++++- drivers/regulator/act8931.c | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/act8846.c b/drivers/regulator/act8846.c index 4ea222176b86..f4b14a3b3e7e 100755 --- a/drivers/regulator/act8846.c +++ b/drivers/regulator/act8846.c @@ -153,6 +153,8 @@ const static int ldo_voltage_map[] = { static int act8846_ldo_list_voltage(struct regulator_dev *dev, unsigned index) { + if (index >= ARRAY_SIZE(ldo_voltage_map)) + return -EINVAL; return 1000 * ldo_voltage_map[index]; } static int act8846_ldo_is_enabled(struct regulator_dev *dev) @@ -274,6 +276,8 @@ static struct regulator_ops act8846_ldo_ops = { static int act8846_dcdc_list_voltage(struct regulator_dev *dev, unsigned index) { + if (index >= ARRAY_SIZE(buck_voltage_map)) + return -EINVAL; return 1000 * buck_voltage_map[index]; } static int act8846_dcdc_is_enabled(struct regulator_dev *dev) @@ -662,7 +666,6 @@ static int __devinit act8846_i2c_probe(struct i2c_client *i2c, const struct i2c_ struct act8846 *act8846; struct act8846_platform_data *pdata = i2c->dev.platform_data; int ret; - msleep(1000); act8846 = kzalloc(sizeof(struct act8846), GFP_KERNEL); if (act8846 == NULL) { ret = -ENOMEM; diff --git a/drivers/regulator/act8931.c b/drivers/regulator/act8931.c index 71150124e7f4..e3083ad07495 100755 --- a/drivers/regulator/act8931.c +++ b/drivers/regulator/act8931.c @@ -145,6 +145,8 @@ const static int ldo_voltage_map[] = { static int act8931_ldo_list_voltage(struct regulator_dev *dev, unsigned index) { + if (index >= ARRAY_SIZE(ldo_voltage_map)) + return -EINVAL; return 1000 * ldo_voltage_map[index]; } static int act8931_ldo_is_enabled(struct regulator_dev *dev) @@ -263,6 +265,8 @@ static struct regulator_ops act8931_ldo_ops = { static int act8931_dcdc_list_voltage(struct regulator_dev *dev, unsigned index) { + if (index >= ARRAY_SIZE(buck_voltage_map)) + return -EINVAL; return 1000 * buck_voltage_map[index]; } static int act8931_dcdc_is_enabled(struct regulator_dev *dev) -- 2.34.1