Re: Runtime PM for PCI-based USB host controllers

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

 



On Thursday 27 May 2010, Alan Stern wrote:
> On Wed, 26 May 2010, Rafael J. Wysocki wrote:
> 
> > On Wednesday 26 May 2010, Alan Stern wrote:
> > > Rafael:
> > > 
> > > I've been updating the patch Matthew Garrett posted last November, 
> > > adding runtime PM methods for PCI USB controllers.  Overall the 
> > > situation is now easier, since the rest of the USB subsystem has been 
> > > converted over to the runtime PM framework.  And it even seems to work!
> > > 
> > > But there is one problem.  The device driver needs to know, during its
> > > pm_suspend callback, whether or not wakeup should be enabled.  (Or more
> > > accurately, the pm_suspend callback needs to fail if wakeup isn't going
> > > to be available.) 
> > 
> > The driver can check that by calling pci_dev_run_wake() which returns false
> > if there's no wakeup support for the device.
> 
> Ah, okay, thanks.
> 
> >  However, that's not enough on
> > some broken machines where some signal pins are simply not connected to the
> > system core logic (as a result the PCI core thinks that wakeup is supported,
> > but in fact it doesn't work due to the broken hardware - yes, there are
> > machines like this in the wild, Matthew has one).
> 
> We don't have to worry about that.  If the hardware is broken and the 
> kernel doesn't realize it, the user will just have to tell it not to 
> allow runtime suspend for those devices.

Yup.

That's why we keep the PCI devices runtime PM in the "forbidden" state
until user space changes that.

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