drm/xe: Only set PCI d3cold_allowed when we are really allowing.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 25 Jul 2023 22:11:55 +0000 (18:11 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:39:15 +0000 (11:39 -0500)
First of all it was strange to see:
if (allowed) {
...
} else {
   D3COLD_ENABLE
}

But besides this misalignment, let's also use the pci
d3cold_allowed useful to us and know that we are not really
allowing d3cold.

Cc: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_pci.c

index ae6e1394ff31f0247b7962924410f9bad2a24ea7..1a79c6a7dd5ee3a8b7c2b0728bc00030a9748b5e 100644 (file)
@@ -766,6 +766,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
        pci_save_state(pdev);
 
        if (xe->d3cold.allowed) {
+               d3cold_toggle(pdev, D3COLD_ENABLE);
                pci_disable_device(pdev);
                pci_ignore_hotplug(pdev);
                pci_set_power_state(pdev, PCI_D3cold);
@@ -795,8 +796,6 @@ static int xe_pci_runtime_resume(struct device *dev)
                        return err;
 
                pci_set_master(pdev);
-       } else {
-               d3cold_toggle(pdev, D3COLD_ENABLE);
        }
 
        return xe_pm_runtime_resume(xe);