diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4669-drm-amd-display-Fix-Dali-clk-mgr-construct.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4669-drm-amd-display-Fix-Dali-clk-mgr-construct.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4669-drm-amd-display-Fix-Dali-clk-mgr-construct.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4669-drm-amd-display-Fix-Dali-clk-mgr-construct.patch new file mode 100644 index 00000000..d7efc9d9 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4669-drm-amd-display-Fix-Dali-clk-mgr-construct.patch @@ -0,0 +1,72 @@ +From 74ad82d1beb22c28091571a377d8f5709655591b Mon Sep 17 00:00:00 2001 +From: Michael Strauss <michael.strauss@amd.com> +Date: Mon, 4 Nov 2019 13:39:20 -0500 +Subject: [PATCH 4669/4736] drm/amd/display: Fix Dali clk mgr construct + +[WHY] +Dali is currently being misinterpreted as Renoir, +as a result uses wrong clk mgr constructor + +[HOW] +Add check to init Dali as Raven2 before it can be misidentified +Clean up & fix Raven2 & Dali ASIC checks + +Change-Id: I56de017317487ab06085f56ca590680eb7a01be1 +Signed-off-by: Michael Strauss <michael.strauss@amd.com> +Reviewed-by: Eric Yang <eric.yang2@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +Signed-off-by: Rahul Kumar <rahul.kumar1@amd.com> +--- + drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 7 +++++++ + drivers/gpu/drm/amd/display/include/dal_asic_id.h | 11 +++++------ + 2 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c +index 3d42bb4355f8..5f64036982fc 100644 +--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c ++++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c +@@ -134,6 +134,13 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p + + #if defined(CONFIG_DRM_AMD_DC_DCN1_0) + case FAMILY_RV: ++ if (ASICREV_IS_DALI(asic_id.hw_internal_rev)) { ++ /* TEMP: this check has to come before ASICREV_IS_RENOIR */ ++ /* which also incorrectly returns true for Dali */ ++ rv2_clk_mgr_construct(ctx, clk_mgr, pp_smu); ++ break; ++ } ++ + #if defined(CONFIG_DRM_AMD_DC_DCN2_1) + if (ASICREV_IS_RENOIR(asic_id.hw_internal_rev)) { + rn_clk_mgr_construct(ctx, clk_mgr, pp_smu, dccg); +diff --git a/drivers/gpu/drm/amd/display/include/dal_asic_id.h b/drivers/gpu/drm/amd/display/include/dal_asic_id.h +index d51fe99349ed..0b4f5fde387b 100644 +--- a/drivers/gpu/drm/amd/display/include/dal_asic_id.h ++++ b/drivers/gpu/drm/amd/display/include/dal_asic_id.h +@@ -134,18 +134,17 @@ + /* DCN1_01 */ + #define PICASSO_A0 0x41 + #define RAVEN2_A0 0x81 ++#define RAVEN2_15D8_REV_E3 0xE3 ++#define RAVEN2_15D8_REV_E4 0xE4 + #define RAVEN1_F0 0xF0 + #define RAVEN_UNKNOWN 0xFF + +-#define PICASSO_15D8_REV_E3 0xE3 +-#define PICASSO_15D8_REV_E4 0xE4 +- + #define ASICREV_IS_RAVEN(eChipRev) ((eChipRev >= RAVEN_A0) && eChipRev < RAVEN_UNKNOWN) + #define ASICREV_IS_PICASSO(eChipRev) ((eChipRev >= PICASSO_A0) && (eChipRev < RAVEN2_A0)) +-#define ASICREV_IS_RAVEN2(eChipRev) ((eChipRev >= RAVEN2_A0) && (eChipRev < PICASSO_15D8_REV_E3)) +-#define ASICREV_IS_DALI(eChipRev) ((eChipRev >= PICASSO_15D8_REV_E3) && (eChipRev < RAVEN1_F0)) +- ++#define ASICREV_IS_RAVEN2(eChipRev) ((eChipRev >= RAVEN2_A0) && (eChipRev < RAVEN1_F0)) + #define ASICREV_IS_RV1_F0(eChipRev) ((eChipRev >= RAVEN1_F0) && (eChipRev < RAVEN_UNKNOWN)) ++#define ASICREV_IS_DALI(eChipRev) ((eChipRev == RAVEN2_15D8_REV_E3) \ ++ || (eChipRev == RAVEN2_15D8_REV_E4)) + + #define FAMILY_RV 142 /* DCN 1*/ + +-- +2.17.1 + |