diff mbox series

counter: ti-ecap-capture: Add check for clk_enable()

Message ID 20241103213910.31976-1-jiashengjiangcool@gmail.com
State New
Headers show
Series counter: ti-ecap-capture: Add check for clk_enable() | expand

Commit Message

Jiasheng Jiang Nov. 3, 2024, 9:39 p.m. UTC
Add check for the return value of clk_enable() in order to catch the
potential exception.

Fixes: 4e2f42aa00b6 ("counter: ti-ecap-capture: capture driver support for ECAP")
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
---
 drivers/counter/ti-ecap-capture.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

William Breathitt Gray Nov. 4, 2024, 2:28 p.m. UTC | #1
On Sun, Nov 03, 2024 at 09:39:10PM +0000, Jiasheng Jiang wrote:
> Add check for the return value of clk_enable() in order to catch the
> potential exception.
> 
> Fixes: 4e2f42aa00b6 ("counter: ti-ecap-capture: capture driver support for ECAP")
> Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
> ---
>  drivers/counter/ti-ecap-capture.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/counter/ti-ecap-capture.c b/drivers/counter/ti-ecap-capture.c
> index 675447315caf..30a269fa5da0 100644
> --- a/drivers/counter/ti-ecap-capture.c
> +++ b/drivers/counter/ti-ecap-capture.c
> @@ -574,8 +574,11 @@ static int ecap_cnt_resume(struct device *dev)
>  {
>  	struct counter_device *counter_dev = dev_get_drvdata(dev);
>  	struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev);
> +	int ret;
>  
> -	clk_enable(ecap_dev->clk);
> +	ret = clk_enable(ecap_dev->clk);
> +	if (ret)
> +		return ret;
>  
>  	ecap_cnt_capture_set_evmode(counter_dev, ecap_dev->pm_ctx.ev_mode);
>  
> -- 
> 2.25.1

Similar to the stm32-timer-cnt patch comment: it's not necessarily clear
that an error in the cnt_resume() callback is due to a clk_enable()
failure, so you should call dev_err() before returning to indicate the
reason for the error code.

William Breathitt Gray
diff mbox series

Patch

diff --git a/drivers/counter/ti-ecap-capture.c b/drivers/counter/ti-ecap-capture.c
index 675447315caf..30a269fa5da0 100644
--- a/drivers/counter/ti-ecap-capture.c
+++ b/drivers/counter/ti-ecap-capture.c
@@ -574,8 +574,11 @@  static int ecap_cnt_resume(struct device *dev)
 {
 	struct counter_device *counter_dev = dev_get_drvdata(dev);
 	struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev);
+	int ret;
 
-	clk_enable(ecap_dev->clk);
+	ret = clk_enable(ecap_dev->clk);
+	if (ret)
+		return ret;
 
 	ecap_cnt_capture_set_evmode(counter_dev, ecap_dev->pm_ctx.ev_mode);