From: Nirmal Patel <nirmal.patel@xxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx> Reviewed-by: Francisco Munoz <francisco.munoz.ruiz@xxxxxxxxxxxxxxx> --- 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