Revert "drm/amd/display: make clk_mgr call enable_pme_wa"
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 17 Jun 2019 18:04:43 +0000 (13:04 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 20 Jun 2019 17:24:18 +0000 (12:24 -0500)
This reverts commit a1651530a3bacf1d796fdb7bc587faef9f305d36.

Revert this to apply the version that includes DCN2 support.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c

index 183ca39ce5a14232c0da96cf69c96a91694c8ef3..31db9b55e11ad59ecdfca827ecaee336e36ab5d4 100644 (file)
@@ -215,23 +215,9 @@ static void rv1_update_clocks(struct clk_mgr *clk_mgr_base,
        }
 }
 
-static void rv1_enable_pme_wa(struct clk_mgr *clk_mgr_base)
-{
-       struct clk_mgr_internal *clk_mgr = TO_CLK_MGR_INTERNAL(clk_mgr_base);
-       struct pp_smu_funcs_rv *pp_smu = NULL;
-
-       if (clk_mgr->pp_smu) {
-               pp_smu = &clk_mgr->pp_smu->rv_funcs;
-
-               if (pp_smu->set_pme_wa_enable)
-                       pp_smu->set_pme_wa_enable(&pp_smu->pp_smu);
-       }
-}
-
 static struct clk_mgr_funcs rv1_clk_funcs = {
        .get_dp_ref_clk_frequency = dce12_get_dp_ref_freq_khz,
        .update_clocks = rv1_update_clocks,
-       .enable_pme_wa = rv1_enable_pme_wa,
 };
 
 static struct clk_mgr_internal_funcs rv1_clk_internal_funcs = {
index 5a831410bc551a9b86f2d4afe8474e51a39677dd..2a7ac452d458ee4b64cec352212eee49c2c6b752 100644 (file)
@@ -939,12 +939,26 @@ void hwss_edp_backlight_control(
                edp_receiver_ready_T9(link);
 }
 
+// Static helper function which calls the correct function
+// based on pp_smu version
+static void set_pme_wa_enable_by_version(struct dc *dc)
+{
+       struct pp_smu_funcs *pp_smu = NULL;
+
+       if (dc->res_pool->pp_smu)
+               pp_smu = dc->res_pool->pp_smu;
+
+       if (pp_smu) {
+               if (pp_smu->ctx.ver == PP_SMU_VER_RV && pp_smu->rv_funcs.set_pme_wa_enable)
+                       pp_smu->rv_funcs.set_pme_wa_enable(&(pp_smu->ctx));
+       }
+}
+
 void dce110_enable_audio_stream(struct pipe_ctx *pipe_ctx)
 {
        /* notify audio driver for audio modes of monitor */
        struct dc *core_dc = pipe_ctx->stream->ctx->dc;
        struct pp_smu_funcs *pp_smu = NULL;
-       struct clk_mgr *clk_mgr = core_dc->clk_mgr;
        unsigned int i, num_audio = 1;
 
        if (pipe_ctx->stream_res.audio && pipe_ctx->stream_res.audio->enabled == true)
@@ -962,9 +976,9 @@ void dce110_enable_audio_stream(struct pipe_ctx *pipe_ctx)
 
                pipe_ctx->stream_res.audio->funcs->az_enable(pipe_ctx->stream_res.audio);
 
-               if (num_audio >= 1 && clk_mgr->funcs->enable_pme_wa)
+               if (num_audio >= 1 && pp_smu != NULL)
                        /*this is the first audio. apply the PME w/a in order to wake AZ from D3*/
-                       clk_mgr->funcs->enable_pme_wa(clk_mgr);
+                       set_pme_wa_enable_by_version(core_dc);
                /* un-mute audio */
                /* TODO: audio should be per stream rather than per link */
                pipe_ctx->stream_res.stream_enc->funcs->audio_mute_control(
@@ -978,7 +992,6 @@ void dce110_disable_audio_stream(struct pipe_ctx *pipe_ctx, int option)
 {
        struct dc *dc = pipe_ctx->stream->ctx->dc;
        struct pp_smu_funcs *pp_smu = NULL;
-       struct clk_mgr *clk_mgr = dc->clk_mgr;
 
        if (pipe_ctx->stream_res.audio && pipe_ctx->stream_res.audio->enabled == false)
                return;
@@ -1007,9 +1020,9 @@ void dce110_disable_audio_stream(struct pipe_ctx *pipe_ctx, int option)
                        update_audio_usage(&dc->current_state->res_ctx, dc->res_pool, pipe_ctx->stream_res.audio, false);
                        pipe_ctx->stream_res.audio = NULL;
                }
-               if (clk_mgr->funcs->enable_pme_wa)
+               if (pp_smu != NULL)
                        /*this is the first audio. apply the PME w/a in order to wake AZ from D3*/
-                       clk_mgr->funcs->enable_pme_wa(clk_mgr);
+                       set_pme_wa_enable_by_version(dc);
 
                /* TODO: notify audio driver for if audio modes list changed
                 * add audio mode list change flag */