On Tue, Mar 03, 2020 at 04:24:18PM +0530, Vidya Sagar wrote: > Add support for the endpoint mode of Synopsys DesignWare core based > dual mode PCIe controllers present in Tegra194 SoC. > > Signed-off-by: Vidya Sagar > --- > V4: > * Addressed Lorenzo's review comments > * Started using threaded irqs instead of kthreads > > V3: > * Addressed Thierry's review comments > > V2: > * Addressed Bjorn's review comments > * Made changes as part of addressing review comments for other patches > > drivers/pci/controller/dwc/Kconfig | 30 +- > drivers/pci/controller/dwc/pcie-tegra194.c | 681 ++++++++++++++++++++- > 2 files changed, 693 insertions(+), 18 deletions(-) > > diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig > index 0830dfcfa43a..169cde58dd92 100644 > --- a/drivers/pci/controller/dwc/Kconfig > +++ b/drivers/pci/controller/dwc/Kconfig > @@ -248,14 +248,38 @@ config PCI_MESON > implement the driver. > > config PCIE_TEGRA194 > - tristate "NVIDIA Tegra194 (and later) PCIe controller" > + tristate > + > +config PCIE_TEGRA194_HOST > + tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode" > depends on ARCH_TEGRA_194_SOC || COMPILE_TEST > depends on PCI_MSI_IRQ_DOMAIN > select PCIE_DW_HOST > select PHY_TEGRA194_P2U > + select PCIE_TEGRA194 > + default y > + help > + Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to > + work in host mode. There are two instances of PCIe controllers in > + Tegra194. This controller can work either as EP or RC. In order to > + enable host-specific features PCIE_TEGRA194_HOST must be selected and > + in order to enable device-specific features PCIE_TEGRA194_EP must be > + selected. This uses the DesignWare core. > + > +config PCIE_TEGRA194_EP > + tristate "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode" > + depends on ARCH_TEGRA_194_SOC || COMPILE_TEST > + depends on PCI_ENDPOINT > + select PCIE_DW_EP > + select PHY_TEGRA194_P2U > + select PCIE_TEGRA194 > help > - Say Y here if you want support for DesignWare core based PCIe host > - controller found in NVIDIA Tegra194 SoC. > + Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to > + work in host mode. There are two instances of PCIe controllers in > + Tegra194. This controller can work either as EP or RC. In order to > + enable host-specific features PCIE_TEGRA194_HOST must be selected and > + in order to enable device-specific features PCIE_TEGRA194_EP must be > + selected. This uses the DesignWare core. > > config PCIE_UNIPHIER > bool "Socionext UniPhier PCIe controllers" > diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c > index cbe95f0ea0ca..81810e644b23 100644 > --- a/drivers/pci/controller/dwc/pcie-tegra194.c > +++ b/drivers/pci/controller/dwc/pcie-tegra194.c > @@ -14,6 +14,8 @@ > #include > #include > #include > +#include > +#include After moving to threaded IRQs, do you still need these includes? Acked-by: Thierry Reding