diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2022-03-23 01:16:23 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2022-03-23 01:16:23 +0300 |
commit | 0321da851e3ed1a61619f822f94d66e96f463c05 (patch) | |
tree | 57cc87b000f2e69773b6cfb4d3d3f2d387ae8e7d /drivers/pci | |
parent | 7ec9ff94f5f7416f501d1c0177c82e785974f9ec (diff) | |
parent | 815953dc2011ad7a34de355dfa703dcef1085219 (diff) | |
download | linux-0321da851e3ed1a61619f822f94d66e96f463c05.tar.xz |
Merge branch 'pci/host/dwc'
- Restore MSI Receiver mask during resume (Jisheng Zhang)
* pci/host/dwc:
PCI: dwc: Restore MSI Receiver mask during resume
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/controller/dwc/pcie-designware-host.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index f4755f3a03be..2fa86f32d964 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -362,6 +362,12 @@ int dw_pcie_host_init(struct pcie_port *pp) if (ret < 0) return ret; } else if (pp->has_msi_ctrl) { + u32 ctrl, num_ctrls; + + num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL; + for (ctrl = 0; ctrl < num_ctrls; ctrl++) + pp->irq_mask[ctrl] = ~0; + if (!pp->msi_irq) { pp->msi_irq = platform_get_irq_byname_optional(pdev, "msi"); if (pp->msi_irq < 0) { @@ -541,7 +547,6 @@ void dw_pcie_setup_rc(struct pcie_port *pp) /* Initialize IRQ Status array */ for (ctrl = 0; ctrl < num_ctrls; ctrl++) { - pp->irq_mask[ctrl] = ~0; dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK + (ctrl * MSI_REG_CTRL_BLOCK_SIZE), pp->irq_mask[ctrl]); |