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

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
......@@ -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;
......
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