• Rafael J. Wysocki's avatar
    PCI PM: PCIe PME root port service driver · c7f48656
    Rafael J. Wysocki authored
    PCIe native PME detection mechanism is based on interrupts generated
    by root ports or event collectors every time a PCIe device sends a
    PME message upstream.
    
    Once a PME message has been sent by an endpoint device and received
    by its root port (or event collector in the case of root complex
    integrated endpoints), the Requester ID from the message header is
    registered in the root port's Root Status register.  At the same
    time, the PME Status bit of the Root Status register is set to
    indicate that there's a PME to handle.  If PCIe PME interrupt is
    enabled for the root port, it generates an interrupt once the PME
    Status has been set.  After receiving the interrupt, the kernel can
    identify the PCIe device that generated the PME using the Requester
    ID from the root port's Root Status register. [For details, see PCI
    Express Base Specification, Rev. 2.0.]
    
    Implement a driver for the PCIe PME root port service working in
    accordance with the above description.
    
    Based on a patch from Shaohua Li <shaohua.li@intel.com>.
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    c7f48656
pci.h 44.2 KB