diff mbox series

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

Message ID 20211019091416.16923-1-Meng.Li@windriver.com (mailing list archive)
State Awaiting Upstream
Delegated to: Netdev Maintainers
Headers show
Series driver: net: can: disable clock when it is in enable status | expand

Checks

Context Check Description
netdev/cover_letter success Single patches do not need cover letters
netdev/fixes_present success Fixes tag not required for -next series
netdev/patch_count success Link
netdev/tree_selection success Guessed tree name to be net-next
netdev/subject_prefix warning Target tree name not specified in the subject
netdev/cc_maintainers success CCed 9 of 9 maintainers
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Fixes tag looks correct
netdev/checkpatch fail ERROR: space required before the open parenthesis '('
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success No static functions without inline keyword in header files

Commit Message

Li, Meng Oct. 19, 2021, 9:14 a.m. UTC
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@vger.kernel.org
Signed-off-by: Meng Li <Meng.Li@windriver.com>
---
 drivers/net/can/rcar/rcar_can.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Marc Kleine-Budde Oct. 19, 2021, 9:23 a.m. UTC | #1
On 19.10.2021 17:14:16, Meng Li wrote:
> 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@vger.kernel.org
> Signed-off-by: Meng Li <Meng.Li@windriver.com>

Thanks for your patch. This problem should have been resolved with:

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=f7c05c3987dcfde9a4e8c2d533db013fabebca0d

regards
Marc
Li, Meng Oct. 19, 2021, 9:33 a.m. UTC | #2
> -----Original Message-----
> From: Marc Kleine-Budde <mkl@pengutronix.de>
> Sent: Tuesday, October 19, 2021 5:23 PM
> To: Li, Meng <Meng.Li@windriver.com>
> Cc: wg@grandegger.com; davem@davemloft.net; kuba@kernel.org;
> mailhol.vincent@wanadoo.fr; socketcan@hartkopp.net;
> ramesh.shanmugasundaram@bp.renesas.com; linux-can@vger.kernel.org;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH] driver: net: can: disable clock when it is in enable status
> 
> On 19.10.2021 17:14:16, Meng Li wrote:
> > 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@vger.kernel.org
> > Signed-off-by: Meng Li <Meng.Li@windriver.com>
> 
> Thanks for your patch. This problem should have been resolved with:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id
> =f7c05c3987dcfde9a4e8c2d533db013fabebca0d
> 

Ok!
Thanks for reminding me.

Regards,
Limeng

> regards
> Marc
> 
> --
> Pengutronix e.K.                 | Marc Kleine-Budde           |
> Embedded Linux                   | https://www.pengutronix.de  |
> Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
> Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |
diff mbox series

Patch

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;
 }