Skip to content

Commit

Permalink
drm/mediatek: add mutex sof register offset into ddp private data
Browse files Browse the repository at this point in the history
mutex sof register offset will be private data of ddp

Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
Signed-off-by: CK Hu <ck.hu@mediatek.com>
  • Loading branch information
Yongqiang Niu authored and CK Hu committed Oct 9, 2019
1 parent 1c7da0c commit 1037edf
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/gpu/drm/mediatek/mtk_drm_ddp.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,13 @@
#define DISP_REG_CONFIG_DPI_SEL 0x064

#define MT2701_DISP_MUTEX0_MOD0 0x2c
#define MT2701_DISP_MUTEX0_SOF0 0x30

#define DISP_REG_MUTEX_EN(n) (0x20 + 0x20 * (n))
#define DISP_REG_MUTEX(n) (0x24 + 0x20 * (n))
#define DISP_REG_MUTEX_RST(n) (0x28 + 0x20 * (n))
#define DISP_REG_MUTEX_MOD(mutex_mod_reg, n) (mutex_mod_reg + 0x20 * (n))
#define DISP_REG_MUTEX_SOF(n) (0x30 + 0x20 * (n))
#define DISP_REG_MUTEX_SOF(mutex_sof_reg, n) (mutex_sof_reg + 0x20 * (n))
#define DISP_REG_MUTEX_MOD2(n) (0x34 + 0x20 * (n))

#define INT_MUTEX BIT(1)
Expand Down Expand Up @@ -155,6 +156,7 @@ struct mtk_ddp_data {
const unsigned int *mutex_mod;
const unsigned int *mutex_sof;
const unsigned int mutex_mod_reg;
const unsigned int mutex_sof_reg;
};

struct mtk_ddp {
Expand Down Expand Up @@ -226,18 +228,21 @@ static const struct mtk_ddp_data mt2701_ddp_driver_data = {
.mutex_mod = mt2701_mutex_mod,
.mutex_sof = mt2712_mutex_sof,
.mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0,
.mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0,
};

static const struct mtk_ddp_data mt2712_ddp_driver_data = {
.mutex_mod = mt2712_mutex_mod,
.mutex_sof = mt2712_mutex_sof,
.mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0,
.mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0,
};

static const struct mtk_ddp_data mt8173_ddp_driver_data = {
.mutex_mod = mt8173_mutex_mod,
.mutex_sof = mt2712_mutex_sof,
.mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0,
.mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0,
};

static unsigned int mtk_ddp_mout_en(enum mtk_ddp_comp_id cur,
Expand Down Expand Up @@ -519,7 +524,8 @@ void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex,
}

writel_relaxed(ddp->data->mutex_sof[sof_id],
ddp->regs + DISP_REG_MUTEX_SOF(mutex->id));
ddp->regs +
DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, mutex->id));
}

void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex,
Expand All @@ -541,7 +547,8 @@ void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex,
case DDP_COMPONENT_DPI1:
writel_relaxed(MUTEX_SOF_SINGLE_MODE,
ddp->regs +
DISP_REG_MUTEX_SOF(mutex->id));
DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg,
mutex->id));
break;
default:
if (ddp->data->mutex_mod[id] < 32) {
Expand Down

0 comments on commit 1037edf

Please sign in to comment.