[PATCH] driver: net: can: disable clock when it is in enable status

From: Meng Li
Date: Tue Oct 19 2021 - 05:15:28 EST


If disable a clock when it is already in disable status, there
will be a warning trace generated. So, it is need to confirm
whether what status the clock is in before disable it.

Fixes: a23b97e6255b ("can: rcar_can: Move Renesas CAN driver to rcar dir")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Meng Li <Meng.Li@xxxxxxxxxxxxx>
---
drivers/net/can/rcar/rcar_can.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/can/rcar/rcar_can.c b/drivers/net/can/rcar/rcar_can.c
index 48575900adb7..e340e32cd145 100644
--- a/drivers/net/can/rcar/rcar_can.c
+++ b/drivers/net/can/rcar/rcar_can.c
@@ -15,6 +15,7 @@
#include <linux/can/led.h>
#include <linux/can/dev.h>
#include <linux/clk.h>
+#include <linux/clk-provider.h>
#include <linux/of.h>

#define RCAR_CAN_DRV_NAME "rcar_can"
@@ -857,7 +858,9 @@ static int __maybe_unused rcar_can_suspend(struct device *dev)
writew(ctlr, &priv->regs->ctlr);
priv->can.state = CAN_STATE_SLEEPING;

- clk_disable(priv->clk);
+ if(__clk_is_enabled(priv->clk))
+ clk_disable(priv->clk);
+
return 0;
}

--
2.17.1