Hi! > From: Rafael J. Wysocki <rjw@xxxxxxx> > > PCI: Simplify PCI device PM code (rev. 4) > > If the offset of PCI device's PM capability in its configuration > space, the mask of states that the device supports PME# from and the > D1 and D2 support bits are cached in the corresponding > struct pci_dev, the PCI device PM code can be simplified quite a bit. > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> > --- > drivers/pci/pci.c | 118 ++++++++++++++++++++--------------------------- > include/linux/pci.h | 8 ++- > include/linux/pci_regs.h | 1 > 3 files changed, 60 insertions(+), 67 deletions(-) > > Index: linux-pci/include/linux/pci.h > =================================================================== > --- linux-pci.orig/include/linux/pci.h > +++ linux-pci/include/linux/pci.h > @@ -177,6 +177,13 @@ struct pci_dev { > pci_power_t current_state; /* Current operating state. In ACPI-speak, > this is D0-D3, D0 being fully functional, > and D3 being off. */ > + int pm_cap; /* PM capability offset in the > + configuration space */ > + unsigned int pme_support:5; /* Bitmask of states from which PME# > + can be generated */ > + unsigned int d1_support:1; /* Low power state D1 is supported */ > + unsigned int d2_support:1; /* Low power state D2 is supported */ > + unsigned int no_d1d2:1; /* Only allow D0 and D3 */ Uh, "D1", "D2", then "no D1D2" ? > } > > - if (pmc & PCI_PM_CAP_PME_MASK) { > + dev->pm_cap = pm; > + > + dev->d1_support = false; > + dev->d2_support = false; I thought d1_support is unsigned int, not bool? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm