Hello, This series enables support for the 'pci-keystone.c' driver to be built as a loadable module. The motivation for the series is that PCIe is not a necessity for booting Linux due to which the 'pci-keystone.c' driver does not need to be built-in. Series is based on commit bfd2c81b061c Merge branch 'pci/misc' of pci/next. NOTE for MAINTAINERS: This series has the following dependencies: 1. The following commit in Linux-Next is a build-dependency for the series: https://github.com/ColinIanKing/linux-next/commit/8de1de5a3a8d42975953382068fb5195e9d6e6c6 Since the v1 series was based on linux-next, there were no build errors. However, since this series is based on pci/next based on the feedback from Manivannan Sadhasivam <mani@xxxxxxxxxx> at: https://lore.kernel.org/r/2gzqupa7i7qhiscwm4uin2jmdb6qowp55mzk7w4o3f73ob64e7@taf5vjd7lhc5/ without the aforementioned commit, build will fail. 2. The following patch series include fixes for the driver which are required to verify the driver functionality: https://lore.kernel.org/r/20250912100802.3136121-1-s-vadapalli@xxxxxx/ v1 of this series is at: https://lore.kernel.org/r/20250903124505.365913-1-s-vadapalli@xxxxxx/ Changes since v1: - Based on the feedback provided by Jiri Slaby <jirislaby@xxxxxxxxxx> at: https://lore.kernel.org/r/3d3a4b52-e343-42f3-9d69-94c259812143@xxxxxxxxxx/ patch 09/11 of the v1 series has been posted as a FIX at: https://lore.kernel.org/r/20250912100802.3136121-2-s-vadapalli@xxxxxx/ and is therefore no longer a part of the current series. - Based on the feedback provided by Manivannan Sadhasivam <mani@xxxxxxxxxx> at: https://lore.kernel.org/r/2gzqupa7i7qhiscwm4uin2jmdb6qowp55mzk7w4o3f73ob64e7@taf5vjd7lhc5/ patch 11/11 of the v1 series which is patch 10/10 of this series has been modified by retaining 'builtin_platform_driver()' instead of changing it to 'module_platform_driver()'. - Series has been based on pci/next instead of linux-next. For testing the series, Linux has been built in the following manner: 1. Check out at commit bfd2c81b061c Merge branch 'pci/misc' of pci/next 2. Apply commit and patch series mentioned as dependencies above. 3. Apply current series. 4. Build Linux with CONFIG_PCI_KEYSTONE, CONFIG_PCI_KEYSTONE_HOST and CONFIG_PCI_KEYSTONE_EP set to 'm'. Series has been tested on AM654-EVM with an NVMe SSD connected to the PCIe connector on the board and verifying that the NVMe SSD enumerates successfully. Additionally, the 'hdparm' utility has been used to read the NVMe SSD for verifying functionality. Test Logs: https://gist.github.com/Siddharth-Vadapalli-at-TI/54848d3414dc965bec3c29253a1b2764 Regards, Siddharth. Siddharth Vadapalli (10): PCI: Export pci_get_host_bridge_device() for use by pci-keystone PCI: dwc: Export dw_pcie_allocate_domains() for pci-keystone PCI: dwc: Add dw_pcie_free_domains() helper for cleanup PCI: dwc: ep: Export dw_pcie_ep_raise_msix_irq() for pci-keystone PCI: keystone: Add ks_pcie_free_msi_irq() helper for cleanup PCI: keystone: Add ks_pcie_free_intx_irq() helper for cleanup PCI: keystone: Add ks_pcie_host_deinit() helper for cleanup PCI: keystone: Add ks_pcie_disable_error_irq() helper for cleanup PCI: keystone: Exit ks_pcie_probe() for the default switch-case of "mode" PCI: keystone: Add support to build as a loadable module drivers/pci/controller/dwc/Kconfig | 6 +- drivers/pci/controller/dwc/pci-keystone.c | 101 ++++++++++++++++++ .../pci/controller/dwc/pcie-designware-ep.c | 1 + .../pci/controller/dwc/pcie-designware-host.c | 10 ++ drivers/pci/controller/dwc/pcie-designware.h | 5 + drivers/pci/host-bridge.c | 1 + include/linux/pci.h | 1 + 7 files changed, 122 insertions(+), 3 deletions(-) -- 2.43.0