On 08/06/2021 00:50, Bjorn Helgaas wrote: ... > My understanding is that we want pcie-tegra194.c to be: > > - Built into the kernel when CONFIG_PCIE_TEGRA194=m or =y and > CONFIG_ACPI=y and CONFIG_PCI_QUIRKS=y. If we're using the ACPI > pci_root.c driver, we must have the MCFG quirk built-in, and this > case worked as I expected (this is on x86): > > $ grep -E "CONFIG_(ACPI\>|PCI_QUIRKS|PCIE_TEGRA194)" .config > CONFIG_ACPI=y > CONFIG_PCI_QUIRKS=y > CONFIG_PCIE_TEGRA194=y > CONFIG_PCIE_TEGRA194_HOST=m > CONFIG_PCIE_TEGRA194_EP=y > > $ rm drivers/pci/controller/dwc/pcie-tegra194.*o > $ make drivers/pci/controller/dwc/ > ... > CC drivers/pci/controller/dwc/pcie-tegra194.o > AR drivers/pci/controller/dwc/built-in.a > > - Built as a module when CONFIG_PCIE_TEGRA194=m and CONFIG_ACPI is > not set. In this case, we're not using the ACPI pci_root.c > driver, and we don't need the MCFG quirk built-in, so it should be > OK to build a module, and IIUC this patch is supposed to *allow* > that. But in my testing, it did *not* build a module. Am I > missing something? > > $ grep -E "CONFIG_(ACPI\>|PCI_QUIRKS|PCIE_TEGRA194)" .config > # CONFIG_ACPI is not set > # CONFIG_PCI_QUIRKS is not set > CONFIG_PCIE_TEGRA194=y > CONFIG_PCIE_TEGRA194_HOST=m > CONFIG_PCIE_TEGRA194_EP=y The problem appears to be that you still have CONFIG_PCIE_TEGRA194=y and CONFIG_PCIE_TEGRA194_EP=y above. If I have ... $ grep -E "CONFIG_(ACPI\>|PCI_QUIRKS|PCIE_TEGRA194)" .config # CONFIG_ACPI is not set CONFIG_PCI_QUIRKS=y CONFIG_PCIE_TEGRA194=m CONFIG_PCIE_TEGRA194_HOST=m # CONFIG_PCIE_TEGRA194_EP is not set > > $ rm drivers/pci/controller/dwc/pcie-tegra194.*o > $ make drivers/pci/controller/dwc/ > ... > CC drivers/pci/controller/dwc/pcie-tegra194.o > AR drivers/pci/controller/dwc/built-in.a Then I see ... $ rm drivers/pci/controller/dwc/pcie-tegra194.*o $ make drivers/pci/controller/dwc/ ... CC [M] drivers/pci/controller/dwc/pcie-tegra194.o Cheers Jon -- nvpublic