#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;
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;
};
/*
* 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;
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);
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);
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 = {
.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;
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;
}
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;
* 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;