Commit b0ce6272 authored by Meenakshikumar Somasundaram's avatar Meenakshikumar Somasundaram Committed by Alex Deucher

drm/amd/display: Add dpia debug options

[Why & How]
To add support for dpia debug options.
Reviewed-by: default avatarJimmy Kizito <Jimmy.Kizito@amd.com>
Acked-by: default avatarWayne Lin <Wayne.Lin@amd.com>
Acked-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarMeenakshikumar Somasundaram <meenakshikumar.somasundaram@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e8536806
...@@ -496,6 +496,14 @@ union root_clock_optimization_options { ...@@ -496,6 +496,14 @@ union root_clock_optimization_options {
uint32_t u32All; uint32_t u32All;
}; };
union dpia_debug_options {
struct {
uint32_t disable_dpia:1;
uint32_t reserved:31;
} bits;
uint32_t raw;
};
struct dc_debug_data { struct dc_debug_data {
uint32_t ltFailCount; uint32_t ltFailCount;
uint32_t i2cErrorCount; uint32_t i2cErrorCount;
...@@ -668,6 +676,7 @@ struct dc_debug_options { ...@@ -668,6 +676,7 @@ struct dc_debug_options {
#if defined(CONFIG_DRM_AMD_DC_DCN) #if defined(CONFIG_DRM_AMD_DC_DCN)
bool disable_z10; bool disable_z10;
bool enable_sw_cntl_psr; bool enable_sw_cntl_psr;
union dpia_debug_options dpia_debug;
#endif #endif
}; };
......
...@@ -2428,7 +2428,8 @@ static bool dcn31_resource_construct( ...@@ -2428,7 +2428,8 @@ static bool dcn31_resource_construct(
} }
if (dc->ctx->asic_id.chip_family == FAMILY_YELLOW_CARP && if (dc->ctx->asic_id.chip_family == FAMILY_YELLOW_CARP &&
dc->ctx->asic_id.hw_internal_rev == YELLOW_CARP_B0) { dc->ctx->asic_id.hw_internal_rev == YELLOW_CARP_B0 &&
!dc->debug.dpia_debug.bits.disable_dpia) {
/* YELLOW CARP B0 has 4 DPIA's */ /* YELLOW CARP B0 has 4 DPIA's */
pool->base.usb4_dpia_count = 4; pool->base.usb4_dpia_count = 4;
} }
......
...@@ -237,6 +237,7 @@ struct dmub_srv_hw_params { ...@@ -237,6 +237,7 @@ struct dmub_srv_hw_params {
bool load_inst_const; bool load_inst_const;
bool skip_panel_power_sequence; bool skip_panel_power_sequence;
bool disable_z10; bool disable_z10;
bool disable_dpia;
}; };
/** /**
......
...@@ -368,8 +368,7 @@ union dmub_fw_boot_options { ...@@ -368,8 +368,7 @@ union dmub_fw_boot_options {
uint32_t disable_clk_gate: 1; /**< 1 if clock gating should be disabled */ uint32_t disable_clk_gate: 1; /**< 1 if clock gating should be disabled */
uint32_t skip_phy_init_panel_sequence: 1; /**< 1 to skip panel init seq */ uint32_t skip_phy_init_panel_sequence: 1; /**< 1 to skip panel init seq */
uint32_t z10_disable: 1; /**< 1 to disable z10 */ uint32_t z10_disable: 1; /**< 1 to disable z10 */
uint32_t reserved2: 1; /**< reserved for an unreleased feature */ uint32_t enable_dpia: 1; /**< 1 if DPIA should be enabled */
uint32_t reserved_unreleased1: 1; /**< reserved for an unreleased feature */
uint32_t invalid_vbios_data: 1; /**< 1 if VBIOS data table is invalid */ uint32_t invalid_vbios_data: 1; /**< 1 if VBIOS data table is invalid */
uint32_t reserved_unreleased2: 1; /**< reserved for an unreleased feature */ uint32_t reserved_unreleased2: 1; /**< reserved for an unreleased feature */
uint32_t reserved : 22; /**< reserved */ uint32_t reserved : 22; /**< reserved */
......
...@@ -338,6 +338,7 @@ void dmub_dcn31_enable_dmub_boot_options(struct dmub_srv *dmub, const struct dmu ...@@ -338,6 +338,7 @@ void dmub_dcn31_enable_dmub_boot_options(struct dmub_srv *dmub, const struct dmu
union dmub_fw_boot_options boot_options = {0}; union dmub_fw_boot_options boot_options = {0};
boot_options.bits.z10_disable = params->disable_z10; boot_options.bits.z10_disable = params->disable_z10;
boot_options.bits.enable_dpia = params->disable_dpia ? 0 : 1;
REG_WRITE(DMCUB_SCRATCH14, boot_options.all); REG_WRITE(DMCUB_SCRATCH14, boot_options.all);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment