[PATCH 01/11] usb: chipidea: Add power management support
Sascha Hauer
s.hauer at pengutronix.de
Mon Oct 14 04:42:16 EDT 2013
On Mon, Oct 14, 2013 at 03:55:48PM +0800, Peter Chen wrote:
> On Mon, Oct 14, 2013 at 10:04:58AM +0200, Lothar Waßmann wrote:
> > Hi,
> >
> > Peter Chen wrote:
> > > This commit adds runtime and system power management support for
> > > chipidea core. The runtime pm support is controlled by glue
> > > layer, it can be enabled by flag CI_HDRC_SUPPORTS_RUNTIME_PM.
> > >
> > [...]
> > > +#ifdef CONFIG_PM
> > > +static int ci_controller_suspend(struct device *dev)
> > > +{
> > > + struct ci_hdrc *ci = dev_get_drvdata(dev);
> > > +
> > > + dev_dbg(dev, "at %s\n", __func__);
> > > +
> > > + if (atomic_read(&ci->in_lpm))
> > > + return 0;
> > > +
> > What does this 'atomic_read()' buy you over just testing/assinging a
> > simple integer. Note that just because the function has 'atomic' in
> > its name the sequence:
> > atomic_read();
> > ...
> > atomic_set();
> > does not magically become an atomic operation.
>
> I just want the read and set are atomic, not the operations
> between atomic_read and atomic_set.
It makes no sense to use atomic operations here. atomic types are to
atomically read/modify/write variables. If all you ever do is
atomic_read and atomic_set then you can use a simple bool variable.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list