[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250912122356.3326888-1-s-vadapalli@ti.com>
Date: Fri, 12 Sep 2025 17:46:11 +0530
From: Siddharth Vadapalli <s-vadapalli@...com>
To: <lpieralisi@...nel.org>, <kwilczynski@...nel.org>, <mani@...nel.org>,
<robh@...nel.org>, <bhelgaas@...gle.com>, <jingoohan1@...il.com>,
<christian.bruel@...s.st.com>, <qiang.yu@....qualcomm.com>,
<mayank.rana@....qualcomm.com>, <thippeswamy.havalige@....com>,
<shradha.t@...sung.com>, <quic_schintav@...cinc.com>,
<inochiama@...il.com>, <cassel@...nel.org>, <kishon@...nel.org>,
<sergio.paracuellos@...il.com>, <18255117159@....com>,
<rongqianfeng@...o.com>
CC: <jirislaby@...nel.org>, <linux-pci@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
<srk@...com>, <s-vadapalli@...com>
Subject: [PATCH v2 00/10] PCI: Keystone: Enable loadable module support
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@...nel.org> 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@ti.com/
v1 of this series is at:
https://lore.kernel.org/r/20250903124505.365913-1-s-vadapalli@ti.com/
Changes since v1:
- Based on the feedback provided by Jiri Slaby <jirislaby@...nel.org> at:
https://lore.kernel.org/r/3d3a4b52-e343-42f3-9d69-94c259812143@kernel.org/
patch 09/11 of the v1 series has been posted as a FIX at:
https://lore.kernel.org/r/20250912100802.3136121-2-s-vadapalli@ti.com/
and is therefore no longer a part of the current series.
- Based on the feedback provided by Manivannan Sadhasivam <mani@...nel.org> 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
Powered by blists - more mailing lists