Re: [RFC][PATCH 2/2] PM: Make system-wide PM and runtime PM handlesubsystems consistently

From: Alan Stern
Date: Thu Feb 17 2011 - 09:55:55 EST


On Thu, 17 Feb 2011, Rafael J. Wysocki wrote:

> > > Apart from this I think the order of checks introduced by the $subject patch
> > > should be:
> > > (1) If dev->class != NULL and dev->class->pm != NULL, use dev->class,
> > > or otherwise
> > > (2) if dev->type != NULL and dev->type->pm != NULL, use dev->type,
> > > or otherwise
> > > (3) use dev->bus (if present).
> > > as that would allow classes and device types to override bus type PM
> > > callbacks if they wish to.
> >
> > I haven't heard of any device types being present on more than one kind
> > of bus, so it makes sense for device types to override bus types.
>
> OK
>
> > But I'm not so sure about the priority we should give to classes. On the
> > other hand, if no classes define a dev_pm_ops then of course it doesn't
> > matter.
>
> The change will also affect classes that provide "legacy" suspend-resume
> (if there are any, which I'm totally unsure of).
>
> Anyway, I think we need to choose one ordering. :-)
>
> What about type / bus / class , then?

I really don't know. Somebody who has more experience with device
class implementations should answer.

Greg, any ideas?

To recap: The issue is how to handle multiple PM callbacks. Since the
bus type, device type, and device class may all have their own
callbacks, Rafael has decided the best approach is to prioritize them
and invoke only the highest-priority callback. But what priority order
should we use?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/