[PATCH 3.12 083/100] drm/radeon: add a delay after ATPX dGPU power off

From: Jiri Slaby
Date: Fri Aug 19 2016 - 03:16:20 EST


From: Alex Deucher <alexander.deucher@xxxxxxx>

3.12-stable review patch. If anyone has any objections, please let me know.

===============

commit d814b24fb74cb9797d70cb8053961447c5879a5c upstream.

ATPX dGPU power control requires a 200ms delay between
power off and on. This should fix dGPU failures on
resume from power off.

Reviewed-by: Hawking Zhang <Hawking.Zhang@xxxxxxx>
Acked-by: Christian KÃnig <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
---
drivers/gpu/drm/radeon/radeon_atpx_handler.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/radeon/radeon_atpx_handler.c b/drivers/gpu/drm/radeon/radeon_atpx_handler.c
index 7c6e3fd70e65..97dc62140fc9 100644
--- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c
+++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c
@@ -11,6 +11,7 @@
#include <acpi/acpi.h>
#include <acpi/acpi_bus.h>
#include <linux/pci.h>
+#include <linux/delay.h>

#include "radeon_acpi.h"

@@ -253,6 +254,10 @@ static int radeon_atpx_set_discrete_state(struct radeon_atpx *atpx, u8 state)
if (!info)
return -EIO;
kfree(info);
+
+ /* 200ms delay is required after off */
+ if (state == 0)
+ msleep(200);
}
return 0;
}
--
2.9.3