[PATCH 1/2] Input: at32psif: handle clk_enable return value

Subsystems: input (keyboard, mouse, joystick, touchscreen) drivers, the rest

STALE4062d

5 messages, 2 authors, 2015-09-11 · open the first message on its own page

[PATCH 1/2] Input: at32psif: handle clk_enable return value

From: WEN Pingbo <hidden>
Date: 2015-09-11 03:03:52

We should print the err if clk_enable failed.

Signed-off-by: WEN Pingbo <redacted>
---
 drivers/input/serio/at32psif.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/input/serio/at32psif.c b/drivers/input/serio/at32psif.c
index 2e4ff5b..aebb996 100644
--- a/drivers/input/serio/at32psif.c
+++ b/drivers/input/serio/at32psif.c
@@ -185,6 +185,7 @@ static void psif_set_prescaler(struct psif *psif)
 {
 	unsigned long prscv;
 	unsigned long rate = clk_get_rate(psif->pclk);
+	int retval;
 
 	/* PRSCV = Pulse length (100 us) * PSIF module frequency. */
 	prscv = 100 * (rate / 1000000UL);
@@ -195,7 +196,10 @@ static void psif_set_prescaler(struct psif *psif)
 				"prescaler set to max\n");
 	}
 
-	clk_enable(psif->pclk);
+	retval = clk_enable(psif->pclk);
+	if (retval < 0)
+		dev_err(&psif->pdev->dev,
+			"could not enable pclk, ret %d\n", retval);
 	psif_writel(psif, PSR, prscv);
 	clk_disable(psif->pclk);
 }
-- 
1.9.1

[PATCH 2/2] Input: lpc32xx: handle clk_enable return value

From: WEN Pingbo <hidden>
Date: 2015-09-11 03:03:55

If clk_enable failed, return the err code

Signed-off-by: WEN Pingbo <redacted>
---
 drivers/input/touchscreen/lpc32xx_ts.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/lpc32xx_ts.c b/drivers/input/touchscreen/lpc32xx_ts.c
index 24d704c..60cd31d 100644
--- a/drivers/input/touchscreen/lpc32xx_ts.c
+++ b/drivers/input/touchscreen/lpc32xx_ts.c
@@ -145,8 +145,14 @@ static void lpc32xx_stop_tsc(struct lpc32xx_tsc *tsc)
 static void lpc32xx_setup_tsc(struct lpc32xx_tsc *tsc)
 {
 	u32 tmp;
+	int retval;
 
-	clk_enable(tsc->clk);
+	retval = clk_enable(tsc->clk);
+	if (retval) {
+		dev_err(&tsc->dev->dev,
+			"clk_enable failed, ret %d\n", retval);
+		return;
+	}
 
 	tmp = tsc_readl(tsc, LPC32XX_TSC_CON) & ~LPC32XX_TSC_ADCCON_POWER_UP;
 
-- 
1.9.1

Re: [PATCH 1/2] Input: at32psif: handle clk_enable return value

From: Fabio Estevam <festevam@gmail.com>
Date: 2015-09-11 03:10:34

On Fri, Sep 11, 2015 at 12:02 AM, WEN Pingbo [off-list ref] wrote:
quoted hunk
-       clk_enable(psif->pclk);
+       retval = clk_enable(psif->pclk);
+       if (retval < 0)
+               dev_err(&psif->pdev->dev,
+                       "could not enable pclk, ret %d\n", retval);
Shouldn't you add a 'return' here to prevent the code to proceed with
the failed clock?

Re: [PATCH 1/2] Input: at32psif: handle clk_enable return value

From: Pingbo Wen <hidden>
Date: 2015-09-11 03:22:17


On Friday, September 11, 2015 11:10 AM, Fabio Estevam wrote:
On Fri, Sep 11, 2015 at 12:02 AM, WEN Pingbo [off-list ref] wrote:
quoted
-       clk_enable(psif->pclk);
+       retval = clk_enable(psif->pclk);
+       if (retval < 0)
+               dev_err(&psif->pdev->dev,
+                       "could not enable pclk, ret %d\n", retval);
Shouldn't you add a 'return' here to prevent the code to proceed with
the failed clock?
Yes, it should be there. I will re-send the patch. Thank you.

[PATCH V2 1/2] Input: at32psif: handle clk_enable return value

From: WEN Pingbo <hidden>
Date: 2015-09-11 03:35:39

We should print the err if clk_enable failed.

Signed-off-by: WEN Pingbo <redacted>
---
 drivers/input/serio/at32psif.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/input/serio/at32psif.c b/drivers/input/serio/at32psif.c
index 2e4ff5b..38862a8 100644
--- a/drivers/input/serio/at32psif.c
+++ b/drivers/input/serio/at32psif.c
@@ -185,6 +185,7 @@ static void psif_set_prescaler(struct psif *psif)
 {
 	unsigned long prscv;
 	unsigned long rate = clk_get_rate(psif->pclk);
+	int retval;
 
 	/* PRSCV = Pulse length (100 us) * PSIF module frequency. */
 	prscv = 100 * (rate / 1000000UL);
@@ -195,7 +196,12 @@ static void psif_set_prescaler(struct psif *psif)
 				"prescaler set to max\n");
 	}
 
-	clk_enable(psif->pclk);
+	retval = clk_enable(psif->pclk);
+	if (retval < 0) {
+		dev_err(&psif->pdev->dev,
+			"could not enable pclk, ret %d\n", retval);
+		return;
+	}
 	psif_writel(psif, PSR, prscv);
 	clk_disable(psif->pclk);
 }
-- 
1.9.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help