The PCI subsystem updates for Linux 7.0 are aplenty as usual and contain a wide assortment of different fixes and code improvements.
With the now-merged PCI code for Linux 7.0, the CardBus setup code has now been spun off into its own file (setup-cardbus.c) and only now built if CONFIG_CARDBUS is set… CardBus being long obsolete and not having much use for modern systems. The CardBus support is being retained by the latest Linux 7.0 kernel but just better compartmentalized to avoid building the setup code except for those explicitly wanting it.
“PCI bridge window setup code includes special code to handle CardBus bridges. CardBus has long since fallen out of favor and modern systems have no use for it.
Move CardBus setup code to its own file and use existing CONFIG_CARDBUS to decide whether it should be built or not.”
The PCI code for Linux 7.0 will also now avoid a redundant delay on transition from D3hot to D3cold if the device was alread in D3hot state.
There is also a power management fix to prevent runtime suspend until devices are fully initialized to avoid saving incompletely configured device state.
The power sequencing subsystem in Linux 7.0 introduced a power sequencing connector for PCIe M.2 connectors. The PCI pull adds the PCIe M.2 connector support to the slow pwrctrl driver.
In the PCI code for peer-to-peer DMA (P2PDMA) is a fix to avoid a possible hang when removing a PCI device using such functionality.
New to the PCI code in Linux 7.0 is an ASpeed root complex Device Tree driver and bindings.
More details on the PCI changes for Linux 7.0 via this pull.
