lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0904/1039] drm/amdgpu/display: Only set vblank_disable_immediate when PSR is not enabled
    Date
    From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>

    commit 70897848730470cc477d5d89e6222c0f6a9ac173 upstream.

    [Why]
    PSR currently relies on the kernel's delayed vblank on/off mechanism
    as an implicit bufferring mechanism to prevent excessive entry/exit.

    Without this delay the user experience is impacted since it can take
    a few frames to enter/exit.

    [How]
    Only allow vblank disable immediate for DC when psr is not supported.

    Leave a TODO indicating that this support should be extended in the
    future to delay independent of the vblank interrupt.

    Fixes: 92020e81ddbeac ("drm/amdgpu/display: set vblank_disable_immediate for DC")

    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Harry Wentland <harry.wentland@amd.com>
    Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++++++++---
    1 file changed, 8 insertions(+), 3 deletions(-)

    --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    @@ -1598,9 +1598,6 @@ static int amdgpu_dm_init(struct amdgpu_
    adev_to_drm(adev)->mode_config.cursor_width = adev->dm.dc->caps.max_cursor_size;
    adev_to_drm(adev)->mode_config.cursor_height = adev->dm.dc->caps.max_cursor_size;

    - /* Disable vblank IRQs aggressively for power-saving */
    - adev_to_drm(adev)->vblank_disable_immediate = true;
    -
    if (drm_vblank_init(adev_to_drm(adev), adev->dm.display_indexes_num)) {
    DRM_ERROR(
    "amdgpu: failed to initialize sw for display support.\n");
    @@ -4285,6 +4282,14 @@ static int amdgpu_dm_initialize_drm_devi

    }

    + /*
    + * Disable vblank IRQs aggressively for power-saving.
    + *
    + * TODO: Fix vblank control helpers to delay PSR entry to allow this when PSR
    + * is also supported.
    + */
    + adev_to_drm(adev)->vblank_disable_immediate = !psr_feature_enabled;
    +
    /* Software is initialized. Now we can register interrupt handlers. */
    switch (adev->asic_type) {
    #if defined(CONFIG_DRM_AMD_DC_SI)

    \
     
     \ /
      Last update: 2022-01-25 04:09    [W:2.337 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site