mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-20 19:23:57 +08:00
can: at91_can: add missing prepare and unprepare of the clock
In order to make the driver work with the common clock framework, this patch converts the clk_enable()/clk_disable() to clk_prepare_enable()/clk_disable_unprepare(). While there, add the missing error handling. Signed-off-by: David Dueck <davidcdueck@googlemail.com> Signed-off-by: Anthony Harivel <anthony.harivel@emtrion.de> Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com> Cc: linux-stable <stable@vger.kernel.org> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
4c728d804c
commit
e77980e50b
@ -1123,7 +1123,9 @@ static int at91_open(struct net_device *dev)
|
|||||||
struct at91_priv *priv = netdev_priv(dev);
|
struct at91_priv *priv = netdev_priv(dev);
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
clk_enable(priv->clk);
|
err = clk_prepare_enable(priv->clk);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
/* check or determine and set bittime */
|
/* check or determine and set bittime */
|
||||||
err = open_candev(dev);
|
err = open_candev(dev);
|
||||||
@ -1149,7 +1151,7 @@ static int at91_open(struct net_device *dev)
|
|||||||
out_close:
|
out_close:
|
||||||
close_candev(dev);
|
close_candev(dev);
|
||||||
out:
|
out:
|
||||||
clk_disable(priv->clk);
|
clk_disable_unprepare(priv->clk);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -1166,7 +1168,7 @@ static int at91_close(struct net_device *dev)
|
|||||||
at91_chip_stop(dev, CAN_STATE_STOPPED);
|
at91_chip_stop(dev, CAN_STATE_STOPPED);
|
||||||
|
|
||||||
free_irq(dev->irq, dev);
|
free_irq(dev->irq, dev);
|
||||||
clk_disable(priv->clk);
|
clk_disable_unprepare(priv->clk);
|
||||||
|
|
||||||
close_candev(dev);
|
close_candev(dev);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user