[PATCHv2] can: at91_can: prepare and unprepare the clock

Boris BREZILLON boris.brezillon at free-electrons.com
Wed Sep 17 11:34:44 PDT 2014


On Wed, 17 Sep 2014 14:26:48 +0200
David Dueck <davidcdueck at googlemail.com> wrote:

> Make the driver work with the common clock framework.
> 
> Signed-off-by: David Dueck <davidcdueck at googlemail.com>
> Signed-off-by: Anthony Harivel <anthony.harivel at emtrion.de>

Acked-by: Boris Brezillon <boris.brezillon at free-electrons.com>

> ---
> Changes since v1:
> - improve commit message
> - check return value of clk_prepare_enable
> 
>  drivers/net/can/at91_can.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
> index f07fa89..05e1aa0 100644
> --- a/drivers/net/can/at91_can.c
> +++ b/drivers/net/can/at91_can.c
> @@ -1123,7 +1123,9 @@ static int at91_open(struct net_device *dev)
>  	struct at91_priv *priv = netdev_priv(dev);
>  	int err;
>  
> -	clk_enable(priv->clk);
> +	err = clk_prepare_enable(priv->clk);
> +	if (err)
> +		return err;
>  
>  	/* check or determine and set bittime */
>  	err = open_candev(dev);
> @@ -1149,7 +1151,7 @@ static int at91_open(struct net_device *dev)
>   out_close:
>  	close_candev(dev);
>   out:
> -	clk_disable(priv->clk);
> +	clk_disable_unprepare(priv->clk);
>  
>  	return err;
>  }
> @@ -1166,7 +1168,7 @@ static int at91_close(struct net_device *dev)
>  	at91_chip_stop(dev, CAN_STATE_STOPPED);
>  
>  	free_irq(dev->irq, dev);
> -	clk_disable(priv->clk);
> +	clk_disable_unprepare(priv->clk);
>  
>  	close_candev(dev);
>  



-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list