History

drm/nouveau: Pause between setting gpu to D3hot and cutting the power

On the MacBook Pro, power of the gpu is cut by a gmux chip. Sometimes the gpu gets stuck in powersaving mode and refuses to wake up ("Refused to change power state, currently in D3"). Inserting a delay between setting the gpu to D3hot and cutting the power seems to help (most of the time). This issue and its (partial) remediation by the patch was observed with an Nvidia GT650M (NVE7 / GK107).

Lukas Wunner committed 11 years ago

Commit c5fd9361 parent 6b8eeca1 file · +2 −0Browse files

Unified · Split

drivers/gpu/drm/nouveau/nouveau_drm.c+2−0
@@ -23,6 +23,7 @@ · 22 unmodified lines
23 */23 */
24 24
25#include <linux/console.h>25#include <linux/console.h>
26#include <linux/delay.h>
26#include <linux/module.h>27#include <linux/module.h>
27#include <linux/pci.h>28#include <linux/pci.h>
28#include <linux/pm_runtime.h>29#include <linux/pm_runtime.h>
@@ -666,6 +667,7 @@ nouveau_pmops_suspend(struct device *dev) · 637 unmodified lines
666 pci_save_state(pdev);667 pci_save_state(pdev);
667 pci_disable_device(pdev);668 pci_disable_device(pdev);
668 pci_set_power_state(pdev, PCI_D3hot);669 pci_set_power_state(pdev, PCI_D3hot);
670 udelay(200);
669 return 0;671 return 0;
670}672}
671 673