]> git.ipfire.org Git - thirdparty/linux.git/commit
PCI: j721e: Fix host/endpoint dependencies
authorArnd Bergmann <arnd@arndb.de>
Wed, 23 Apr 2025 16:25:16 +0000 (18:25 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 2 Jun 2025 21:02:37 +0000 (16:02 -0500)
commit3c05e88413f7b7145795dc1ad56983e75bca07a7
tree33872ae10cc06acd7d679e69cfc9ba478e43deff
parenta2790bf81f0f7b0fb683204cd3bef07feecb9958
PCI: j721e: Fix host/endpoint dependencies

The j721e driver has a single platform driver that can be built-in or a
loadable module, but it calls two separate backend drivers depending on
whether it is a host or endpoint.

If the two modes are not the same, we can end up with a situation where the
built-in pci-j721e driver tries to call the modular host or endpoint
driver, which causes a link failure:

  ld.lld-21: error: undefined symbol: cdns_pcie_ep_setup
  >>> referenced by pci-j721e.c
  >>>               drivers/pci/controller/cadence/pci-j721e.o:(j721e_pcie_probe) in archive vmlinux.a

  ld.lld-21: error: undefined symbol: cdns_pcie_host_setup
  >>> referenced by pci-j721e.c
  >>>               drivers/pci/controller/cadence/pci-j721e.o:(j721e_pcie_probe) in archive vmlinux.a

Rework the dependencies so that the 'select' is done by the common Kconfig
symbol, based on which of the two are enabled. Effectively this means that
having one built-in makes the other either built-in or disabled, but all
configurations will now build.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Link: https://patch.msgid.link/20250423162523.2060405-1-arnd@kernel.org
drivers/pci/controller/cadence/Kconfig
drivers/pci/controller/cadence/pci-j721e.c