linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] PCI: dwc: move dw_pcie_msi_init() to dw_pcie_setup_rc()
@ 2021-03-25  7:26 Jisheng Zhang
  2021-04-15 15:09 ` Lorenzo Pieralisi
  0 siblings, 1 reply; 2+ messages in thread
From: Jisheng Zhang @ 2021-03-25  7:26 UTC (permalink / raw)
  To: Bjorn Helgaas, Jingoo Han, Gustavo Pimentel, Lorenzo Pieralisi,
	Rob Herring, Bjorn Helgaas
  Cc: linux-pci, linux-kernel

If the host which makes use of IP's integrated MSI Receiver losts
power during suspend, we need to reinit the RC and MSI Receiver in
resume. But after we move dw_pcie_msi_init() into the core, we have no
API to do so. Usually the dwc users need to call dw_pcie_setup_rc() to
reinit the RC, we can solve this problem by moving dw_pcie_msi_init()
to dw_pcie_setup_rc().

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
---
Since v2:
 - rewrite the commit msg

Since v1:
 - collect Reviewed-by tag

 drivers/pci/controller/dwc/pcie-designware-host.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 7e55b2b66182..e6c274f4485c 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -400,7 +400,6 @@ int dw_pcie_host_init(struct pcie_port *pp)
 	}
 
 	dw_pcie_setup_rc(pp);
-	dw_pcie_msi_init(pp);
 
 	if (!dw_pcie_link_up(pci) && pci->ops && pci->ops->start_link) {
 		ret = pci->ops->start_link(pci);
@@ -551,6 +550,8 @@ void dw_pcie_setup_rc(struct pcie_port *pp)
 		}
 	}
 
+	dw_pcie_msi_init(pp);
+
 	/* Setup RC BARs */
 	dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_0, 0x00000004);
 	dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_1, 0x00000000);
-- 
2.30.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v3] PCI: dwc: move dw_pcie_msi_init() to dw_pcie_setup_rc()
  2021-03-25  7:26 [PATCH v3] PCI: dwc: move dw_pcie_msi_init() to dw_pcie_setup_rc() Jisheng Zhang
@ 2021-04-15 15:09 ` Lorenzo Pieralisi
  0 siblings, 0 replies; 2+ messages in thread
From: Lorenzo Pieralisi @ 2021-04-15 15:09 UTC (permalink / raw)
  To: Gustavo Pimentel, Jisheng Zhang, Bjorn Helgaas, Jingoo Han,
	Rob Herring, Bjorn Helgaas
  Cc: Lorenzo Pieralisi, linux-pci, linux-kernel

On Thu, 25 Mar 2021 15:26:04 +0800, Jisheng Zhang wrote:
> If the host which makes use of IP's integrated MSI Receiver losts
> power during suspend, we need to reinit the RC and MSI Receiver in
> resume. But after we move dw_pcie_msi_init() into the core, we have no
> API to do so. Usually the dwc users need to call dw_pcie_setup_rc() to
> reinit the RC, we can solve this problem by moving dw_pcie_msi_init()
> to dw_pcie_setup_rc().

Applied to pci/dwc, thanks!

[1/1] PCI: dwc: Move dw_pcie_msi_init() to dw_pcie_setup_rc()
      https://git.kernel.org/lpieralisi/pci/c/fe08db2835

Thanks,
Lorenzo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-04-15 15:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-25  7:26 [PATCH v3] PCI: dwc: move dw_pcie_msi_init() to dw_pcie_setup_rc() Jisheng Zhang
2021-04-15 15:09 ` Lorenzo Pieralisi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).