All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanley Chu <stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
To: linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
	avri.altman-Sjgp3cTcYWE@public.gmane.org,
	alim.akhtar-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
	pedrom.sousa-HKixBCOQz3hWk0Htik3J/w@public.gmane.org
Cc: marc.w.gonzalez-GANU6spQydw@public.gmane.org,
	chun-hung.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
	kuohong.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
	linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	peter.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
	matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	Stanley Chu <stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
Subject: [PATCH v3 2/5] scsi: ufs: Avoid configuring undefined voltage range on a regulator
Date: Mon, 18 Mar 2019 10:14:37 +0800	[thread overview]
Message-ID: <1552875280-16196-4-git-send-email-stanley.chu@mediatek.com> (raw)
In-Reply-To: <1552875280-16196-1-git-send-email-stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>

For regulators used by UFS, vcc, vccq and vccq2 will have voltage range
initialized by ufshcd_populate_vreg(), however other regulators may
not have voltage range settings if undefined in dt-bindings.

In this case, both "min_uV" and "max_uV" fields in ufs_vreg struct
will be zero values and used as new voltage range for voltage
configuration in different power modes.

Currently this may have no harm because if both "min_uV" and "max_uV"
always keep "zero value", regulator_set_voltage() will always bypass
such invalid values and return "good" results.

However improper values shall be fixed to avoid future potential
bug. Simply bypass voltage configuration if voltage range is not
defined.

Signed-off-by: Stanley Chu <stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
---
 drivers/scsi/ufs/ufshcd.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 8b9a01073d62..4e41fdfd0e53 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -7024,12 +7024,15 @@ static int ufshcd_config_vreg(struct device *dev,
 	name = vreg->name;
 
 	if (regulator_count_voltages(reg) > 0) {
-		min_uV = on ? vreg->min_uV : 0;
-		ret = regulator_set_voltage(reg, min_uV, vreg->max_uV);
-		if (ret) {
-			dev_err(dev, "%s: %s set voltage failed, err=%d\n",
+		if (vreg->min_uV && vreg->max_uV) {
+			min_uV = on ? vreg->min_uV : 0;
+			ret = regulator_set_voltage(reg, min_uV, vreg->max_uV);
+			if (ret) {
+				dev_err(dev,
+					"%s: %s set voltage failed, err=%d\n",
 					__func__, name, ret);
-			goto out;
+				goto out;
+			}
 		}
 
 		uA_load = on ? vreg->max_uA : 0;
-- 
2.18.0

  parent reply	other threads:[~2019-03-18  2:14 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-18  2:14 scsi: ufs: Fix regulator operations and remove "<name>-fixed-regulator" device tree property Stanley Chu
     [not found] ` <1552875280-16196-1-git-send-email-stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-03-18  2:14   ` [PATCH v3 0/5] " Stanley Chu
     [not found]     ` <1552875280-16196-2-git-send-email-stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-03-25  1:16       ` Stanley Chu
2019-03-18  2:14   ` [PATCH v3 1/5] scsi: ufs: Remove unused min_uA field in struct ufs_vreg Stanley Chu
     [not found]     ` <1552875280-16196-3-git-send-email-stanley.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-03-19  3:06       ` Alim Akhtar
2019-03-18  2:14   ` Stanley Chu [this message]
2019-03-18  2:14   ` [PATCH v3 3/5] scsi: ufs: Fix regulator load and icc-level configuration Stanley Chu
2019-03-18  2:14   ` [PATCH v3 4/5] scsi: ufs: Change "<name>-max-microamp" to non-mandatory property Stanley Chu
2019-03-18  2:14   ` [PATCH v3 5/5] scsi: ufs: Remove "<name>-fixed-regulator" device tree property Stanley Chu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1552875280-16196-4-git-send-email-stanley.chu@mediatek.com \
    --to=stanley.chu-nus5lvnupcjwk0htik3j/w@public.gmane.org \
    --cc=alim.akhtar-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=avri.altman-Sjgp3cTcYWE@public.gmane.org \
    --cc=chun-hung.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
    --cc=kuohong.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
    --cc=linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=marc.w.gonzalez-GANU6spQydw@public.gmane.org \
    --cc=martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=pedrom.sousa-HKixBCOQz3hWk0Htik3J/w@public.gmane.org \
    --cc=peter.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.