Netdev List
 help / color / mirror / Atom feed
* [PATCH 1/2] can: flexcan: disable runtime PM if register flexcandev failed
@ 2019-12-10  7:15 Joakim Zhang
  2019-12-10  7:16 ` [PATCH 2/2] can: flexcan: disable clocks during stop mode Joakim Zhang
  0 siblings, 1 reply; 6+ messages in thread
From: Joakim Zhang @ 2019-12-10  7:15 UTC (permalink / raw)
  To: mkl@pengutronix.de, sean@geanix.com, linux-can@vger.kernel.org
  Cc: dl-linux-imx, netdev@vger.kernel.org, Joakim Zhang

Had better disable runtime PM if register flexcandev failed.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 drivers/net/can/flexcan.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 3a754355ebe6..6c1ccf9f6c08 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1681,6 +1681,8 @@ static int flexcan_probe(struct platform_device *pdev)
 	return 0;
 
  failed_register:
+	pm_runtime_put_noidle(&pdev->dev);
+	pm_runtime_disable(&pdev->dev);
 	free_candev(dev);
 	return err;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] can: flexcan: disable clocks during stop mode
  2019-12-10  7:15 [PATCH 1/2] can: flexcan: disable runtime PM if register flexcandev failed Joakim Zhang
@ 2019-12-10  7:16 ` Joakim Zhang
  2019-12-10  7:39   ` Sean Nyekjaer
  2019-12-10  8:31   ` Marc Kleine-Budde
  0 siblings, 2 replies; 6+ messages in thread
From: Joakim Zhang @ 2019-12-10  7:16 UTC (permalink / raw)
  To: mkl@pengutronix.de, sean@geanix.com, linux-can@vger.kernel.org
  Cc: dl-linux-imx, netdev@vger.kernel.org, Joakim Zhang

Disable clocks during CAN in stop mode.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 drivers/net/can/flexcan.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 6c1ccf9f6c08..d767f85c80d3 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1786,10 +1786,16 @@ static int __maybe_unused flexcan_noirq_suspend(struct device *device)
 {
 	struct net_device *dev = dev_get_drvdata(device);
 	struct flexcan_priv *priv = netdev_priv(dev);
+	int err;
 
-	if (netif_running(dev) && device_may_wakeup(device))
+	if (netif_running(dev) && device_may_wakeup(device)) {
 		flexcan_enable_wakeup_irq(priv, true);
 
+		err = pm_runtime_force_suspend(device);
+		if (err)
+			return err;
+	}
+
 	return 0;
 }
 
@@ -1800,7 +1806,12 @@ static int __maybe_unused flexcan_noirq_resume(struct device *device)
 	int err;
 
 	if (netif_running(dev) && device_may_wakeup(device)) {
+		err = pm_runtime_force_resume(device);
+		if (err)
+			return err;
+
 		flexcan_enable_wakeup_irq(priv, false);
+
 		err = flexcan_exit_stop_mode(priv);
 		if (err)
 			return err;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] can: flexcan: disable clocks during stop mode
  2019-12-10  7:16 ` [PATCH 2/2] can: flexcan: disable clocks during stop mode Joakim Zhang
@ 2019-12-10  7:39   ` Sean Nyekjaer
  2019-12-10  7:58     ` Joakim Zhang
  2019-12-10  8:31   ` Marc Kleine-Budde
  1 sibling, 1 reply; 6+ messages in thread
From: Sean Nyekjaer @ 2019-12-10  7:39 UTC (permalink / raw)
  To: Joakim Zhang, mkl@pengutronix.de, linux-can@vger.kernel.org
  Cc: dl-linux-imx, netdev@vger.kernel.org



On 10/12/2019 08.16, Joakim Zhang wrote:
> Disable clocks during CAN in stop mode.
> 

Hi Joakim

I hope I can get time to test this patchset during this week :-)

/Sean

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH 2/2] can: flexcan: disable clocks during stop mode
  2019-12-10  7:39   ` Sean Nyekjaer
@ 2019-12-10  7:58     ` Joakim Zhang
  0 siblings, 0 replies; 6+ messages in thread
From: Joakim Zhang @ 2019-12-10  7:58 UTC (permalink / raw)
  To: Sean Nyekjaer, mkl@pengutronix.de, linux-can@vger.kernel.org
  Cc: dl-linux-imx, netdev@vger.kernel.org


> -----Original Message-----
> From: Sean Nyekjaer <sean@geanix.com>
> Sent: 2019年12月10日 15:40
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; mkl@pengutronix.de;
> linux-can@vger.kernel.org
> Cc: dl-linux-imx <linux-imx@nxp.com>; netdev@vger.kernel.org
> Subject: Re: [PATCH 2/2] can: flexcan: disable clocks during stop mode
> 
> 
> 
> On 10/12/2019 08.16, Joakim Zhang wrote:
> > Disable clocks during CAN in stop mode.
> >
> 
> Hi Joakim
> 
> I hope I can get time to test this patchset during this week :-)

Hi Sean,

You are really kind :-), thank you very much!

Best Regards,
Joakim Zhang
> /Sean

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] can: flexcan: disable clocks during stop mode
  2019-12-10  7:16 ` [PATCH 2/2] can: flexcan: disable clocks during stop mode Joakim Zhang
  2019-12-10  7:39   ` Sean Nyekjaer
@ 2019-12-10  8:31   ` Marc Kleine-Budde
  2019-12-10  8:41     ` Joakim Zhang
  1 sibling, 1 reply; 6+ messages in thread
From: Marc Kleine-Budde @ 2019-12-10  8:31 UTC (permalink / raw)
  To: Joakim Zhang, sean@geanix.com, linux-can@vger.kernel.org
  Cc: dl-linux-imx, netdev@vger.kernel.org


[-- Attachment #1.1: Type: text/plain, Size: 1371 bytes --]

On 12/10/19 8:16 AM, Joakim Zhang wrote:
> Disable clocks during CAN in stop mode.
> 
> Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> ---
>  drivers/net/can/flexcan.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> index 6c1ccf9f6c08..d767f85c80d3 100644
> --- a/drivers/net/can/flexcan.c
> +++ b/drivers/net/can/flexcan.c
> @@ -1786,10 +1786,16 @@ static int __maybe_unused flexcan_noirq_suspend(struct device *device)
>  {
>  	struct net_device *dev = dev_get_drvdata(device);
>  	struct flexcan_priv *priv = netdev_priv(dev);
> +	int err;
>  
> -	if (netif_running(dev) && device_may_wakeup(device))
> +	if (netif_running(dev) && device_may_wakeup(device)) {
>  		flexcan_enable_wakeup_irq(priv, true);
>  
> +		err = pm_runtime_force_suspend(device);
> +		if (err)
> +			return err;
> +	}

What about moving the pm_runtime_force_suspend() call for both cases
"device_may_wakeup()" and "!device_may_wakeup()" into the
flexcan_noirq_suspend() handler?

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 |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH 2/2] can: flexcan: disable clocks during stop mode
  2019-12-10  8:31   ` Marc Kleine-Budde
@ 2019-12-10  8:41     ` Joakim Zhang
  0 siblings, 0 replies; 6+ messages in thread
From: Joakim Zhang @ 2019-12-10  8:41 UTC (permalink / raw)
  To: Marc Kleine-Budde, sean@geanix.com, linux-can@vger.kernel.org
  Cc: dl-linux-imx, netdev@vger.kernel.org


> -----Original Message-----
> From: Marc Kleine-Budde <mkl@pengutronix.de>
> Sent: 2019年12月10日 16:32
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; sean@geanix.com;
> linux-can@vger.kernel.org
> Cc: dl-linux-imx <linux-imx@nxp.com>; netdev@vger.kernel.org
> Subject: Re: [PATCH 2/2] can: flexcan: disable clocks during stop mode
> 
> On 12/10/19 8:16 AM, Joakim Zhang wrote:
> > Disable clocks during CAN in stop mode.
> >
> > Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> > ---
> >  drivers/net/can/flexcan.c | 13 ++++++++++++-
> >  1 file changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> > index 6c1ccf9f6c08..d767f85c80d3 100644
> > --- a/drivers/net/can/flexcan.c
> > +++ b/drivers/net/can/flexcan.c
> > @@ -1786,10 +1786,16 @@ static int __maybe_unused
> > flexcan_noirq_suspend(struct device *device)  {
> >  	struct net_device *dev = dev_get_drvdata(device);
> >  	struct flexcan_priv *priv = netdev_priv(dev);
> > +	int err;
> >
> > -	if (netif_running(dev) && device_may_wakeup(device))
> > +	if (netif_running(dev) && device_may_wakeup(device)) {
> >  		flexcan_enable_wakeup_irq(priv, true);
> >
> > +		err = pm_runtime_force_suspend(device);
> > +		if (err)
> > +			return err;
> > +	}
> 
> What about moving the pm_runtime_force_suspend() call for both cases
> "device_may_wakeup()" and "!device_may_wakeup()" into the
> flexcan_noirq_suspend() handler?

Sounds great! I will do it in V2.

Best Regards,
Joakim Zhang
> 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 |


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-12-10  8:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-10  7:15 [PATCH 1/2] can: flexcan: disable runtime PM if register flexcandev failed Joakim Zhang
2019-12-10  7:16 ` [PATCH 2/2] can: flexcan: disable clocks during stop mode Joakim Zhang
2019-12-10  7:39   ` Sean Nyekjaer
2019-12-10  7:58     ` Joakim Zhang
2019-12-10  8:31   ` Marc Kleine-Budde
2019-12-10  8:41     ` Joakim Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox