From 4a64f949b76270538416d4e575903fb5019a2657 Mon Sep 17 00:00:00 2001 From: Asutosh Das Date: Tue, 7 Aug 2018 09:31:42 +0530 Subject: [PATCH] ufs: qcom: set load before setting voltage in regulator This sequence change is required to avoid dips in voltage during boot-up. Apparently, this dip is caused because in the original sequence, the regulators are initialized in lpm mode. And then when the load is set to high, and more current is drawn, than is allowed in lpm, the dip is seen. CRs-fixed: 2279027 Change-Id: Ie6cbc332cbee8227e16636219e375b18c796a12f Signed-off-by: Asutosh Das --- drivers/scsi/ufs/ufs-qcom.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index 6e307b5dce81..e1509b2bad19 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -728,6 +728,11 @@ static int ufs_qcom_config_vreg(struct device *dev, reg = vreg->reg; if (regulator_count_voltages(reg) > 0) { + uA_load = on ? vreg->max_uA : 0; + ret = regulator_set_load(vreg->reg, uA_load); + if (ret) + goto out; + min_uV = on ? vreg->min_uV : 0; ret = regulator_set_voltage(reg, min_uV, vreg->max_uV); if (ret) { @@ -735,11 +740,6 @@ static int ufs_qcom_config_vreg(struct device *dev, __func__, vreg->name, ret); goto out; } - - uA_load = on ? vreg->max_uA : 0; - ret = regulator_set_load(vreg->reg, uA_load); - if (ret) - goto out; } out: return ret;