OSDN Git Service

drm/amd/display: Allow passing of syspll id to get_smu_clock_info
authorJerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Fri, 23 Feb 2018 19:49:14 +0000 (14:49 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 14 Mar 2018 20:08:43 +0000 (15:08 -0500)
Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Reviewed-by: Hersen Wu <hersenxs.wu@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
drivers/gpu/drm/amd/display/dc/bios/command_table2.h

index 1689c67..e7680c4 100644 (file)
@@ -44,7 +44,7 @@
 
 #include "bios_parser_common.h"
 #define LAST_RECORD_TYPE 0xff
-
+#define SMU9_SYSPLL0_ID  0
 
 struct i2c_id_config_access {
        uint8_t bfI2C_LineMux:4;
@@ -1220,7 +1220,7 @@ static unsigned int bios_parser_get_smu_clock_info(
        if (!bp->cmd_tbl.get_smu_clock_info)
                return BP_RESULT_FAILURE;
 
-       return bp->cmd_tbl.get_smu_clock_info(bp);
+       return bp->cmd_tbl.get_smu_clock_info(bp, 0);
 }
 
 static enum bp_result bios_parser_program_crtc_timing(
@@ -1376,7 +1376,7 @@ static enum bp_result get_firmware_info_v3_1(
        if (bp->cmd_tbl.get_smu_clock_info != NULL) {
                /* VBIOS gives in 10KHz */
                info->smu_gpu_pll_output_freq =
-                               bp->cmd_tbl.get_smu_clock_info(bp) * 10;
+                               bp->cmd_tbl.get_smu_clock_info(bp, SMU9_SYSPLL0_ID) * 10;
        }
 
        return BP_RESULT_OK;
index e362658..3f63f71 100644 (file)
@@ -796,7 +796,7 @@ static enum bp_result set_dce_clock_v2_1(
  ******************************************************************************
  *****************************************************************************/
 
-static unsigned int get_smu_clock_info_v3_1(struct bios_parser *bp);
+static unsigned int get_smu_clock_info_v3_1(struct bios_parser *bp, uint8_t id);
 
 static void init_get_smu_clock_info(struct bios_parser *bp)
 {
@@ -805,12 +805,13 @@ static void init_get_smu_clock_info(struct bios_parser *bp)
 
 }
 
-static unsigned int get_smu_clock_info_v3_1(struct bios_parser *bp)
+static unsigned int get_smu_clock_info_v3_1(struct bios_parser *bp, uint8_t id)
 {
        struct atom_get_smu_clock_info_parameters_v3_1 smu_input = {0};
        struct atom_get_smu_clock_info_output_parameters_v3_1 smu_output;
 
        smu_input.command = GET_SMU_CLOCK_INFO_V3_1_GET_PLLVCO_FREQ;
+       smu_input.syspll_id = id;
 
        /* Get Specific Clock */
        if (EXEC_BIOS_CMD_TABLE(getsmuclockinfo, smu_input)) {
index 59061b8..ec1c0c9 100644 (file)
@@ -96,7 +96,7 @@ struct cmd_tbl {
                struct bios_parser *bp,
                struct bp_set_dce_clock_parameters *bp_params);
        unsigned int (*get_smu_clock_info)(
-                       struct bios_parser *bp);
+                       struct bios_parser *bp, uint8_t id);
 
 };