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 _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm