Commit 6ffdf886 authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/cirrus: Inline cirrus_check_size() into primary-plane atomic_check

Inline the framebuffer size check into the primary plane's atomic_check
cirrus_primary_plane_atomic_check(). No functional changes.
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-15-tzimmermann@suse.de
parent f8ad3379
...@@ -317,21 +317,6 @@ static void cirrus_pitch_set(struct cirrus_device *cirrus, ...@@ -317,21 +317,6 @@ static void cirrus_pitch_set(struct cirrus_device *cirrus,
cirrus_set_start_address(cirrus, 0); cirrus_set_start_address(cirrus, 0);
} }
static int cirrus_check_size(int width, int height,
struct drm_framebuffer *fb)
{
int pitch = width * 2;
if (fb)
pitch = cirrus_pitch(fb);
if (pitch > CIRRUS_MAX_PITCH)
return -EINVAL;
if (pitch * height > CIRRUS_VRAM_SIZE)
return -EINVAL;
return 0;
}
/* ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ */
/* cirrus display pipe */ /* cirrus display pipe */
...@@ -354,6 +339,7 @@ static int cirrus_primary_plane_helper_atomic_check(struct drm_plane *plane, ...@@ -354,6 +339,7 @@ static int cirrus_primary_plane_helper_atomic_check(struct drm_plane *plane,
struct drm_crtc *new_crtc = new_plane_state->crtc; struct drm_crtc *new_crtc = new_plane_state->crtc;
struct drm_crtc_state *new_crtc_state = NULL; struct drm_crtc_state *new_crtc_state = NULL;
int ret; int ret;
unsigned int pitch;
if (new_crtc) if (new_crtc)
new_crtc_state = drm_atomic_get_new_crtc_state(state, new_crtc); new_crtc_state = drm_atomic_get_new_crtc_state(state, new_crtc);
...@@ -367,7 +353,15 @@ static int cirrus_primary_plane_helper_atomic_check(struct drm_plane *plane, ...@@ -367,7 +353,15 @@ static int cirrus_primary_plane_helper_atomic_check(struct drm_plane *plane,
else if (!new_plane_state->visible) else if (!new_plane_state->visible)
return 0; return 0;
return cirrus_check_size(fb->width, fb->height, fb); pitch = cirrus_pitch(fb);
/* validate size constraints */
if (pitch > CIRRUS_MAX_PITCH)
return -EINVAL;
else if (pitch * fb->height > CIRRUS_VRAM_SIZE)
return -EINVAL;
return 0;
} }
static void cirrus_primary_plane_helper_atomic_update(struct drm_plane *plane, static void cirrus_primary_plane_helper_atomic_update(struct drm_plane *plane,
......
Markdown is supported
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