From 1b2c65e94e6bcd3b36f799c880162fb3b3394ed4 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 7 Dec 2019 16:32:55 -0600 Subject: [PATCH 3/3] amdgpu: Wrap FPU dependent functions in dc20 dc20 containes several FPU-dependent functions without proper FPU kernel mode enable/disable wrappers. Add the required wrappers for both x86 and POWER. This enables Navi DC20 support for POWER systems. Signed-off-by: Timothy Pearson --- .../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c index 254973751732..95303b77bfd6 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c @@ -2917,14 +2917,19 @@ static bool dcn20_validate_bandwidth_internal(struct dc *dc, struct dc_state *co bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context, bool fast_validate) { + DC_FP_START() + bool voltage_supported = false; bool full_pstate_supported = false; bool dummy_pstate_supported = false; double p_state_latency_us = context->bw_ctx.dml.soc.dram_clock_change_latency_us; - if (fast_validate) - return dcn20_validate_bandwidth_internal(dc, context, true); + if (fast_validate) { + voltage_supported = dcn20_validate_bandwidth_internal(dc, context, true); + DC_FP_END() + return voltage_supported; + } // Best case, we support full UCLK switch latency voltage_supported = dcn20_validate_bandwidth_internal(dc, context, false); @@ -2953,6 +2958,7 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context, restore_dml_state: context->bw_ctx.dml.soc.dram_clock_change_latency_us = p_state_latency_us; + DC_FP_END() return voltage_supported; } @@ -3472,6 +3478,8 @@ static bool construct( enum dml_project dml_project_version = get_dml_project_version(ctx->asic_id.hw_internal_rev); + DC_FP_START() + ctx->dc_bios->regs = &bios_regs; pool->base.funcs = &dcn20_res_pool_funcs; @@ -3760,10 +3768,12 @@ static bool construct( dc->cap_funcs = cap_funcs; + DC_FP_END() return true; create_fail: + DC_FP_END() destruct(pool); return false; -- 2.20.1