aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0628-drm-amd-display-Add-regkey-for-DRR-control-for-inter.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0628-drm-amd-display-Add-regkey-for-DRR-control-for-inter.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0628-drm-amd-display-Add-regkey-for-DRR-control-for-inter.patch185
1 files changed, 0 insertions, 185 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0628-drm-amd-display-Add-regkey-for-DRR-control-for-inter.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0628-drm-amd-display-Add-regkey-for-DRR-control-for-inter.patch
deleted file mode 100644
index 79759939..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0628-drm-amd-display-Add-regkey-for-DRR-control-for-inter.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From 101e1892e13c735c8e235b17555e9932ef2e36f5 Mon Sep 17 00:00:00 2001
-From: Anthony Koo <Anthony.Koo@amd.com>
-Date: Tue, 18 Jul 2017 10:21:43 -0400
-Subject: [PATCH 0628/4131] drm/amd/display: Add regkey for DRR control for
- internal panel
-
-Also need to change default to off
-
-Signed-off-by: Anthony Koo <anthony.koo@amd.com>
-Reviewed-by: Tony Cheng <Tony.Cheng@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/dc.h | 1 -
- .../drm/amd/display/modules/freesync/freesync.c | 74 ++++++++++++----------
- .../gpu/drm/amd/display/modules/inc/mod_freesync.h | 1 -
- 3 files changed, 40 insertions(+), 36 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
-index 6a22c91..07f064f 100644
---- a/drivers/gpu/drm/amd/display/dc/dc.h
-+++ b/drivers/gpu/drm/amd/display/dc/dc.h
-@@ -188,7 +188,6 @@ struct dc_debug {
- bool disable_dmcu;
- bool disable_psr;
- bool force_abm_enable;
-- bool no_static_for_external_dp;
- };
-
- struct dc {
-diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
-index 4df79f7..a989d5d 100644
---- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
-+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
-@@ -43,6 +43,10 @@
-
- #define FREESYNC_REGISTRY_NAME "freesync_v1"
-
-+#define FREESYNC_NO_STATIC_FOR_EXTERNAL_DP_REGKEY "DalFreeSyncNoStaticForExternalDp"
-+
-+#define FREESYNC_NO_STATIC_FOR_INTERNAL_REGKEY "DalFreeSyncNoStaticForInternal"
-+
- struct gradual_static_ramp {
- bool ramp_is_active;
- bool ramp_direction_is_up;
-@@ -114,7 +118,8 @@ struct freesync_entity {
- };
-
- struct freesync_registry_options {
-- unsigned int min_refresh_from_edid;
-+ bool drr_external_supported;
-+ bool drr_internal_supported;
- };
-
- struct core_freesync {
-@@ -176,9 +181,19 @@ struct mod_freesync *mod_freesync_create(struct dc *dc)
- NULL, NULL, 0, &flag);
- flag.save_per_edid = false;
- flag.save_per_link = false;
-+
- if (dm_read_persistent_data(core_dc->ctx, NULL, NULL,
-- "DalDrrSupport", &data, sizeof(data), &flag)) {
-- core_freesync->opts.min_refresh_from_edid = data;
-+ FREESYNC_NO_STATIC_FOR_INTERNAL_REGKEY,
-+ &data, sizeof(data), &flag)) {
-+ core_freesync->opts.drr_internal_supported =
-+ (data & 1) ? false : true;
-+ }
-+
-+ if (dm_read_persistent_data(core_dc->ctx, NULL, NULL,
-+ FREESYNC_NO_STATIC_FOR_EXTERNAL_DP_REGKEY,
-+ &data, sizeof(data), &flag)) {
-+ core_freesync->opts.drr_external_supported =
-+ (data & 1) ? false : true;
- }
-
- return &core_freesync->public;
-@@ -236,7 +251,7 @@ bool mod_freesync_add_stream(struct mod_freesync *mod_freesync,
- struct core_freesync *core_freesync = NULL;
- int persistent_freesync_enable = 0;
- struct persistent_data_flag flag;
-- unsigned int nom_refresh_rate_micro_hz;
-+ unsigned int nom_refresh_rate_uhz;
- unsigned long long temp;
-
- if (mod_freesync == NULL)
-@@ -258,20 +273,7 @@ bool mod_freesync_add_stream(struct mod_freesync *mod_freesync,
- temp = div_u64(temp, stream->timing.h_total);
- temp = div_u64(temp, stream->timing.v_total);
-
-- nom_refresh_rate_micro_hz = (unsigned int) temp;
--
-- if (core_freesync->opts.min_refresh_from_edid != 0 &&
-- dc_is_embedded_signal(stream->sink->sink_signal)
-- && (nom_refresh_rate_micro_hz -
-- core_freesync->opts.min_refresh_from_edid *
-- 1000000) >= 10000000) {
-- caps->supported = true;
-- caps->min_refresh_in_micro_hz =
-- core_freesync->opts.min_refresh_from_edid *
-- 1000000;
-- caps->max_refresh_in_micro_hz =
-- nom_refresh_rate_micro_hz;
-- }
-+ nom_refresh_rate_uhz = (unsigned int) temp;
-
- core_freesync->map[core_freesync->num_entities].stream = stream;
- core_freesync->map[core_freesync->num_entities].caps = caps;
-@@ -311,8 +313,8 @@ bool mod_freesync_add_stream(struct mod_freesync *mod_freesync,
- }
-
- if (caps->supported &&
-- nom_refresh_rate_micro_hz >= caps->min_refresh_in_micro_hz &&
-- nom_refresh_rate_micro_hz <= caps->max_refresh_in_micro_hz)
-+ nom_refresh_rate_uhz >= caps->min_refresh_in_micro_hz &&
-+ nom_refresh_rate_uhz <= caps->max_refresh_in_micro_hz)
- core_stream->public.ignore_msa_timing_param = 1;
-
- core_freesync->num_entities++;
-@@ -865,6 +867,11 @@ void mod_freesync_update_state(struct mod_freesync *mod_freesync,
- unsigned int map_index = map_index_from_stream(core_freesync,
- streams[stream_index]);
-
-+ bool is_embedded = dc_is_embedded_signal(
-+ streams[stream_index]->sink->sink_signal);
-+
-+ struct freesync_registry_options *opts = &core_freesync->opts;
-+
- state = &core_freesync->map[map_index].state;
-
- switch (freesync_params->state){
-@@ -875,25 +882,24 @@ void mod_freesync_update_state(struct mod_freesync *mod_freesync,
- freesync_params->windowed_fullscreen;
- break;
- case FREESYNC_STATE_STATIC_SCREEN:
-- /* Static screen ramp is only enabled for embedded
-- * panels. Also change core variables only if there
-- * is a change.
-+ /* Static screen ramp is disabled by default, but can
-+ * be enabled through regkey.
- */
-- if ((dc_is_embedded_signal(
-- streams[stream_index]->sink->sink_signal) ||
-- core_freesync->map[map_index].caps->
-- no_static_for_external_dp == false) &&
-- state->static_screen !=
-- freesync_params->enable) {
-+ if ((is_embedded && opts->drr_internal_supported) ||
-+ (!is_embedded && opts->drr_external_supported))
-
-- /* Change the state flag */
-- state->static_screen = freesync_params->enable;
-+ if (state->static_screen !=
-+ freesync_params->enable) {
-
-- /* Change static screen ramp variables */
-- set_static_ramp_variables(core_freesync,
-+ /* Change the state flag */
-+ state->static_screen =
-+ freesync_params->enable;
-+
-+ /* Update static screen ramp */
-+ set_static_ramp_variables(core_freesync,
- map_index,
- freesync_params->enable);
-- }
-+ }
- /* We program the ramp starting next VUpdate */
- break;
- case FREESYNC_STATE_VIDEO:
-diff --git a/drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h b/drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h
-index eae1b34..53c428b 100644
---- a/drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h
-+++ b/drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h
-@@ -88,7 +88,6 @@ struct mod_freesync_caps {
- unsigned int max_refresh_in_micro_hz;
-
- bool btr_supported;
-- bool no_static_for_external_dp;
- };
-
- struct mod_freesync_params {
---
-2.7.4
-