summaryrefslogtreecommitdiffstats
path: root/drivers/regulator/max77620-regulator.c
diff options
context:
space:
mode:
authorVenkat Reddy Talla <vreddytalla@nvidia.com>2016-06-29 15:31:27 +0530
committerMark Brown <broonie@kernel.org>2016-06-29 18:50:05 +0100
commit91ff811f32763ea3135e832f7c1aeafc85ae1c98 (patch)
treed287fb4d911a52ce07a06a8a94393dc83086d389 /drivers/regulator/max77620-regulator.c
parent1a695a905c18548062509178b98bc91e67510864 (diff)
downloadlinux-0-day-91ff811f32763ea3135e832f7c1aeafc85ae1c98.tar.gz
linux-0-day-91ff811f32763ea3135e832f7c1aeafc85ae1c98.tar.xz
regulator: max77620: check for valid regulator info
SD4 regulator is not registered with regulator core framework in probe as there is no support in MAX77620 PMIC, removing SD4 entry from MAX77620 regulator information list and checking for valid regulator information data before configuring FPS source and FPS power up/down period to avoid NULL pointer exception if regulator not registered with core. Signed-off-by: Venkat Reddy Talla <vreddytalla@nvidia.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator/max77620-regulator.c')
-rw-r--r--drivers/regulator/max77620-regulator.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/regulator/max77620-regulator.c b/drivers/regulator/max77620-regulator.c
index 321e804aeab0a..a1b49a6d538f1 100644
--- a/drivers/regulator/max77620-regulator.c
+++ b/drivers/regulator/max77620-regulator.c
@@ -123,6 +123,9 @@ static int max77620_regulator_set_fps_src(struct max77620_regulator *pmic,
unsigned int val;
int ret;
+ if (!rinfo)
+ return 0;
+
switch (fps_src) {
case MAX77620_FPS_SRC_0:
case MAX77620_FPS_SRC_1:
@@ -171,6 +174,9 @@ static int max77620_regulator_set_fps_slots(struct max77620_regulator *pmic,
int pd = rpdata->active_fps_pd_slot;
int ret = 0;
+ if (!rinfo)
+ return 0;
+
if (is_suspend) {
pu = rpdata->suspend_fps_pu_slot;
pd = rpdata->suspend_fps_pd_slot;
@@ -680,7 +686,6 @@ static struct max77620_regulator_info max77620_regs_info[MAX77620_NUM_REGS] = {
RAIL_SD(SD1, sd1, "in-sd1", SD1, 600000, 1550000, 12500, 0x22, SD1),
RAIL_SD(SD2, sd2, "in-sd2", SDX, 600000, 3787500, 12500, 0xFF, NONE),
RAIL_SD(SD3, sd3, "in-sd3", SDX, 600000, 3787500, 12500, 0xFF, NONE),
- RAIL_SD(SD4, sd4, "in-sd4", SDX, 600000, 3787500, 12500, 0xFF, NONE),
RAIL_LDO(LDO0, ldo0, "in-ldo0-1", N, 800000, 2375000, 25000),
RAIL_LDO(LDO1, ldo1, "in-ldo0-1", N, 800000, 2375000, 25000),