diff mbox

drm: msm: dsi: Don't attempt changing voltage of switches

Message ID 1439919272-19793-1-git-send-email-bjorn.andersson@sonymobile.com (mailing list archive)
State New, archived
Headers show

Commit Message

Bjorn Andersson Aug. 18, 2015, 5:34 p.m. UTC
In some configurations the supplies are voltage switches and not LDOs,
making the set voltage call to fail. Check with the regulator framework
if the supply can change voltage before attempting.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
---
 drivers/gpu/drm/msm/dsi/dsi_host.c    | 2 +-
 drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Archit Taneja Aug. 28, 2015, 10:27 a.m. UTC | #1
Hi,

On 08/18/2015 11:04 PM, Bjorn Andersson wrote:
> In some configurations the supplies are voltage switches and not LDOs,
> making the set voltage call to fail. Check with the regulator framework
> if the supply can change voltage before attempting.
>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
> ---
>   drivers/gpu/drm/msm/dsi/dsi_host.c    | 2 +-
>   drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> index 8c16d6a3ca78..ece3de6a8157 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> @@ -278,7 +278,7 @@ static int dsi_regulator_init(struct msm_dsi_host *msm_host)
>   	}
>
>   	for (i = 0; i < num; i++) {
> -		if ((regs[i].min_voltage >= 0) && (regs[i].max_voltage >= 0)) {
> +		if (regulator_can_change_voltage(s[i].consumer)) {
>   			ret = regulator_set_voltage(s[i].consumer,
>   				regs[i].min_voltage, regs[i].max_voltage);
>   			if (ret < 0) {
> diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
> index 401ff58d6893..f1f955f571fa 100644
> --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
> +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
> @@ -178,7 +178,7 @@ static int dsi_phy_regulator_init(struct msm_dsi_phy *phy)
>   	}
>
>   	for (i = 0; i < num; i++) {
> -		if ((regs[i].min_voltage >= 0) && (regs[i].max_voltage >= 0)) {
> +		if (regulator_can_change_voltage(s[i].consumer)) {
>   			ret = regulator_set_voltage(s[i].consumer,
>   				regs[i].min_voltage, regs[i].max_voltage);
>   			if (ret < 0) {
>

Looks good to me.

Reviewed-by: Archit Taneja <architt@codeaurora.org>

Archit
diff mbox

Patch

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 8c16d6a3ca78..ece3de6a8157 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -278,7 +278,7 @@  static int dsi_regulator_init(struct msm_dsi_host *msm_host)
 	}
 
 	for (i = 0; i < num; i++) {
-		if ((regs[i].min_voltage >= 0) && (regs[i].max_voltage >= 0)) {
+		if (regulator_can_change_voltage(s[i].consumer)) {
 			ret = regulator_set_voltage(s[i].consumer,
 				regs[i].min_voltage, regs[i].max_voltage);
 			if (ret < 0) {
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
index 401ff58d6893..f1f955f571fa 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
@@ -178,7 +178,7 @@  static int dsi_phy_regulator_init(struct msm_dsi_phy *phy)
 	}
 
 	for (i = 0; i < num; i++) {
-		if ((regs[i].min_voltage >= 0) && (regs[i].max_voltage >= 0)) {
+		if (regulator_can_change_voltage(s[i].consumer)) {
 			ret = regulator_set_voltage(s[i].consumer,
 				regs[i].min_voltage, regs[i].max_voltage);
 			if (ret < 0) {