summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
diff options
context:
space:
mode:
authorXu YiPing <xuyiping@hisilicon.com>2019-08-20 23:06:07 +0000
committerSam Ravnborg <sam@ravnborg.org>2019-08-21 19:15:35 +0200
commit0ae622c5327bf98d005cc6e3db534e14d742194c (patch)
treea3a8a9f6577677ce1a9246529ed6bc702351d1b4 /drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
parenta202da164321c762c8592b129e5162b38446d7a9 (diff)
downloadlinux-0ae622c5327bf98d005cc6e3db534e14d742194c.tar.bz2
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: Xinliang Liu <z.liuxinliang@hisilicon.com> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Xu YiPing <xuyiping@hisilicon.com> [jstultz: reworded commit message] Signed-off-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190820230626.23253-7-john.stultz@linaro.org
Diffstat (limited to 'drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c')
-rw-r--r--drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c57
1 files changed, 29 insertions, 28 deletions
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 65f1a57f7304..19d279167694 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -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);
@@ -894,10 +895,10 @@ static int ade_plane_atomic_check(struct drm_plane *plane,
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 drm_plane_state *state = plane->state;
+ 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;