Commit a0fce84c authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/plane-helper: Move drm_plane_helper_atomic_check() into udl



The udl driver is the only caller of drm_plane_helper_atomic_check().
Move the function into the driver. No functional changes.

v2:
	* fix documenation (Sui)

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Acked-by: default avatarSui Jingfeng <suijingfeng@loongson.cn>
Link: https://patchwork.freedesktop.org/patch/msgid/20231204090852.1650-2-tzimmermann@suse.de
parent 94f8f319
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -439,11 +439,8 @@ EXPORT_SYMBOL(drm_crtc_helper_set_mode);
 * @state: atomic state object
 *
 * Provides a default CRTC-state check handler for CRTCs that only have
 * one primary plane attached to it.
 *
 * This is often the case for the CRTC of simple framebuffers. See also
 * drm_plane_helper_atomic_check() for the respective plane-state check
 * helper function.
 * one primary plane attached to it. This is often the case for the CRTC
 * of simple framebuffers.
 *
 * RETURNS:
 * Zero on success, or an errno code otherwise.
+0 −32
Original line number Diff line number Diff line
@@ -279,35 +279,3 @@ void drm_plane_helper_destroy(struct drm_plane *plane)
	kfree(plane);
}
EXPORT_SYMBOL(drm_plane_helper_destroy);

/**
 * drm_plane_helper_atomic_check() - Helper to check plane atomic-state
 * @plane: plane to check
 * @state: atomic state object
 *
 * Provides a default plane-state check handler for planes whose atomic-state
 * scale and positioning are not expected to change since the plane is always
 * a fullscreen scanout buffer.
 *
 * This is often the case for the primary plane of simple framebuffers. See
 * also drm_crtc_helper_atomic_check() for the respective CRTC-state check
 * helper function.
 *
 * RETURNS:
 * Zero on success, or an errno code otherwise.
 */
int drm_plane_helper_atomic_check(struct drm_plane *plane, struct drm_atomic_state *state)
{
	struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane);
	struct drm_crtc *new_crtc = new_plane_state->crtc;
	struct drm_crtc_state *new_crtc_state = NULL;

	if (new_crtc)
		new_crtc_state = drm_atomic_get_new_crtc_state(state, new_crtc);

	return drm_atomic_helper_check_plane_state(new_plane_state, new_crtc_state,
						   DRM_PLANE_NO_SCALING,
						   DRM_PLANE_NO_SCALING,
						   false, false);
}
EXPORT_SYMBOL(drm_plane_helper_atomic_check);
+17 −2
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_gem_shmem_helper.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/drm_plane_helper.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>

@@ -261,6 +260,22 @@ static const uint64_t udl_primary_plane_fmtmods[] = {
	DRM_FORMAT_MOD_INVALID
};

static int udl_primary_plane_helper_atomic_check(struct drm_plane *plane,
						 struct drm_atomic_state *state)
{
	struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane);
	struct drm_crtc *new_crtc = new_plane_state->crtc;
	struct drm_crtc_state *new_crtc_state = NULL;

	if (new_crtc)
		new_crtc_state = drm_atomic_get_new_crtc_state(state, new_crtc);

	return drm_atomic_helper_check_plane_state(new_plane_state, new_crtc_state,
						   DRM_PLANE_NO_SCALING,
						   DRM_PLANE_NO_SCALING,
						   false, false);
}

static void udl_primary_plane_helper_atomic_update(struct drm_plane *plane,
						   struct drm_atomic_state *state)
{
@@ -296,7 +311,7 @@ static void udl_primary_plane_helper_atomic_update(struct drm_plane *plane,

static const struct drm_plane_helper_funcs udl_primary_plane_helper_funcs = {
	DRM_GEM_SHADOW_PLANE_HELPER_FUNCS,
	.atomic_check = drm_plane_helper_atomic_check,
	.atomic_check = udl_primary_plane_helper_atomic_check,
	.atomic_update = udl_primary_plane_helper_atomic_update,
};

+0 −2
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@

#include <linux/types.h>

struct drm_atomic_state;
struct drm_crtc;
struct drm_framebuffer;
struct drm_modeset_acquire_ctx;
@@ -42,7 +41,6 @@ int drm_plane_helper_update_primary(struct drm_plane *plane, struct drm_crtc *cr
int drm_plane_helper_disable_primary(struct drm_plane *plane,
				     struct drm_modeset_acquire_ctx *ctx);
void drm_plane_helper_destroy(struct drm_plane *plane);
int drm_plane_helper_atomic_check(struct drm_plane *plane, struct drm_atomic_state *state);

/**
 * DRM_PLANE_NON_ATOMIC_FUNCS - Default plane functions for non-atomic drivers