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

From: Greg KH
Date: Thu Feb 17 2011 - 12:08:11 EST


On Thu, Feb 17, 2011 at 09:55:46AM -0500, Alan Stern wrote:
> 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?

I think we should do it in the following order:
device type
device class
device bus

for the reasons that a device itself could override the default class
and bus information if it "knows" it is special. After that, the class
of the device holds a lot of information about what is going on with the
logic involved (i.e. network stuff), and lastly, the bus knows some
default hardware information.

Sound reasonable?

I think that follows the default we have today, right?

thanks,

greg k-h
--
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/