aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4708-drm-amd-powerplay-correct-vega12-bootup-values-setti.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4708-drm-amd-powerplay-correct-vega12-bootup-values-setti.patch')
-rw-r--r--meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4708-drm-amd-powerplay-correct-vega12-bootup-values-setti.patch183
1 files changed, 0 insertions, 183 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4708-drm-amd-powerplay-correct-vega12-bootup-values-setti.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4708-drm-amd-powerplay-correct-vega12-bootup-values-setti.patch
deleted file mode 100644
index 28c69fb2..00000000
--- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4708-drm-amd-powerplay-correct-vega12-bootup-values-setti.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-From 56c86885423448422d8491e631b8cd80c29a7b0d Mon Sep 17 00:00:00 2001
-From: Evan Quan <evan.quan@amd.com>
-Date: Mon, 28 May 2018 08:59:16 +0800
-Subject: [PATCH 4708/5725] drm/amd/powerplay: correct vega12 bootup values
- settings
-
-The vbios firmware structure changed between v3_1 and v3_2. So,
-the code to setup bootup values needs different paths based
-on header version.
-
-Signed-off-by: Evan Quan <evan.quan@amd.com>
-Acked-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c | 94 +++++++++++++++++++---
- drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h | 3 +
- drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 3 +
- drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.h | 3 +
- 4 files changed, 91 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
-index 5325661..aa2faff 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
-@@ -512,14 +512,82 @@ int pp_atomfwctrl_get_clk_information_by_clkid(struct pp_hwmgr *hwmgr, BIOS_CLKI
- return 0;
- }
-
-+static void pp_atomfwctrl_copy_vbios_bootup_values_3_2(struct pp_hwmgr *hwmgr,
-+ struct pp_atomfwctrl_bios_boot_up_values *boot_values,
-+ struct atom_firmware_info_v3_2 *fw_info)
-+{
-+ uint32_t frequency = 0;
-+
-+ boot_values->ulRevision = fw_info->firmware_revision;
-+ boot_values->ulGfxClk = fw_info->bootup_sclk_in10khz;
-+ boot_values->ulUClk = fw_info->bootup_mclk_in10khz;
-+ boot_values->usVddc = fw_info->bootup_vddc_mv;
-+ boot_values->usVddci = fw_info->bootup_vddci_mv;
-+ boot_values->usMvddc = fw_info->bootup_mvddc_mv;
-+ boot_values->usVddGfx = fw_info->bootup_vddgfx_mv;
-+ boot_values->ucCoolingID = fw_info->coolingsolution_id;
-+ boot_values->ulSocClk = 0;
-+ boot_values->ulDCEFClk = 0;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU11_SYSPLL0_SOCCLK_ID, &frequency))
-+ boot_values->ulSocClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU11_SYSPLL0_DCEFCLK_ID, &frequency))
-+ boot_values->ulDCEFClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU11_SYSPLL0_ECLK_ID, &frequency))
-+ boot_values->ulEClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU11_SYSPLL0_VCLK_ID, &frequency))
-+ boot_values->ulVClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU11_SYSPLL0_DCLK_ID, &frequency))
-+ boot_values->ulDClk = frequency;
-+}
-+
-+static void pp_atomfwctrl_copy_vbios_bootup_values_3_1(struct pp_hwmgr *hwmgr,
-+ struct pp_atomfwctrl_bios_boot_up_values *boot_values,
-+ struct atom_firmware_info_v3_1 *fw_info)
-+{
-+ uint32_t frequency = 0;
-+
-+ boot_values->ulRevision = fw_info->firmware_revision;
-+ boot_values->ulGfxClk = fw_info->bootup_sclk_in10khz;
-+ boot_values->ulUClk = fw_info->bootup_mclk_in10khz;
-+ boot_values->usVddc = fw_info->bootup_vddc_mv;
-+ boot_values->usVddci = fw_info->bootup_vddci_mv;
-+ boot_values->usMvddc = fw_info->bootup_mvddc_mv;
-+ boot_values->usVddGfx = fw_info->bootup_vddgfx_mv;
-+ boot_values->ucCoolingID = fw_info->coolingsolution_id;
-+ boot_values->ulSocClk = 0;
-+ boot_values->ulDCEFClk = 0;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU9_SYSPLL0_SOCCLK_ID, &frequency))
-+ boot_values->ulSocClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU9_SYSPLL0_DCEFCLK_ID, &frequency))
-+ boot_values->ulDCEFClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU9_SYSPLL0_ECLK_ID, &frequency))
-+ boot_values->ulEClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU9_SYSPLL0_VCLK_ID, &frequency))
-+ boot_values->ulVClk = frequency;
-+
-+ if (!pp_atomfwctrl_get_clk_information_by_clkid(hwmgr, SMU9_SYSPLL0_DCLK_ID, &frequency))
-+ boot_values->ulDClk = frequency;
-+}
-+
- int pp_atomfwctrl_get_vbios_bootup_values(struct pp_hwmgr *hwmgr,
- struct pp_atomfwctrl_bios_boot_up_values *boot_values)
- {
-- struct atom_firmware_info_v3_1 *info = NULL;
-+ struct atom_firmware_info_v3_2 *fwinfo_3_2;
-+ struct atom_firmware_info_v3_1 *fwinfo_3_1;
-+ struct atom_common_table_header *info = NULL;
- uint16_t ix;
-
- ix = GetIndexIntoMasterDataTable(firmwareinfo);
-- info = (struct atom_firmware_info_v3_1 *)
-+ info = (struct atom_common_table_header *)
- smu_atom_get_data_table(hwmgr->adev,
- ix, NULL, NULL, NULL);
-
-@@ -528,16 +596,18 @@ int pp_atomfwctrl_get_vbios_bootup_values(struct pp_hwmgr *hwmgr,
- return -EINVAL;
- }
-
-- boot_values->ulRevision = info->firmware_revision;
-- boot_values->ulGfxClk = info->bootup_sclk_in10khz;
-- boot_values->ulUClk = info->bootup_mclk_in10khz;
-- boot_values->usVddc = info->bootup_vddc_mv;
-- boot_values->usVddci = info->bootup_vddci_mv;
-- boot_values->usMvddc = info->bootup_mvddc_mv;
-- boot_values->usVddGfx = info->bootup_vddgfx_mv;
-- boot_values->ucCoolingID = info->coolingsolution_id;
-- boot_values->ulSocClk = 0;
-- boot_values->ulDCEFClk = 0;
-+ if ((info->format_revision == 3) && (info->content_revision == 2)) {
-+ fwinfo_3_2 = (struct atom_firmware_info_v3_2 *)info;
-+ pp_atomfwctrl_copy_vbios_bootup_values_3_2(hwmgr,
-+ boot_values, fwinfo_3_2);
-+ } else if ((info->format_revision == 3) && (info->content_revision == 1)) {
-+ fwinfo_3_1 = (struct atom_firmware_info_v3_1 *)info;
-+ pp_atomfwctrl_copy_vbios_bootup_values_3_1(hwmgr,
-+ boot_values, fwinfo_3_1);
-+ } else {
-+ pr_info("Fw info table revision does not match!");
-+ return -EINVAL;
-+ }
-
- return 0;
- }
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h
-index fe10aa4..745bd38 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h
-@@ -136,6 +136,9 @@ struct pp_atomfwctrl_bios_boot_up_values {
- uint32_t ulUClk;
- uint32_t ulSocClk;
- uint32_t ulDCEFClk;
-+ uint32_t ulEClk;
-+ uint32_t ulVClk;
-+ uint32_t ulDClk;
- uint16_t usVddc;
- uint16_t usVddci;
- uint16_t usMvddc;
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
-index b38b1d9..6e22cb3 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
-@@ -804,6 +804,9 @@ static int vega12_init_smc_table(struct pp_hwmgr *hwmgr)
- data->vbios_boot_state.soc_clock = boot_up_values.ulSocClk;
- data->vbios_boot_state.dcef_clock = boot_up_values.ulDCEFClk;
- data->vbios_boot_state.uc_cooling_id = boot_up_values.ucCoolingID;
-+ data->vbios_boot_state.eclock = boot_up_values.ulEClk;
-+ data->vbios_boot_state.dclock = boot_up_values.ulDClk;
-+ data->vbios_boot_state.vclock = boot_up_values.ulVClk;
- smum_send_msg_to_smc_with_parameter(hwmgr,
- PPSMC_MSG_SetMinDeepSleepDcefclk,
- (uint32_t)(data->vbios_boot_state.dcef_clock / 100));
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.h
-index e81ded1..49b38df 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.h
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.h
-@@ -167,6 +167,9 @@ struct vega12_vbios_boot_state {
- uint32_t mem_clock;
- uint32_t soc_clock;
- uint32_t dcef_clock;
-+ uint32_t eclock;
-+ uint32_t dclock;
-+ uint32_t vclock;
- };
-
- #define DPMTABLE_OD_UPDATE_SCLK 0x00000001
---
-2.7.4
-