Commit 55dc065e authored by yt.shen@mediatek.com's avatar yt.shen@mediatek.com Committed by CK Hu

drm/mediatek: add helpers for coverting from the generic components

define helpers for converting from 'mtk_ddp_comp' to 'mtk_disp_ovl'
define helpers for converting from 'mtk_ddp_comp' to 'mtk_disp_rdma'
Signed-off-by: default avatarYT Shen <yt.shen@mediatek.com>
Acked-by: default avatarCK Hu <ck.hu@mediatek.com>
parent e3215713
...@@ -57,6 +57,11 @@ struct mtk_disp_ovl { ...@@ -57,6 +57,11 @@ struct mtk_disp_ovl {
struct drm_crtc *crtc; struct drm_crtc *crtc;
}; };
static inline struct mtk_disp_ovl *comp_to_ovl(struct mtk_ddp_comp *comp)
{
return container_of(comp, struct mtk_disp_ovl, ddp_comp);
}
static irqreturn_t mtk_disp_ovl_irq_handler(int irq, void *dev_id) static irqreturn_t mtk_disp_ovl_irq_handler(int irq, void *dev_id)
{ {
struct mtk_disp_ovl *priv = dev_id; struct mtk_disp_ovl *priv = dev_id;
...@@ -76,20 +81,18 @@ static irqreturn_t mtk_disp_ovl_irq_handler(int irq, void *dev_id) ...@@ -76,20 +81,18 @@ static irqreturn_t mtk_disp_ovl_irq_handler(int irq, void *dev_id)
static void mtk_ovl_enable_vblank(struct mtk_ddp_comp *comp, static void mtk_ovl_enable_vblank(struct mtk_ddp_comp *comp,
struct drm_crtc *crtc) struct drm_crtc *crtc)
{ {
struct mtk_disp_ovl *priv = container_of(comp, struct mtk_disp_ovl, struct mtk_disp_ovl *ovl = comp_to_ovl(comp);
ddp_comp);
priv->crtc = crtc; ovl->crtc = crtc;
writel(0x0, comp->regs + DISP_REG_OVL_INTSTA); writel(0x0, comp->regs + DISP_REG_OVL_INTSTA);
writel_relaxed(OVL_FME_CPL_INT, comp->regs + DISP_REG_OVL_INTEN); writel_relaxed(OVL_FME_CPL_INT, comp->regs + DISP_REG_OVL_INTEN);
} }
static void mtk_ovl_disable_vblank(struct mtk_ddp_comp *comp) static void mtk_ovl_disable_vblank(struct mtk_ddp_comp *comp)
{ {
struct mtk_disp_ovl *priv = container_of(comp, struct mtk_disp_ovl, struct mtk_disp_ovl *ovl = comp_to_ovl(comp);
ddp_comp);
priv->crtc = NULL; ovl->crtc = NULL;
writel_relaxed(0x0, comp->regs + DISP_REG_OVL_INTEN); writel_relaxed(0x0, comp->regs + DISP_REG_OVL_INTEN);
} }
......
...@@ -49,6 +49,11 @@ struct mtk_disp_rdma { ...@@ -49,6 +49,11 @@ struct mtk_disp_rdma {
struct drm_crtc *crtc; struct drm_crtc *crtc;
}; };
static inline struct mtk_disp_rdma *comp_to_rdma(struct mtk_ddp_comp *comp)
{
return container_of(comp, struct mtk_disp_rdma, ddp_comp);
}
static irqreturn_t mtk_disp_rdma_irq_handler(int irq, void *dev_id) static irqreturn_t mtk_disp_rdma_irq_handler(int irq, void *dev_id)
{ {
struct mtk_disp_rdma *priv = dev_id; struct mtk_disp_rdma *priv = dev_id;
...@@ -77,20 +82,18 @@ static void rdma_update_bits(struct mtk_ddp_comp *comp, unsigned int reg, ...@@ -77,20 +82,18 @@ static void rdma_update_bits(struct mtk_ddp_comp *comp, unsigned int reg,
static void mtk_rdma_enable_vblank(struct mtk_ddp_comp *comp, static void mtk_rdma_enable_vblank(struct mtk_ddp_comp *comp,
struct drm_crtc *crtc) struct drm_crtc *crtc)
{ {
struct mtk_disp_rdma *priv = container_of(comp, struct mtk_disp_rdma, struct mtk_disp_rdma *rdma = comp_to_rdma(comp);
ddp_comp);
priv->crtc = crtc; rdma->crtc = crtc;
rdma_update_bits(comp, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT, rdma_update_bits(comp, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT,
RDMA_FRAME_END_INT); RDMA_FRAME_END_INT);
} }
static void mtk_rdma_disable_vblank(struct mtk_ddp_comp *comp) static void mtk_rdma_disable_vblank(struct mtk_ddp_comp *comp)
{ {
struct mtk_disp_rdma *priv = container_of(comp, struct mtk_disp_rdma, struct mtk_disp_rdma *rdma = comp_to_rdma(comp);
ddp_comp);
priv->crtc = NULL; rdma->crtc = NULL;
rdma_update_bits(comp, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT, 0); rdma_update_bits(comp, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT, 0);
} }
......
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