linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] PCI: vmd: Disable MSI remapping after suspend
@ 2022-11-09 14:26 Nirmal Patel
  2022-11-11 11:01 ` Lorenzo Pieralisi
  0 siblings, 1 reply; 2+ messages in thread
From: Nirmal Patel @ 2022-11-09 14:26 UTC (permalink / raw)
  To: linux-pci, Nirmal Patel; +Cc: Liang_Xiao1, acelan.kao, Francisco Munoz

MSI remapping is disabled by VMD driver for Intel's Icelake and
newer systems in order to improve performance by setting
VMCONFIG_MSI_REMAP. By design VMCONFIG_MSI_REMAP register is cleared
by firmware during boot. 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.

Fixes: ee81ee84f873 ("PCI: vmd: Disable MSI-X remapping when possible")
Signed-off-by: Nirmal Patel <nirmal.patel@linux.intel.com>
Reviewed-by: Francisco Munoz <francisco.munoz.ruiz@linux.intel.com>
---
v1->v2: Updating commit log and removing firmware dependency.
---
 drivers/pci/controller/vmd.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index e06e9f4fc50f..98e0746e681c 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -980,6 +980,11 @@ 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, true);
+       else
+               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.27.0


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

* Re: [PATCH v2] PCI: vmd: Disable MSI remapping after suspend
  2022-11-09 14:26 [PATCH v2] PCI: vmd: Disable MSI remapping after suspend Nirmal Patel
@ 2022-11-11 11:01 ` Lorenzo Pieralisi
  0 siblings, 0 replies; 2+ messages in thread
From: Lorenzo Pieralisi @ 2022-11-11 11:01 UTC (permalink / raw)
  To: Nirmal Patel, linux-pci
  Cc: Lorenzo Pieralisi, acelan.kao, Liang_Xiao1, Francisco Munoz

On Wed, 9 Nov 2022 07:26:52 -0700, Nirmal Patel wrote:
> MSI remapping is disabled by VMD driver for Intel's Icelake and
> newer systems in order to improve performance by setting
> VMCONFIG_MSI_REMAP. By design VMCONFIG_MSI_REMAP register is cleared
> by firmware during boot. 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.
> 
> [...]

Applied to pci/vmd, thanks!

[1/1] PCI: vmd: Disable MSI remapping after suspend
      https://git.kernel.org/lpieralisi/pci/c/d899aa668498

Thanks,
Lorenzo

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

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

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-09 14:26 [PATCH v2] PCI: vmd: Disable MSI remapping after suspend Nirmal Patel
2022-11-11 11:01 ` 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).