[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1553613207-3988-2-git-send-email-vidyas@nvidia.com>
Date: Tue, 26 Mar 2019 20:43:18 +0530
From: Vidya Sagar <vidyas@...dia.com>
To: <bhelgaas@...gle.com>, <robh+dt@...nel.org>,
<mark.rutland@....com>, <thierry.reding@...il.com>,
<jonathanh@...dia.com>, <kishon@...com>, <catalin.marinas@....com>,
<will.deacon@....com>, <lorenzo.pieralisi@....com>,
<jingoohan1@...il.com>, <gustavo.pimentel@...opsys.com>,
<mperttunen@...dia.com>, <vidyas@...dia.com>, <tiwai@...e.de>,
<spujar@...dia.com>, <skomatineni@...dia.com>,
<liviu.dudau@....com>, <krzk@...nel.org>, <heiko@...ech.de>,
<horms+renesas@...ge.net.au>, <olof@...om.net>,
<maxime.ripard@...tlin.com>, <andy.gross@...aro.org>,
<bjorn.andersson@...aro.org>, <jagan@...rulasolutions.com>,
<enric.balletbo@...labora.com>, <ezequiel@...labora.com>,
<stefan.wahren@...e.com>, <marc.w.gonzalez@...e.fr>,
<l.stach@...gutronix.de>, <tpiepho@...inj.com>,
<hayashi.kunihiko@...ionext.com>, <yue.wang@...ogic.com>,
<shawn.lin@...k-chips.com>, <xiaowei.bao@....com>
CC: <linux-pci@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-tegra@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>, <kthota@...dia.com>,
<mmaddireddy@...dia.com>
Subject: [PATCH 01/10] PCI: save pci_bus pointer in pcie_port structure
save pci_bus pointer created by PCIe sub-system's
pci_scan_root_bus_bridge() to be used by host controller drivers for post
processing. Tegra host controller driver needs it for the following
reasons
- to derive pci_host_bridge structure from pci_bus which is used to
configure iATU's outbound regions for different windows accesses
- to traverse and configure downstream hierarchy. One such case is,
configuring all immediate downstream devices to D0 state before transiting
link to L2 state. Saving pci_bus pointer seems the best method compared to
deriving it by other means.
Signed-off-by: Vidya Sagar <vidyas@...dia.com>
---
drivers/pci/controller/dwc/pcie-designware-host.c | 1 +
drivers/pci/controller/dwc/pcie-designware.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 25087d3c9a82..15add3cf3945 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -494,6 +494,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
goto error;
bus = bridge->bus;
+ pp->bus = bus;
if (pp->ops->scan_bus)
pp->ops->scan_bus(pp);
diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
index 377f4c0b52da..70007276bc93 100644
--- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -175,6 +175,7 @@ struct pcie_port {
struct resource *busn;
int irq;
const struct dw_pcie_host_ops *ops;
+ struct pci_bus *bus;
int msi_irq;
struct irq_domain *irq_domain;
struct irq_domain *msi_domain;
--
2.7.4
Powered by blists - more mailing lists