Linux PCI subsystem development
 help / color / mirror / Atom feed
* [PATCH] PCI: vmd: Disable MSI remapping after suspend
@ 2022-11-07 18:27 Francisco, Munoz, Ruiz
  2022-11-07 20:19 ` Bjorn Helgaas
  0 siblings, 1 reply; 3+ messages in thread
From: Francisco, Munoz, Ruiz @ 2022-11-07 18:27 UTC (permalink / raw)
  To: helgaas
  Cc: lorenzo.pieralisi, jonathan.derrick, linux-pci, Nirmal Patel,
	Francisco Munoz

From: Nirmal Patel <nirmal.patel@linux.intel.com>

MSI remapping is disbaled by VMD driver for intel's icelake and
newer systems in order to improve performance by setting MSI_RMP_DIS
bit. By design MSI_RMP_DIS bit of VMCONFIG registers is cleared.
The same register gets cleared when system is put in S3 power state.
VMD driver needs to set this register again in order to avoid
interrupt issues with devices behind VMD if MSI remapping was
disabled before.

Signed-off-by: Nirmal Patel <nirmal.patel@linux.intel.com>
Reviewed-by: Francisco Munoz <francisco.munoz.ruiz@linux.intel.com>
---
 drivers/pci/controller/vmd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index e06e9f4fc50f..247012b343fd 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -980,6 +980,9 @@ static int vmd_resume(struct device *dev)
 	struct vmd_dev *vmd = pci_get_drvdata(pdev);
 	int err, i;
 
+	if (!vmd->irq_domain)
+		vmd_set_msi_remapping(vmd, false);
+
 	for (i = 0; i < vmd->msix_count; i++) {
 		err = devm_request_irq(dev, vmd->irqs[i].virq,
 				       vmd_irq, IRQF_NO_THREAD,
-- 
2.34.1


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

end of thread, other threads:[~2022-11-08  2:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-07 18:27 [PATCH] PCI: vmd: Disable MSI remapping after suspend Francisco, Munoz, Ruiz
2022-11-07 20:19 ` Bjorn Helgaas
2022-11-08  2:49   ` Patel, Nirmal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox