@@ -81,6 +81,7 @@ static int pcie_portdrv_restore_config(struct pci_dev *dev)
enum pcie_port_type {
PCIE_PORT_DEFAULT,
+ PCIE_PORT_SPT,
};
struct pcie_port_config {
@@ -92,6 +93,10 @@ static const struct pcie_port_config pcie_port_configs[] = {
[PCIE_PORT_DEFAULT] = {
.suspend_allowed = true,
},
+ [PCIE_PORT_SPT] = {
+ .suspend_allowed = true,
+ .runtime_suspend_allowed = true,
+ },
};
#ifdef CONFIG_PM
@@ -431,6 +436,9 @@ static void pcie_portdrv_err_resume(struct pci_dev *dev)
* LINUX Device Driver Model
*/
static const struct pci_device_id port_pci_ids[] = {
+ /* Intel Sunrisepoint */
+ { PCI_VDEVICE(INTEL, 0x9d14), .driver_data = PCIE_PORT_SPT },
+ { PCI_VDEVICE(INTEL, 0x9d15), .driver_data = PCIE_PORT_SPT },
/* handle any PCI-Express port */
{ PCI_DEVICE_CLASS(((PCI_CLASS_BRIDGE_PCI << 8) | 0x00), ~0),
.driver_data = PCIE_PORT_DEFAULT },
Intel Sunrisepoint (Skylake PCH) PCIe root ports are capable of being suspended runtime so allow runtime PM for these ports. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> --- drivers/pci/pcie/portdrv_pci.c | 8 ++++++++ 1 file changed, 8 insertions(+)