Commit 9403f9a4 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Rob Clark

drm/msm/dpu: merge base_off with blk_off in struct dpu_hw_blk_reg_map

There is little point in keeping a separate MDP address and block offset
in this struct. Merge them to form a new blk_addr field used for all
register access.
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarAbhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/488017/
Link: https://lore.kernel.org/r/20220601161349.1517667-4-dmitry.baryshkov@linaro.orgSigned-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 1e5df24b
...@@ -58,8 +58,7 @@ static const struct dpu_ctl_cfg *_ctl_offset(enum dpu_ctl ctl, ...@@ -58,8 +58,7 @@ static const struct dpu_ctl_cfg *_ctl_offset(enum dpu_ctl ctl,
for (i = 0; i < m->ctl_count; i++) { for (i = 0; i < m->ctl_count; i++) {
if (ctl == m->ctl[i].id) { if (ctl == m->ctl[i].id) {
b->base_off = addr; b->blk_addr = addr + m->ctl[i].base;
b->blk_off = m->ctl[i].base;
b->log_mask = DPU_DBG_MASK_CTL; b->log_mask = DPU_DBG_MASK_CTL;
return &m->ctl[i]; return &m->ctl[i];
} }
......
...@@ -166,8 +166,7 @@ static struct dpu_dsc_cfg *_dsc_offset(enum dpu_dsc dsc, ...@@ -166,8 +166,7 @@ static struct dpu_dsc_cfg *_dsc_offset(enum dpu_dsc dsc,
for (i = 0; i < m->dsc_count; i++) { for (i = 0; i < m->dsc_count; i++) {
if (dsc == m->dsc[i].id) { if (dsc == m->dsc[i].id) {
b->base_off = addr; b->blk_addr = addr + m->dsc[i].base;
b->blk_off = m->dsc[i].base;
b->log_mask = DPU_DBG_MASK_DSC; b->log_mask = DPU_DBG_MASK_DSC;
return &m->dsc[i]; return &m->dsc[i];
} }
......
...@@ -80,8 +80,7 @@ static const struct dpu_dspp_cfg *_dspp_offset(enum dpu_dspp dspp, ...@@ -80,8 +80,7 @@ static const struct dpu_dspp_cfg *_dspp_offset(enum dpu_dspp dspp,
for (i = 0; i < m->dspp_count; i++) { for (i = 0; i < m->dspp_count; i++) {
if (dspp == m->dspp[i].id) { if (dspp == m->dspp[i].id) {
b->base_off = addr; b->blk_addr = addr + m->dspp[i].base;
b->blk_off = m->dspp[i].base;
b->log_mask = DPU_DBG_MASK_DSPP; b->log_mask = DPU_DBG_MASK_DSPP;
return &m->dspp[i]; return &m->dspp[i];
} }
......
...@@ -401,8 +401,7 @@ u32 dpu_core_irq_read(struct dpu_kms *dpu_kms, int irq_idx) ...@@ -401,8 +401,7 @@ u32 dpu_core_irq_read(struct dpu_kms *dpu_kms, int irq_idx)
static void __intr_offset(const struct dpu_mdss_cfg *m, static void __intr_offset(const struct dpu_mdss_cfg *m,
void __iomem *addr, struct dpu_hw_blk_reg_map *hw) void __iomem *addr, struct dpu_hw_blk_reg_map *hw)
{ {
hw->base_off = addr; hw->blk_addr = addr + m->mdp[0].base;
hw->blk_off = m->mdp[0].base;
} }
struct dpu_hw_intr *dpu_hw_intr_init(void __iomem *addr, struct dpu_hw_intr *dpu_hw_intr_init(void __iomem *addr,
......
...@@ -82,8 +82,7 @@ static const struct dpu_intf_cfg *_intf_offset(enum dpu_intf intf, ...@@ -82,8 +82,7 @@ static const struct dpu_intf_cfg *_intf_offset(enum dpu_intf intf,
for (i = 0; i < m->intf_count; i++) { for (i = 0; i < m->intf_count; i++) {
if ((intf == m->intf[i].id) && if ((intf == m->intf[i].id) &&
(m->intf[i].type != INTF_NONE)) { (m->intf[i].type != INTF_NONE)) {
b->base_off = addr; b->blk_addr = addr + m->intf[i].base;
b->blk_off = m->intf[i].base;
b->log_mask = DPU_DBG_MASK_INTF; b->log_mask = DPU_DBG_MASK_INTF;
return &m->intf[i]; return &m->intf[i];
} }
......
...@@ -39,8 +39,7 @@ static const struct dpu_lm_cfg *_lm_offset(enum dpu_lm mixer, ...@@ -39,8 +39,7 @@ static const struct dpu_lm_cfg *_lm_offset(enum dpu_lm mixer,
for (i = 0; i < m->mixer_count; i++) { for (i = 0; i < m->mixer_count; i++) {
if (mixer == m->mixer[i].id) { if (mixer == m->mixer[i].id) {
b->base_off = addr; b->blk_addr = addr + m->mixer[i].base;
b->blk_off = m->mixer[i].base;
b->log_mask = DPU_DBG_MASK_LM; b->log_mask = DPU_DBG_MASK_LM;
return &m->mixer[i]; return &m->mixer[i];
} }
......
...@@ -23,8 +23,7 @@ static const struct dpu_merge_3d_cfg *_merge_3d_offset(enum dpu_merge_3d idx, ...@@ -23,8 +23,7 @@ static const struct dpu_merge_3d_cfg *_merge_3d_offset(enum dpu_merge_3d idx,
for (i = 0; i < m->merge_3d_count; i++) { for (i = 0; i < m->merge_3d_count; i++) {
if (idx == m->merge_3d[i].id) { if (idx == m->merge_3d[i].id) {
b->base_off = addr; b->blk_addr = addr + m->merge_3d[i].base;
b->blk_off = m->merge_3d[i].base;
b->log_mask = DPU_DBG_MASK_PINGPONG; b->log_mask = DPU_DBG_MASK_PINGPONG;
return &m->merge_3d[i]; return &m->merge_3d[i];
} }
......
...@@ -51,8 +51,7 @@ static const struct dpu_pingpong_cfg *_pingpong_offset(enum dpu_pingpong pp, ...@@ -51,8 +51,7 @@ static const struct dpu_pingpong_cfg *_pingpong_offset(enum dpu_pingpong pp,
for (i = 0; i < m->pingpong_count; i++) { for (i = 0; i < m->pingpong_count; i++) {
if (pp == m->pingpong[i].id) { if (pp == m->pingpong[i].id) {
b->base_off = addr; b->blk_addr = addr + m->pingpong[i].base;
b->blk_off = m->pingpong[i].base;
b->log_mask = DPU_DBG_MASK_PINGPONG; b->log_mask = DPU_DBG_MASK_PINGPONG;
return &m->pingpong[i]; return &m->pingpong[i];
} }
...@@ -156,7 +155,7 @@ static int dpu_hw_pp_poll_timeout_wr_ptr(struct dpu_hw_pingpong *pp, ...@@ -156,7 +155,7 @@ static int dpu_hw_pp_poll_timeout_wr_ptr(struct dpu_hw_pingpong *pp,
return -EINVAL; return -EINVAL;
c = &pp->hw; c = &pp->hw;
rc = readl_poll_timeout(c->base_off + c->blk_off + PP_LINE_COUNT, rc = readl_poll_timeout(c->blk_addr + PP_LINE_COUNT,
val, (val & 0xffff) >= 1, 10, timeout_us); val, (val & 0xffff) >= 1, 10, timeout_us);
return rc; return rc;
......
...@@ -769,8 +769,7 @@ static const struct dpu_sspp_cfg *_sspp_offset(enum dpu_sspp sspp, ...@@ -769,8 +769,7 @@ static const struct dpu_sspp_cfg *_sspp_offset(enum dpu_sspp sspp,
if ((sspp < SSPP_MAX) && catalog && addr && b) { if ((sspp < SSPP_MAX) && catalog && addr && b) {
for (i = 0; i < catalog->sspp_count; i++) { for (i = 0; i < catalog->sspp_count; i++) {
if (sspp == catalog->sspp[i].id) { if (sspp == catalog->sspp[i].id) {
b->base_off = addr; b->blk_addr = addr + catalog->sspp[i].base;
b->blk_off = catalog->sspp[i].base;
b->log_mask = DPU_DBG_MASK_SSPP; b->log_mask = DPU_DBG_MASK_SSPP;
return &catalog->sspp[i]; return &catalog->sspp[i];
} }
......
...@@ -285,8 +285,7 @@ static const struct dpu_mdp_cfg *_top_offset(enum dpu_mdp mdp, ...@@ -285,8 +285,7 @@ static const struct dpu_mdp_cfg *_top_offset(enum dpu_mdp mdp,
for (i = 0; i < m->mdp_count; i++) { for (i = 0; i < m->mdp_count; i++) {
if (mdp == m->mdp[i].id) { if (mdp == m->mdp[i].id) {
b->base_off = addr; b->blk_addr = addr + m->mdp[i].base;
b->blk_off = m->mdp[i].base;
b->log_mask = DPU_DBG_MASK_TOP; b->log_mask = DPU_DBG_MASK_TOP;
return &m->mdp[i]; return &m->mdp[i];
} }
......
...@@ -82,13 +82,13 @@ void dpu_reg_write(struct dpu_hw_blk_reg_map *c, ...@@ -82,13 +82,13 @@ void dpu_reg_write(struct dpu_hw_blk_reg_map *c,
/* don't need to mutex protect this */ /* don't need to mutex protect this */
if (c->log_mask & dpu_hw_util_log_mask) if (c->log_mask & dpu_hw_util_log_mask)
DPU_DEBUG_DRIVER("[%s:0x%X] <= 0x%X\n", DPU_DEBUG_DRIVER("[%s:0x%X] <= 0x%X\n",
name, c->blk_off + reg_off, val); name, reg_off, val);
writel_relaxed(val, c->base_off + c->blk_off + reg_off); writel_relaxed(val, c->blk_addr + reg_off);
} }
int dpu_reg_read(struct dpu_hw_blk_reg_map *c, u32 reg_off) int dpu_reg_read(struct dpu_hw_blk_reg_map *c, u32 reg_off)
{ {
return readl_relaxed(c->base_off + c->blk_off + reg_off); return readl_relaxed(c->blk_addr + reg_off);
} }
u32 *dpu_hw_util_get_log_mask_ptr(void) u32 *dpu_hw_util_get_log_mask_ptr(void)
......
...@@ -23,12 +23,11 @@ ...@@ -23,12 +23,11 @@
* This is the common struct maintained by each sub block * This is the common struct maintained by each sub block
* for mapping the register offsets in this block to the * for mapping the register offsets in this block to the
* absoulute IO address * absoulute IO address
* @base_off: mdp register mapped offset * @blk_addr: hw block register mapped address
* @blk_off: pipe offset relative to mdss offset * @log_mask: log mask for this block
*/ */
struct dpu_hw_blk_reg_map { struct dpu_hw_blk_reg_map {
void __iomem *base_off; void __iomem *blk_addr;
u32 blk_off;
u32 log_mask; u32 log_mask;
}; };
......
...@@ -220,8 +220,7 @@ static const struct dpu_vbif_cfg *_top_offset(enum dpu_vbif vbif, ...@@ -220,8 +220,7 @@ static const struct dpu_vbif_cfg *_top_offset(enum dpu_vbif vbif,
for (i = 0; i < m->vbif_count; i++) { for (i = 0; i < m->vbif_count; i++) {
if (vbif == m->vbif[i].id) { if (vbif == m->vbif[i].id) {
b->base_off = addr; b->blk_addr = addr + m->vbif[i].base;
b->blk_off = m->vbif[i].base;
b->log_mask = DPU_DBG_MASK_VBIF; b->log_mask = DPU_DBG_MASK_VBIF;
return &m->vbif[i]; return &m->vbif[i];
} }
......
...@@ -60,8 +60,7 @@ static const struct dpu_wb_cfg *_wb_offset(enum dpu_wb wb, ...@@ -60,8 +60,7 @@ static const struct dpu_wb_cfg *_wb_offset(enum dpu_wb wb,
for (i = 0; i < m->wb_count; i++) { for (i = 0; i < m->wb_count; i++) {
if (wb == m->wb[i].id) { if (wb == m->wb[i].id) {
b->base_off = addr; b->blk_addr = addr + m->wb[i].base;
b->blk_off = m->wb[i].base;
return &m->wb[i]; return &m->wb[i];
} }
} }
......
...@@ -946,7 +946,7 @@ static void dpu_kms_mdp_snapshot(struct msm_disp_state *disp_state, struct msm_k ...@@ -946,7 +946,7 @@ static void dpu_kms_mdp_snapshot(struct msm_disp_state *disp_state, struct msm_k
dpu_kms->mmio + cat->wb[i].base, "wb_%d", i); dpu_kms->mmio + cat->wb[i].base, "wb_%d", i);
msm_disp_snapshot_add_block(disp_state, cat->mdp[0].len, msm_disp_snapshot_add_block(disp_state, cat->mdp[0].len,
dpu_kms->mmio + top->hw.blk_off, "top"); dpu_kms->mmio + cat->mdp[0].base, "top");
pm_runtime_put_sync(&dpu_kms->pdev->dev); pm_runtime_put_sync(&dpu_kms->pdev->dev);
} }
......
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