• Rodrigo Siqueira's avatar
    drm/amd/display: Avoid set zero in the requested clk · 2f8be0e5
    Rodrigo Siqueira authored
    [Why]
    Sometimes CRTCs can be disabled due to display unplugging or temporarily
    transition in the userspace; in these circumstances, DCE tries to set
    the minimum clock threshold. When we have this situation, the function
    bw_calcs is invoked with number_of_displays set to zero, making DCE set
    dispclk_khz and sclk_khz to zero. For these reasons, we have seen some
    ATOM bios errors that look like:
    
    [drm:atom_op_jump [amdgpu]] *ERROR* atombios stuck in loop for more than
    5secs aborting
    [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck
    executing EA8A (len 761, WS 0, PS 0) @ 0xEABA
    
    [How]
    This error happens due to an attempt to optimize the bandwidth using the
    sclk, and the dispclk clock set to zero. Technically we handle this in
    the function dce112_set_clock, but we are not considering the case that
    this value is set to zero. This commit fixes this issue by ensuring that
    we never set a minimum value below the minimum clock threshold.
    Signed-off-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Acked-by: default avatarEryk Brol <eryk.brol@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    2f8be0e5
dce112_clk_mgr.c 8.27 KB