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).

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Lukas Wunner 2015-04-19 17:18:01 +02:00 коммит произвёл Dave Airlie
Родитель 6b8eeca65b
Коммит c5fd936e99
1 изменённых файлов: 2 добавлений и 0 удалений

Просмотреть файл

@ -23,6 +23,7 @@
*/
#include <linux/console.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/pm_runtime.h>
@ -666,6 +667,7 @@ nouveau_pmops_suspend(struct device *dev)
pci_save_state(pdev);
pci_disable_device(pdev);
pci_set_power_state(pdev, PCI_D3hot);
udelay(200);
return 0;
}