2018-03-12 08:54:26

by Bich HEMON

[permalink] [raw]
Subject: [PATCH] can: m_can: select pinctrl state in each suspend/resume function

Make sure to apply the correct pin state in suspend/resume callbacks.
Putting pins in sleep state saves power.

Signed-off-by: Bich Hemon <[email protected]>
---
drivers/net/can/m_can/m_can.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
index 2594f77..a86ef69 100644
--- a/drivers/net/can/m_can/m_can.c
+++ b/drivers/net/can/m_can/m_can.c
@@ -1700,6 +1700,8 @@ static __maybe_unused int m_can_suspend(struct device *dev)
m_can_clk_stop(priv);
}

+ pinctrl_pm_select_sleep_state(dev);
+
priv->can.state = CAN_STATE_SLEEPING;

return 0;
@@ -1710,6 +1712,8 @@ static __maybe_unused int m_can_resume(struct device *dev)
struct net_device *ndev = dev_get_drvdata(dev);
struct m_can_priv *priv = netdev_priv(ndev);

+ pinctrl_pm_select_default_state(dev);
+
m_can_init_ram(priv);

priv->can.state = CAN_STATE_ERROR_ACTIVE;
--
1.9.1


2018-03-12 09:41:37

by Marc Kleine-Budde

[permalink] [raw]
Subject: Re: [PATCH] can: m_can: select pinctrl state in each suspend/resume function

On 03/12/2018 09:52 AM, Bich HEMON wrote:
> Make sure to apply the correct pin state in suspend/resume callbacks.
> Putting pins in sleep state saves power.
>
> Signed-off-by: Bich Hemon <[email protected]>
> ---

Doesn't compile:

> CHECK /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c:1703:9: error: undefined identifier 'pinctrl_pm_select_sleep_state'
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c:1715:9: error: undefined identifier 'pinctrl_pm_select_default_state'
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c:1703:38: warning: call with no type!
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c:1715:40: warning: call with no type!
> CC [M] drivers/net/can/m_can/m_can.o
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c: In function 'm_can_suspend':
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c:1703:2: error: implicit declaration of function 'pinctrl_pm_select_sleep_state' [-Werror=implicit-function-declaration]
> pinctrl_pm_select_sleep_state(dev);
> ^
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c: In function 'm_can_resume':
> /srv/work/frogger/socketcan/linux/drivers/net/can/m_can/m_can.c:1715:2: error: implicit declaration of function 'pinctrl_pm_select_default_state' [-Werror=implicit-function-declaration]
> pinctrl_pm_select_default_state(dev);
> ^

Fixed while applying the patch.

Marc

--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |


Attachments:
signature.asc (499.00 B)
OpenPGP digital signature