diff mbox series

clk: qcom: gdsc: WARN when failing to toggle

Message ID 20190504001736.8598-1-bjorn.andersson@linaro.org
State Accepted
Commit f02fba3aa8feeee0a9f9c82c6db2ae9dda7825cd
Headers show
Series clk: qcom: gdsc: WARN when failing to toggle | expand

Commit Message

Bjorn Andersson May 4, 2019, 12:17 a.m. UTC
Failing to toggle a GDSC as the driver core is attaching the
power-domain to a device will cause a silent probe deferral. Provide an
explicit warning to the developer, in order to reduce the amount of time
it take to debug this.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

---
 drivers/clk/qcom/gdsc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

-- 
2.18.0

Comments

Jeffrey Hugo May 17, 2019, 7:16 p.m. UTC | #1
On 5/3/2019 6:17 PM, Bjorn Andersson wrote:
> Failing to toggle a GDSC as the driver core is attaching the

> power-domain to a device will cause a silent probe deferral. Provide an

> explicit warning to the developer, in order to reduce the amount of time

> it take to debug this.

> 

> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>


Reviewed-by: Jeffrey Hugo <jhugo@codeaurora.org>

Tested-by: Jeffrey Hugo <jhugo@codeaurora.org>


> ---

>   drivers/clk/qcom/gdsc.c | 4 +++-

>   1 file changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c

> index dd63aa36b092..6a8a4996dde3 100644

> --- a/drivers/clk/qcom/gdsc.c

> +++ b/drivers/clk/qcom/gdsc.c

> @@ -149,7 +149,9 @@ static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status)

>   		udelay(1);

>   	}

>   

> -	return gdsc_poll_status(sc, status);

> +	ret = gdsc_poll_status(sc, status);

> +	WARN(ret, "%s status stuck at 'o%s'", sc->pd.name, status ? "ff" : "n");

> +	return ret;

>   }

>   

>   static inline int gdsc_deassert_reset(struct gdsc *sc)

> 



-- 
Jeffrey Hugo
Qualcomm Datacenter Technologies as an affiliate of Qualcomm 
Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.
Marc Gonzalez May 20, 2019, 8:14 a.m. UTC | #2
On 04/05/2019 02:17, Bjorn Andersson wrote:

> Failing to toggle a GDSC as the driver core is attaching the

> power-domain to a device will cause a silent probe deferral. Provide an

> explicit warning to the developer, in order to reduce the amount of time

> it take to debug this.


"it takes"

> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

> ---

>  drivers/clk/qcom/gdsc.c | 4 +++-

>  1 file changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c

> index dd63aa36b092..6a8a4996dde3 100644

> --- a/drivers/clk/qcom/gdsc.c

> +++ b/drivers/clk/qcom/gdsc.c

> @@ -149,7 +149,9 @@ static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status)

>  		udelay(1);

>  	}

>  

> -	return gdsc_poll_status(sc, status);

> +	ret = gdsc_poll_status(sc, status);

> +	WARN(ret, "%s status stuck at 'o%s'", sc->pd.name, status ? "ff" : "n");

> +	return ret;


In my opinion, the minor obfuscation of "o%s", foo ? "ff" : "n"
does not justify the tiny space savings.

I'd spell it out: "%s", foo ? "off" : "on"

In any event:

Reviewed-by: Marc Gonzalez <marc.w.gonzalez@free.fr>


Regards.
Stephen Boyd June 7, 2019, 8:20 p.m. UTC | #3
Quoting Bjorn Andersson (2019-05-03 17:17:36)
> Failing to toggle a GDSC as the driver core is attaching the

> power-domain to a device will cause a silent probe deferral. Provide an

> explicit warning to the developer, in order to reduce the amount of time

> it take to debug this.

> 

> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

> ---


Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c
index dd63aa36b092..6a8a4996dde3 100644
--- a/drivers/clk/qcom/gdsc.c
+++ b/drivers/clk/qcom/gdsc.c
@@ -149,7 +149,9 @@  static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status)
 		udelay(1);
 	}
 
-	return gdsc_poll_status(sc, status);
+	ret = gdsc_poll_status(sc, status);
+	WARN(ret, "%s status stuck at 'o%s'", sc->pd.name, status ? "ff" : "n");
+	return ret;
 }
 
 static inline int gdsc_deassert_reset(struct gdsc *sc)