aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5072-drm-amdgpu-Put-enable-gfx-off-feature-to-a-delay-thr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5072-drm-amdgpu-Put-enable-gfx-off-feature-to-a-delay-thr.patch')
-rw-r--r--meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5072-drm-amdgpu-Put-enable-gfx-off-feature-to-a-delay-thr.patch104
1 files changed, 0 insertions, 104 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5072-drm-amdgpu-Put-enable-gfx-off-feature-to-a-delay-thr.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5072-drm-amdgpu-Put-enable-gfx-off-feature-to-a-delay-thr.patch
deleted file mode 100644
index 9d25c1bf..00000000
--- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5072-drm-amdgpu-Put-enable-gfx-off-feature-to-a-delay-thr.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 1f373ae040b85197c04af1bab3bb0ac496099c63 Mon Sep 17 00:00:00 2001
-From: Rex Zhu <Rex.Zhu@amd.com>
-Date: Fri, 27 Jul 2018 21:06:30 +0800
-Subject: [PATCH 5072/5725] drm/amdgpu: Put enable gfx off feature to a delay
- thread
-
-delay to enable gfx off feature to avoid gfx on/off frequently
-suggested by Alex and Evan.
-
-Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
-Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
-Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 15 +++++++++++++++
- drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 8 ++++++--
- 3 files changed, 23 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index d13ddd2..2098e0f 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -977,6 +977,8 @@ struct amdgpu_gfx {
- bool gfx_off_state; /* true: enabled, false: disabled */
- struct mutex gfx_off_mutex;
- uint32_t gfx_off_req_count; /* default 1, enable gfx off: dec 1, disable gfx off: add 1 */
-+ struct delayed_work gfx_off_delay_work;
-+
- /* pipe reservation */
- struct mutex pipe_reserve_mutex;
- DECLARE_BITMAP (pipe_reserve_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-index dd34f4c..aa9cc45 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-@@ -1974,6 +1974,19 @@ static void amdgpu_device_ip_late_init_func_handler(struct work_struct *work)
- DRM_ERROR("ib ring test failed (%d).\n", r);
- }
-
-+static void amdgpu_device_delay_enable_gfx_off(struct work_struct *work)
-+{
-+ struct amdgpu_device *adev =
-+ container_of(work, struct amdgpu_device, gfx.gfx_off_delay_work.work);
-+
-+ mutex_lock(&adev->gfx.gfx_off_mutex);
-+ if (!adev->gfx.gfx_off_state && !adev->gfx.gfx_off_req_count) {
-+ if (!amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_GFX, true))
-+ adev->gfx.gfx_off_state = true;
-+ }
-+ mutex_unlock(&adev->gfx.gfx_off_mutex);
-+}
-+
- /**
- * amdgpu_device_ip_suspend_phase1 - run suspend for hardware IPs (phase 1)
- *
-@@ -2443,6 +2456,8 @@ int amdgpu_device_init(struct amdgpu_device *adev,
-
- INIT_DELAYED_WORK(&adev->late_init_work,
- amdgpu_device_ip_late_init_func_handler);
-+ INIT_DELAYED_WORK(&adev->gfx.gfx_off_delay_work,
-+ amdgpu_device_delay_enable_gfx_off);
-
- adev->gfx.gfx_off_req_count = 1;
- adev->pm.ac_power = power_supply_is_system_supplied() > 0 ? true : false;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
-index fe87ffd..3fe6527 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
-@@ -26,6 +26,9 @@
- #include "amdgpu.h"
- #include "amdgpu_gfx.h"
-
-+/* 0.5 second timeout */
-+#define GFX_OFF_DELAY_ENABLE msecs_to_jiffies(500)
-+
- /*
- * GPU scratch registers helpers function.
- */
-@@ -360,6 +363,7 @@ void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable)
- if (!adev->powerplay.pp_funcs->set_powergating_by_smu)
- return;
-
-+
- mutex_lock(&adev->gfx.gfx_off_mutex);
-
- if (!enable)
-@@ -368,11 +372,11 @@ void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable)
- adev->gfx.gfx_off_req_count--;
-
- if (enable && !adev->gfx.gfx_off_state && !adev->gfx.gfx_off_req_count) {
-- if (!amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_GFX, true))
-- adev->gfx.gfx_off_state = true;
-+ schedule_delayed_work(&adev->gfx.gfx_off_delay_work, GFX_OFF_DELAY_ENABLE);
- } else if (!enable && adev->gfx.gfx_off_state) {
- if (!amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_GFX, false))
- adev->gfx.gfx_off_state = false;
- }
-+
- mutex_unlock(&adev->gfx.gfx_off_mutex);
- }
---
-2.7.4
-