Re: [PATCH] PCI: change device runtime PM settings for probe and remove

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, June 10, 2010, Alan Stern wrote:
> On Thu, 10 Jun 2010, Rafael J. Wysocki wrote:
> 
> > On Tuesday, June 08, 2010, Alan Stern wrote:
> > > This patch (as1388) changes the way the PCI core handles runtime PM
> > > settings when probing or unbinding drivers.  Now the core will make
> > > sure the device is enabled for runtime PM, with a usage count >= 1,
> > > when a driver is probed.  It does the same when calling a driver's
> > > remove method.
> > > 
> > > If the driver wants to use runtime PM, all it has to do is call
> > > pm_runtime_pu_noidle() near the end of its probe routine (to cancel
> > > the core's usage increment) and pm_runtime_get_noresume() near the
> > > start of its remove routine (to restore the usage count).  It does not
> > > need to mess around with setting the runtime state to enabled,
> > > disabled, active, or suspended.
> > > 
> > > The patch updates e1000e and r8169, the only PCI drivers that already
> > > use the existing runtime PM interface.
> > > 
> > > Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> > > CC: Rafael J. Wysocki <rjw@xxxxxxx>
> > 
> > I like the idea, but I think there's a problem with the patch.
> > 
> > Namely, if there's a driver that doesn't support runtime PM and one of the
> > runtime PM helper functions is executed for it, whatever the reason,
> > the PCI bus callback run by it will return error code and runtime PM will be
> > disabled for the device as a result.
> 
> That can't happen.  Because the PCI core increments the usage 
> count before probing the driver, if the driver doesn't support runtime 
> PM then the usage count will never fall to 0.  Hence the bus callbacks 
> will never be invoked.

Ah, OK then.

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux