[PATCH 07/12] net: flexcan: convert to clk_prepare/clk_unprepare
Shawn Guo
shawn.guo at freescale.com
Tue Dec 20 09:23:14 EST 2011
On Tue, Dec 20, 2011 at 02:48:48PM +0100, Marek Vasut wrote:
> > The patch converts flexcan driver to clk_prepare/clk_unprepare by
> > using helper functions clk_prepare_enable/clk_disable_unprepare.
> >
> > Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
> > Cc: Marc Kleine-Budde <mkl at pengutronix.de>
> > Cc: David S. Miller <davem at davemloft.net>
> > ---
> > drivers/net/can/flexcan.c | 10 +++++-----
> > 1 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> > index e023379..fdd0f3f 100644
> > --- a/drivers/net/can/flexcan.c
> > +++ b/drivers/net/can/flexcan.c
> > @@ -802,7 +802,7 @@ static int flexcan_open(struct net_device *dev)
> > struct flexcan_priv *priv = netdev_priv(dev);
> > int err;
> >
> > - clk_enable(priv->clk);
> > + clk_prepare_enable(priv->clk);
> >
> > err = open_candev(dev);
> > if (err)
> > @@ -824,7 +824,7 @@ static int flexcan_open(struct net_device *dev)
> > out_close:
> > close_candev(dev);
> > out:
> > - clk_disable(priv->clk);
> > + clk_disable_unprepare(priv->clk);
> >
> > return err;
> > }
> > @@ -838,7 +838,7 @@ static int flexcan_close(struct net_device *dev)
> > flexcan_chip_stop(dev);
> >
> > free_irq(dev->irq, dev);
> > - clk_disable(priv->clk);
> > + clk_disable_unprepare(priv->clk);
> >
> > close_candev(dev);
> >
> > @@ -877,7 +877,7 @@ static int __devinit register_flexcandev(struct
> > net_device *dev) struct flexcan_regs __iomem *regs = priv->base;
> > u32 reg, err;
> >
> > - clk_enable(priv->clk);
> > + clk_prepare_enable(priv->clk);
> >
> > /* select "bus clock", chip must be disabled */
> > flexcan_chip_disable(priv);
> > @@ -911,7 +911,7 @@ static int __devinit register_flexcandev(struct
> > net_device *dev) out:
> > /* disable core and turn off clocks */
> > flexcan_chip_disable(priv);
> > - clk_disable(priv->clk);
> > + clk_disable_unprepare(priv->clk);
> >
> > return err;
> > }
>
> Are you sure close()/open() ops are not called from atomic?
>
That's my understanding. But I Cc-ed Marc and David for help :)
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list