aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5071-drm-amdgpu-Add-amdgpu_gfx_off_ctrl-function.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5071-drm-amdgpu-Add-amdgpu_gfx_off_ctrl-function.patch')
-rw-r--r--meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5071-drm-amdgpu-Add-amdgpu_gfx_off_ctrl-function.patch114
1 files changed, 0 insertions, 114 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5071-drm-amdgpu-Add-amdgpu_gfx_off_ctrl-function.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5071-drm-amdgpu-Add-amdgpu_gfx_off_ctrl-function.patch
deleted file mode 100644
index cc4fdec4..00000000
--- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5071-drm-amdgpu-Add-amdgpu_gfx_off_ctrl-function.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From ae46fd8a5981824155d3ddde3b1457cca60a9af8 Mon Sep 17 00:00:00 2001
-From: Rex Zhu <Rex.Zhu@amd.com>
-Date: Mon, 30 Jul 2018 16:59:09 +0800
-Subject: [PATCH 5071/5725] drm/amdgpu: Add amdgpu_gfx_off_ctrl function
-
-v2:
- 1. drop the special handling for the hw IP
- suggested by hawking and Christian.
- 2. refine the variable name suggested by Flora.
-
-This funciton as the entry of gfx off feature.
-we arbitrat gfx off feature enable/disable in this
-function.
-
-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 | 5 +++++
- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 36 ++++++++++++++++++++++++++++++
- 3 files changed, 43 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index a6bde13..d13ddd2 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -973,6 +973,10 @@ struct amdgpu_gfx {
- /* NGG */
- struct amdgpu_ngg ngg;
-
-+ /* gfx off */
-+ 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 */
- /* pipe reservation */
- struct mutex pipe_reserve_mutex;
- DECLARE_BITMAP (pipe_reserve_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
-@@ -1841,6 +1845,7 @@ void amdgpu_device_program_register_sequence(struct amdgpu_device *adev,
- const u32 array_size);
-
- bool amdgpu_device_is_px(struct drm_device *dev);
-+void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable);
- /* atpx handler */
- #if defined(CONFIG_VGA_SWITCHEROO)
- void amdgpu_register_atpx_handler(void);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-index 4bc4c4a..dd34f4c 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-@@ -2416,6 +2416,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
- mutex_init(&adev->gfx.gpu_clock_mutex);
- mutex_init(&adev->srbm_mutex);
- mutex_init(&adev->gfx.pipe_reserve_mutex);
-+ mutex_init(&adev->gfx.gfx_off_mutex);
- mutex_init(&adev->grbm_idx_mutex);
- mutex_init(&adev->mn_lock);
- mutex_init(&adev->virt.vf_errors.lock);
-@@ -2443,6 +2444,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
- INIT_DELAYED_WORK(&adev->late_init_work,
- amdgpu_device_ip_late_init_func_handler);
-
-+ adev->gfx.gfx_off_req_count = 1;
- adev->pm.ac_power = power_supply_is_system_supplied() > 0 ? true : false;
-
- /* Registers mapping */
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
-index 3116e4d..fe87ffd 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
-@@ -340,3 +340,39 @@ void amdgpu_gfx_compute_mqd_sw_fini(struct amdgpu_device *adev)
- &ring->mqd_gpu_addr,
- &ring->mqd_ptr);
- }
-+
-+/* amdgpu_gfx_off_ctrl - Handle gfx off feature enable/disable
-+ *
-+ * @adev: amdgpu_device pointer
-+ * @bool enable true: enable gfx off feature, false: disable gfx off feature
-+ *
-+ * 1. gfx off feature will be enabled by gfx ip after gfx cg gp enabled.
-+ * 2. other client can send request to disable gfx off feature, the request should be honored.
-+ * 3. other client can cancel their request of disable gfx off feature
-+ * 4. other client should not send request to enable gfx off feature before disable gfx off feature.
-+ */
-+
-+void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable)
-+{
-+ if (!(adev->powerplay.pp_feature & PP_GFXOFF_MASK))
-+ return;
-+
-+ if (!adev->powerplay.pp_funcs->set_powergating_by_smu)
-+ return;
-+
-+ mutex_lock(&adev->gfx.gfx_off_mutex);
-+
-+ if (!enable)
-+ adev->gfx.gfx_off_req_count++;
-+ else if (adev->gfx.gfx_off_req_count > 0)
-+ 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;
-+ } 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
-