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: YT Shen <yt.shen@mediatek.com> Acked-by: CK Hu <ck.hu@mediatek.com>
This commit is contained in:
parent
e3215713f8
commit
55dc065e3e
|
@ -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)
|
||||||
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 {
|
||||||
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,
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue