On Wed, Aug 19, 2009 at 03:24:19PM +0800, Shaohua Li wrote: > +static inline void npme_enable_pme(struct pci_dev *pdev, bool enable) > +{ > + int pos; > + u16 rtctl; > + > + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); > + > + pci_read_config_word(pdev, pos + PCI_EXP_RTCTL, &rtctl); > + if (!enable) > + rtctl &= ~PCI_EXP_RTCTL_PMEIE; > + else > + rtctl |= PCI_EXP_RTCTL_PMEIE; > + pci_write_config_word(pdev, pos + PCI_EXP_RTCTL, rtctl); > +} This seems to duplicate the existing pci_pme_active() function? > +static inline void npme_clear_pme(struct pci_dev *pdev) > +{ > + int pos; > + u32 rtsta; > + > + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); > + > + pci_read_config_dword(pdev, pos + PCI_EXP_RTSTA, &rtsta); > + rtsta |= PCI_EXP_RTSTA_PME; > + pci_write_config_dword(pdev, pos + PCI_EXP_RTSTA, rtsta); > +} Ditto. > +static bool npme_pme_target(struct pci_dev *target) > +{ > + bool ret = false; > + if (target->dev.bus->pm && target->dev.bus->pm->wakeup_event) > + ret = target->dev.bus->pm->wakeup_event(&target->dev); > + return ret; > +} Is there any situation in which we wouldn't want to just perform a runtime resume of the device here? -- Matthew Garrett | mjg59@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html