From: Tony Cheng <tony.ch...@amd.com>

- remove FEATURE_USE_MAX_DISPLAY_CLK.  move to dc_debug option
- DFS bypass query bios directly.  add debug option

Signed-off-by: Tony Cheng <tony.ch...@amd.com>
Acked-by: Harry Wentland <harry.wentl...@amd.com>
---
 .../gpu/drm/amd/dal/dc/adapter/adapter_service.c   | 38 ----------------------
 drivers/gpu/drm/amd/dal/dc/core/dc.c               |  4 +++
 drivers/gpu/drm/amd/dal/dc/dc.h                    |  2 ++
 .../amd/dal/dc/gpu/dce110/display_clock_dce110.c   | 14 +++++---
 .../drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c | 15 +++++----
 .../amd/dal/include/adapter_service_interface.h    |  9 -----
 6 files changed, 23 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c 
b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
index e6a5bd08d997..6034c7416ac0 100644
--- a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
+++ b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
@@ -86,7 +86,6 @@ static const struct feature_source_entry 
feature_entry_table[] = {
        {FEATURE_MAXIMIZE_URGENCY_WATERMARKS, false, true},
        {FEATURE_MAXIMIZE_STUTTER_MARKS, false, true},
        {FEATURE_MAXIMIZE_NBP_MARKS, false, true},
-       {FEATURE_USE_MAX_DISPLAY_CLK, false, true},
        {FEATURE_ALLOW_EDP_RESOURCE_SHARING, false, true},
        {FEATURE_SUPPORT_DP_YUV, false, true},
        {FEATURE_SUPPORT_DP_Y_ONLY, false, true},
@@ -94,7 +93,6 @@ static const struct feature_source_entry 
feature_entry_table[] = {
        {FEATURE_DCP_BIT_DEPTH_REDUCTION_MODE, 0, false},
        {FEATURE_DCP_DITHER_MODE, 0, false},
        {FEATURE_DCP_PROGRAMMING_WA, 0, false},
-       {FEATURE_ENABLE_DFS_BYPASS, false, true},
        {FEATURE_WIRELESS_FULL_TIMING_ADJUSTMENT, false, true},
        {FEATURE_WIRELESS_LIMIT_720P, false, true},
        {FEATURE_MODIFY_TIMINGS_FOR_WIRELESS, false, true},
@@ -629,42 +627,6 @@ void dal_adapter_service_destroy(
        *as = NULL;
 }
 
-/*
- * dal_adapter_service_is_feature_supported
- *
- * Return if a given feature is supported by the ASIC. The feature has to be
- * a boolean type.
- */
-bool dal_adapter_service_is_feature_supported(struct adapter_service *as,
-                                             enum adapter_feature_id 
feature_id)
-{
-       bool data = 0;
-
-       dal_adapter_service_get_feature_value(as, feature_id, &data, 
sizeof(bool));
-
-       return data;
-}
-
-/*
- * dal_adapter_service_is_dfs_bypass_enabled
- *
- * Check if DFS bypass is enabled
- */
-bool dal_adapter_service_is_dfs_bypass_enabled(
-       struct adapter_service *as)
-{
-       struct dc_bios *bp = as->ctx->dc_bios;
-
-       if (bp->integrated_info == NULL)
-               return false;
-       if ((bp->integrated_info->gpu_cap_info & DFS_BYPASS_ENABLE) &&
-           dal_adapter_service_is_feature_supported(as,
-                       FEATURE_ENABLE_DFS_BYPASS))
-               return true;
-       else
-               return false;
-}
-
 struct dal_asic_runtime_flags dal_adapter_service_get_asic_runtime_flags(
                struct adapter_service *as)
 {
diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c 
b/drivers/gpu/drm/amd/dal/dc/core/dc.c
index 994b91967ad8..e3ec5c5163b8 100644
--- a/drivers/gpu/drm/amd/dal/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c
@@ -692,6 +692,10 @@ struct dc *dc_create(const struct dc_init_data 
*init_params)
        dm_logger_write(core_dc->ctx->logger, LOG_DC,
                        "Display Core initialized\n");
 
+
+       /* TODO: missing feature to be enabled */
+       core_dc->public.debug.disalbe_dfs_bypass = true;
+
        return &core_dc->public;
 
 construct_fail:
diff --git a/drivers/gpu/drm/amd/dal/dc/dc.h b/drivers/gpu/drm/amd/dal/dc/dc.h
index 044fea7ce32a..22ed46d3844c 100644
--- a/drivers/gpu/drm/amd/dal/dc/dc.h
+++ b/drivers/gpu/drm/amd/dal/dc/dc.h
@@ -139,6 +139,8 @@ struct dc_debug {
        bool surface_visual_confirm;
        bool disable_stutter;
        bool disable_dcc;
+       bool disalbe_dfs_bypass;
+       bool max_disp_clk;
 };
 
 struct dc {
diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c 
b/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c
index ec0f6ae61542..af04348d2a7a 100644
--- a/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c
+++ b/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c
@@ -36,6 +36,7 @@
 #include "../divider_range.h"
 
 #include "display_clock_dce110.h"
+#include "dc.h"
 
 #define FROM_DISPLAY_CLOCK(base) \
        container_of(base, struct display_clock_dce110, disp_clk_base)
@@ -670,6 +671,7 @@ static bool display_clock_integrated_info_construct(
        struct display_clock_dce110 *disp_clk,
        struct adapter_service *as)
 {
+       struct dc_debug *debug = &disp_clk->disp_clk_base.ctx->dc->debug;
        struct dc_bios *bp = disp_clk->disp_clk_base.ctx->dc_bios;
        struct integrated_info info;
        struct firmware_info fw_info;
@@ -730,11 +732,13 @@ static bool display_clock_integrated_info_construct(
                                info.disp_clk_voltage[i].max_supported_clk;
                }
        }
-       disp_clk->dfs_bypass_enabled =
-               dal_adapter_service_is_dfs_bypass_enabled(as);
-       disp_clk->use_max_disp_clk =
-               dal_adapter_service_is_feature_supported(as,
-                       FEATURE_USE_MAX_DISPLAY_CLK);
+
+       disp_clk->dfs_bypass_enabled = false;
+       if (!debug->disalbe_dfs_bypass)
+               if (bp->integrated_info->gpu_cap_info & DFS_BYPASS_ENABLE)
+                       disp_clk->dfs_bypass_enabled = true;
+
+       disp_clk->use_max_disp_clk = debug->max_disp_clk;
 
        return true;
 }
diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c 
b/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c
index 68134a0e70b4..3f93a0a3875a 100644
--- a/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c
+++ b/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c
@@ -35,6 +35,7 @@
 
 #include "../divider_range.h"
 #include "display_clock_dce80.h"
+#include "dc.h"
 
 #define DCE80_DFS_BYPASS_THRESHOLD_KHZ 100000
 
@@ -754,6 +755,7 @@ static bool display_clock_integrated_info_construct(
        struct display_clock_dce80 *disp_clk,
        struct adapter_service *as)
 {
+       struct dc_debug *debug = &disp_clk->disp_clk.ctx->dc->debug;
        struct dc_bios *bp = disp_clk->disp_clk.ctx->dc_bios;
        struct integrated_info info = { { { 0 } } };
        struct firmware_info fw_info = { { 0 } };
@@ -809,14 +811,13 @@ static bool display_clock_integrated_info_construct(
                }
        }
 
-       disp_clk->dfs_bypass_enabled =
-               dal_adapter_service_is_dfs_bypass_enabled(as) &&
-               dal_adapter_service_is_feature_supported(as,
-                       FEATURE_ENABLE_DFS_BYPASS);
+       disp_clk->dfs_bypass_enabled = false;
+       if (!debug->disalbe_dfs_bypass)
+               if (bp->integrated_info->gpu_cap_info & DFS_BYPASS_ENABLE)
+                       disp_clk->dfs_bypass_enabled = true;
+
+       disp_clk->use_max_disp_clk = debug->max_disp_clk;
 
-       disp_clk->use_max_disp_clk =
-               dal_adapter_service_is_feature_supported(as,
-                       FEATURE_USE_MAX_DISPLAY_CLK);
        return true;
 }
 
diff --git a/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h 
b/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h
index eee36b421950..4cc9c6272a06 100644
--- a/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h
+++ b/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h
@@ -76,11 +76,9 @@ enum adapter_feature_id {
        FEATURE_MAXIMIZE_URGENCY_WATERMARKS,
        FEATURE_MAXIMIZE_STUTTER_MARKS,
        FEATURE_MAXIMIZE_NBP_MARKS,
-       FEATURE_USE_MAX_DISPLAY_CLK,
        FEATURE_ALLOW_EDP_RESOURCE_SHARING,
        FEATURE_SUPPORT_DP_YUV,
        FEATURE_SUPPORT_DP_Y_ONLY,
-       FEATURE_ENABLE_DFS_BYPASS,
        FEATURE_LB_HIGH_RESOLUTION,
        FEATURE_DP_DISPLAY_FORCE_SS_ENABLE,
        FEATURE_REPORT_CE_MODE_ONLY,
@@ -324,13 +322,6 @@ struct adapter_service *dal_adapter_service_create(
 void dal_adapter_service_destroy(
        struct adapter_service **as);
 
-/* Check if DFS bypass is enabled */
-bool dal_adapter_service_is_dfs_bypass_enabled(struct adapter_service *as);
-
-/* Return if a given feature is supported by the ASIC */
-bool dal_adapter_service_is_feature_supported(struct adapter_service *as,
-       enum adapter_feature_id feature_id);
-
 /* Get the cached value of a given feature */
 bool dal_adapter_service_get_feature_value(struct adapter_service *as,
        const enum adapter_feature_id feature_id,
-- 
2.10.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to