diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4155-drm-amdgpu-powerplay-add-core-support-for-pre-SOC15-.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4155-drm-amdgpu-powerplay-add-core-support-for-pre-SOC15-.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4155-drm-amdgpu-powerplay-add-core-support-for-pre-SOC15-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4155-drm-amdgpu-powerplay-add-core-support-for-pre-SOC15-.patch new file mode 100644 index 00000000..47666b97 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4155-drm-amdgpu-powerplay-add-core-support-for-pre-SOC15-.patch @@ -0,0 +1,83 @@ +From 57a7d38e14d4b5eda2b000265b9714fc137b83df Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Sun, 10 Feb 2019 21:57:55 -0500 +Subject: [PATCH 4155/4736] drm/amdgpu/powerplay: add core support for + pre-SOC15 baco +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This adds core support for BACO on pre-vega asics. + +Reviewed-by: Evan Quan <evan.quan@amd.com> +Acked-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../gpu/drm/amd/powerplay/hwmgr/common_baco.c | 19 +++++++++++++++++++ + .../gpu/drm/amd/powerplay/hwmgr/common_baco.h | 13 +++++++++++++ + 2 files changed, 32 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.c b/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.c +index 9c57c1f67749..1c73776bd606 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.c +@@ -79,6 +79,25 @@ static bool baco_cmd_handler(struct pp_hwmgr *hwmgr, u32 command, u32 reg, u32 m + return ret; + } + ++bool baco_program_registers(struct pp_hwmgr *hwmgr, ++ const struct baco_cmd_entry *entry, ++ const u32 array_size) ++{ ++ u32 i, reg = 0; ++ ++ for (i = 0; i < array_size; i++) { ++ if ((entry[i].cmd == CMD_WRITE) || ++ (entry[i].cmd == CMD_READMODIFYWRITE) || ++ (entry[i].cmd == CMD_WAITFOR)) ++ reg = entry[i].reg_offset; ++ if (!baco_cmd_handler(hwmgr, entry[i].cmd, reg, entry[i].mask, ++ entry[i].shift, entry[i].val, entry[i].timeout)) ++ return false; ++ } ++ ++ return true; ++} ++ + bool soc15_baco_program_registers(struct pp_hwmgr *hwmgr, + const struct soc15_baco_cmd_entry *entry, + const u32 array_size) +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.h b/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.h +index 95296c916f4e..8393eb62706d 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.h ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/common_baco.h +@@ -33,6 +33,15 @@ enum baco_cmd_type { + CMD_DELAY_US, + }; + ++struct baco_cmd_entry { ++ enum baco_cmd_type cmd; ++ uint32_t reg_offset; ++ uint32_t mask; ++ uint32_t shift; ++ uint32_t timeout; ++ uint32_t val; ++}; ++ + struct soc15_baco_cmd_entry { + enum baco_cmd_type cmd; + uint32_t hwip; +@@ -44,6 +53,10 @@ struct soc15_baco_cmd_entry { + uint32_t timeout; + uint32_t val; + }; ++ ++extern bool baco_program_registers(struct pp_hwmgr *hwmgr, ++ const struct baco_cmd_entry *entry, ++ const u32 array_size); + extern bool soc15_baco_program_registers(struct pp_hwmgr *hwmgr, + const struct soc15_baco_cmd_entry *entry, + const u32 array_size); +-- +2.17.1 + |