lkml.org 
[lkml]   [2021]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 362/601] drm/amd/display: check fb of primary plane
    Date
    From: Sefa Eyeoglu <contact@scrumplex.net>

    [ Upstream commit 7df4ceb60fa9a3c5160cfd5b696657291934a2c9 ]

    Sometimes the primary plane might not be initialized (yet), which
    causes dm_check_crtc_cursor to divide by zero.
    Apparently a weird state before a S3-suspend causes the aforementioned
    divide-by-zero error when resuming from S3. This was explained in
    bug 212293 on Bugzilla.

    To avoid this divide-by-zero error we check if the primary plane's fb
    isn't NULL. If it's NULL the src_w and src_h attributes will be 0,
    which would cause a divide-by-zero.

    This fixes Bugzilla report 212293
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=212293

    Fixes: 12f4849a1cfd69f3 ("drm/amd/display: check cursor scaling")
    Reviewed-by: Simon Ser <contact@emersion.fr>
    Reviewed-by: Harry Wentland <harry.wentland@amd.com>
    Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    index d7d2cf8b53f4..36898ae63f30 100644
    --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    @@ -9119,7 +9119,8 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,

    new_cursor_state = drm_atomic_get_new_plane_state(state, crtc->cursor);
    new_primary_state = drm_atomic_get_new_plane_state(state, crtc->primary);
    - if (!new_cursor_state || !new_primary_state || !new_cursor_state->fb) {
    + if (!new_cursor_state || !new_primary_state ||
    + !new_cursor_state->fb || !new_primary_state->fb) {
    return 0;
    }

    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-12 19:40    [W:4.466 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site