Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pci-v6.7-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci

Pull PCI fixes from Bjorn Helgaas:

- Revert an ASPM patch that caused an unintended reboot when resuming
after suspend (Bjorn Helgaas)

- Orphan Cadence PCIe IP (Bjorn Helgaas)

* tag 'pci-v6.7-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
MAINTAINERS: Orphan Cadence PCIe IP
Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"

+33 -3
+4
CREDITS
··· 1855 1855 D: 'Trinity' and similar fuzz testing work. 1856 1856 D: Misc/Other. 1857 1857 1858 + N: Tom Joseph 1859 + E: tjoseph@cadence.com 1860 + D: Cadence PCIe driver 1861 + 1858 1862 N: Martin Josfsson 1859 1863 E: gandalf@wlug.westbo.se 1860 1864 P: 1024D/F6B6D3B1 7610 7CED 5C34 4AA6 DBA2 8BE1 5A6D AF95 F6B6 D3B1
+2 -3
MAINTAINERS
··· 16458 16458 F: drivers/pci/controller/dwc/pcie-armada8k.c 16459 16459 16460 16460 PCI DRIVER FOR CADENCE PCIE IP 16461 - M: Tom Joseph <tjoseph@cadence.com> 16462 16461 L: linux-pci@vger.kernel.org 16463 - S: Maintained 16462 + S: Orphan 16464 16463 F: Documentation/devicetree/bindings/pci/cdns,* 16465 - F: drivers/pci/controller/cadence/ 16464 + F: drivers/pci/controller/cadence/*cadence* 16466 16465 16467 16466 PCI DRIVER FOR FREESCALE LAYERSCAPE 16468 16467 M: Minghuan Lian <minghuan.Lian@nxp.com>
+6
drivers/pci/pci.c
··· 1335 1335 pci_restore_bars(dev); 1336 1336 } 1337 1337 1338 + if (dev->bus->self) 1339 + pcie_aspm_pm_state_change(dev->bus->self); 1340 + 1338 1341 return 0; 1339 1342 } 1340 1343 ··· 1431 1428 pci_info_ratelimited(dev, "Refused to change power state from %s to %s\n", 1432 1429 pci_power_name(dev->current_state), 1433 1430 pci_power_name(state)); 1431 + 1432 + if (dev->bus->self) 1433 + pcie_aspm_pm_state_change(dev->bus->self); 1434 1434 1435 1435 return 0; 1436 1436 }
+2
drivers/pci/pci.h
··· 569 569 #ifdef CONFIG_PCIEASPM 570 570 void pcie_aspm_init_link_state(struct pci_dev *pdev); 571 571 void pcie_aspm_exit_link_state(struct pci_dev *pdev); 572 + void pcie_aspm_pm_state_change(struct pci_dev *pdev); 572 573 void pcie_aspm_powersave_config_link(struct pci_dev *pdev); 573 574 #else 574 575 static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } 575 576 static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } 577 + static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } 576 578 static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } 577 579 #endif 578 580
+19
drivers/pci/pcie/aspm.c
··· 1008 1008 up_read(&pci_bus_sem); 1009 1009 } 1010 1010 1011 + /* @pdev: the root port or switch downstream port */ 1012 + void pcie_aspm_pm_state_change(struct pci_dev *pdev) 1013 + { 1014 + struct pcie_link_state *link = pdev->link_state; 1015 + 1016 + if (aspm_disabled || !link) 1017 + return; 1018 + /* 1019 + * Devices changed PM state, we should recheck if latency 1020 + * meets all functions' requirement 1021 + */ 1022 + down_read(&pci_bus_sem); 1023 + mutex_lock(&aspm_lock); 1024 + pcie_update_aspm_capable(link->root); 1025 + pcie_config_aspm_path(link); 1026 + mutex_unlock(&aspm_lock); 1027 + up_read(&pci_bus_sem); 1028 + } 1029 + 1011 1030 void pcie_aspm_powersave_config_link(struct pci_dev *pdev) 1012 1031 { 1013 1032 struct pcie_link_state *link = pdev->link_state;