Commit 0ae622c5 authored by Xu YiPing's avatar Xu YiPing Committed by Sam Ravnborg
Browse files

drm: kirin: Rename ade_plane to kirin_plane



As part of refactoring the kirin driver to better support
different hardware revisions, this patch renames the
struct ade_plane to kirin_plane.

The struct kirin_plane will later used by both kirin620 and
future kirin960 driver, and will be moved to a common
kirin_drm_drv.h in a future patch

Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: default avatarXinliang Liu <z.liuxinliang@hisilicon.com>
Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
Signed-off-by: default avatarXu YiPing <xuyiping@hisilicon.com>
[jstultz: reworded commit message]
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190820230626.23253-7-john.stultz@linaro.org
parent a202da16
Loading
Loading
Loading
Loading
+29 −28
Original line number Diff line number Diff line
@@ -41,8 +41,9 @@
#define to_ade_crtc(crtc) \
	container_of(crtc, struct ade_crtc, base)

#define to_ade_plane(plane) \
	container_of(plane, struct ade_plane, base)
#define to_kirin_plane(plane) \
	container_of(plane, struct kirin_plane, base)


struct ade_hw_ctx {
	void __iomem  *base;
@@ -62,15 +63,15 @@ struct ade_crtc {
	bool enable;
};

struct ade_plane {
struct kirin_plane {
	struct drm_plane base;
	void *ctx;
	u8 ch; /* channel */
	void *hw_ctx;
	u32 ch;
};

struct ade_data {
	struct ade_crtc acrtc;
	struct ade_plane aplane[ADE_CH_NUM];
	struct kirin_plane planes[ADE_CH_NUM];
	struct ade_hw_ctx ctx;
};

@@ -795,16 +796,16 @@ static void ade_compositor_routing_disable(void __iomem *base, u32 ch)
/*
 * Typicaly, a channel looks like: DMA-->clip-->scale-->ctrans-->compositor
 */
static void ade_update_channel(struct ade_plane *aplane,
static void ade_update_channel(struct kirin_plane *kplane,
			       struct drm_framebuffer *fb, int crtc_x,
			       int crtc_y, unsigned int crtc_w,
			       unsigned int crtc_h, u32 src_x,
			       u32 src_y, u32 src_w, u32 src_h)
{
	struct ade_hw_ctx *ctx = aplane->ctx;
	struct ade_hw_ctx *ctx = kplane->hw_ctx;
	void __iomem *base = ctx->base;
	u32 fmt = ade_get_format(fb->format->format);
	u32 ch = aplane->ch;
	u32 ch = kplane->ch;
	u32 in_w;
	u32 in_h;

@@ -828,11 +829,11 @@ static void ade_update_channel(struct ade_plane *aplane,
	ade_compositor_routing_set(base, ch, crtc_x, crtc_y, in_w, in_h, fmt);
}

static void ade_disable_channel(struct ade_plane *aplane)
static void ade_disable_channel(struct kirin_plane *kplane)
{
	struct ade_hw_ctx *ctx = aplane->ctx;
	struct ade_hw_ctx *ctx = kplane->hw_ctx;
	void __iomem *base = ctx->base;
	u32 ch = aplane->ch;
	u32 ch = kplane->ch;

	DRM_DEBUG_DRIVER("disable channel%d\n", ch + 1);

@@ -895,9 +896,9 @@ static void ade_plane_atomic_update(struct drm_plane *plane,
				    struct drm_plane_state *old_state)
{
	struct drm_plane_state *state = plane->state;
	struct ade_plane *aplane = to_ade_plane(plane);
	struct kirin_plane *kplane = to_kirin_plane(plane);

	ade_update_channel(aplane, state->fb, state->crtc_x, state->crtc_y,
	ade_update_channel(kplane, state->fb, state->crtc_x, state->crtc_y,
			   state->crtc_w, state->crtc_h,
			   state->src_x >> 16, state->src_y >> 16,
			   state->src_w >> 16, state->src_h >> 16);
@@ -906,9 +907,9 @@ static void ade_plane_atomic_update(struct drm_plane *plane,
static void ade_plane_atomic_disable(struct drm_plane *plane,
				     struct drm_plane_state *old_state)
{
	struct ade_plane *aplane = to_ade_plane(plane);
	struct kirin_plane *kplane = to_kirin_plane(plane);

	ade_disable_channel(aplane);
	ade_disable_channel(kplane);
}

static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
@@ -926,7 +927,7 @@ static struct drm_plane_funcs ade_plane_funcs = {
	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
};

static int ade_plane_init(struct drm_device *dev, struct ade_plane *aplane,
static int ade_plane_init(struct drm_device *dev, struct kirin_plane *kplane,
			  enum drm_plane_type type)
{
	const u32 *fmts;
@@ -934,18 +935,18 @@ static int ade_plane_init(struct drm_device *dev, struct ade_plane *aplane,
	int ret = 0;

	/* get  properties */
	fmts_cnt = ade_get_channel_formats(aplane->ch, &fmts);
	fmts_cnt = ade_get_channel_formats(kplane->ch, &fmts);
	if (ret)
		return ret;

	ret = drm_universal_plane_init(dev, &aplane->base, 1, &ade_plane_funcs,
	ret = drm_universal_plane_init(dev, &kplane->base, 1, &ade_plane_funcs,
				       fmts, fmts_cnt, NULL, type, NULL);
	if (ret) {
		DRM_ERROR("fail to init plane, ch=%d\n", aplane->ch);
		DRM_ERROR("fail to init plane, ch=%d\n", kplane->ch);
		return ret;
	}

	drm_plane_helper_add(&aplane->base, &ade_plane_helper_funcs);
	drm_plane_helper_add(&kplane->base, &ade_plane_helper_funcs);

	return 0;
}
@@ -1007,7 +1008,7 @@ static int ade_drm_init(struct platform_device *pdev)
	struct ade_data *ade;
	struct ade_hw_ctx *ctx;
	struct ade_crtc *acrtc;
	struct ade_plane *aplane;
	struct kirin_plane *kplane;
	enum drm_plane_type type;
	int ret;
	int i;
@@ -1033,19 +1034,19 @@ static int ade_drm_init(struct platform_device *pdev)
	 * need to do.
	 */
	for (i = 0; i < ADE_CH_NUM; i++) {
		aplane = &ade->aplane[i];
		aplane->ch = i;
		aplane->ctx = ctx;
		kplane = &ade->planes[i];
		kplane->ch = i;
		kplane->hw_ctx = ctx;
		type = i == PRIMARY_CH ? DRM_PLANE_TYPE_PRIMARY :
			DRM_PLANE_TYPE_OVERLAY;

		ret = ade_plane_init(dev, aplane, type);
		ret = ade_plane_init(dev, kplane, type);
		if (ret)
			return ret;
	}

	/* crtc init */
	ret = ade_crtc_init(dev, &acrtc->base, &ade->aplane[PRIMARY_CH].base);
	ret = ade_crtc_init(dev, &acrtc->base, &ade->planes[PRIMARY_CH].base);
	if (ret)
		return ret;