From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Subject: Re: [RFC][PATCH 2/2] PM: Make system-wide PM and runtime PM handle subsystems consistently Date: Thu, 17 Feb 2011 09:04:41 -0800 Message-ID: <20110217170441.GA31809@kroah.com> References: <201102170045.48975.rjw@sisk.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org To: Alan Stern Cc: Grant Likely , Mark Brown , LKML , Linux-pm mailing list List-Id: linux-pm@vger.kernel.org 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