Patch "Revert "drm/radeon: disable runtime pm on PX laptops without dGPU power control"" has been added to the 4.5-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
Revert "drm/radeon: disable runtime pm on PX laptops without dGPU power control"
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
revert-drm-radeon-disable-runtime-pm-on-px-laptops-without-dgpu-power-control.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
bfaddd9fc8ac048b99475f000dbef6f08297417fMon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Mon, 18 Apr 2016 11:19:19 -0400
Subject: Revert "drm/radeon: disable runtime pm on PX laptops without dGPU power control"
From: Alex Deucher <[email protected]>
commit bfaddd9fc8ac048b99475f000dbef6f08297417f upstream.
This reverts commit e64c952efb8e0c15ae82cec8e455ab4910690ef1.
ATPX is the ACPI method for controlling AMD PowerXpress laptops. There are flags to indicate which methods are supported. If the dGPU power down flag is not supported, the driver needs to implement the dGPU power down manually. We had previously always forced the driver to assume the ATPX dGPU power down was present, but this causes problems on boards where it is not, leading to GPU hangs when attempting to power down the dGPU. Manual dGPU power down is not currently supported in the Linux driver. Some laptops indicate that the ATPX dGPU power down method is not present, but it actually apparently is. I'm not sure if this is a bios bug and it should be set or if there is a reason it was unset and the method should not be used. This is not an issue on other OSes since both the ATPX and the manual driver power down methods are supported.
This is apparently fairly widespread, so just revert for now.
bugs:
https://bugzilla.kernel.org/show_bug.cgi?id=115321
https://bugzilla.kernel.org/show_bug.cgi?id=116581
https://bugzilla.kernel.org/show_bug.cgi?id=116251
--- drivers/gpu/drm/radeon/radeon_atpx_handler.c | 8 ++++---- drivers/gpu/drm/radeon/radeon_device.c | 8 +------- 2 files changed, 5 insertions(+), 11 deletions(-)
drivers/gpu/drm/radeon/radeon_atpx_handler.c +4 -4
@@ -62,10 +62,6 @@ bool radeon_has_atpx(void) {return radeon_atpx_priv.atpx_detected; } -bool radeon_has_atpx_dgpu_power_cntl (void ) { -return radeon_atpx_priv.atpx.functions.power_cntl; -} -/** * radeon_atpx_call - call an ATPX method *
@@ -145,6 +141,10 @@ static void radeon_atpx_parse_functions(*/ static int radeon_atpx_validate (struct radeon_atpx *atpx) { +/* make sure required functions are enabled */ +/* dGPU power control is required */ + atpx->functions.power_cntl = true; +if (atpx->functions.px_params) {union acpi_object *info;struct atpx_px_params output;
drivers/gpu/drm/radeon/radeon_device.c +1 -7
@@ -103,12 +103,6 @@ static const char radeon_family_name[][1 "LAST", }; -#if defined(CONFIG_VGA_SWITCHEROO ) -bool radeon_has_atpx_dgpu_power_cntl (void ); -#else -static inline bool radeon_has_atpx_dgpu_power_cntl (void ) {return false; } -#endif -#define RADEON_PX_QUIRK_DISABLE_PX (1 << 0)#define RADEON_PX_QUIRK_LONG_WAKEUP (1 << 1)
@@ -1439,7 +1433,7 @@ int radeon_device_init(struct radeon_dev* ignore it */ vga_client_register (rdev->pdev, rdev,NULL , radeon_vga_set_decode); -if ((rdev->flags &RADEON_IS_PX ) &&radeon_has_atpx_dgpu_power_cntl ()) +if (rdev->flags &RADEON_IS_PX ) runtime = true;vga_switcheroo_register_client (rdev->pdev, &radeon_switcheroo_ops, runtime);if (runtime)
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/revert-drm-amdgpu-disable-runtime-pm-on-px-laptops-without-dgpu-power-control.patch queue-4.5/revert-drm-radeon-disable-runtime-pm-on-px-laptops-without-dgpu-power-control.patch