Commit 7df4ceb6 authored by Sefa Eyeoglu's avatar Sefa Eyeoglu Committed by Alex Deucher
Browse files

drm/amd/display: check fb of primary plane

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

Fixes: 12f4849a

 ("drm/amd/display: check cursor scaling")
Reviewed-by: Simon Ser's avatarSimon Ser <>
Reviewed-by: Harry Wentland's avatarHarry Wentland <>
Signed-off-by: Sefa Eyeoglu's avatarSefa Eyeoglu <>
Signed-off-by: default avatarAlex Deucher <>
parent 5af50b0b
......@@ -9765,7 +9765,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;
Supports Markdown
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