Replace dpu_hw_lm callbacks with direct functions calls. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 19 ++------ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h | 59 ++++++++++------------- 3 files changed, 33 insertions(+), 51 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 56eb22554197..5a0a6741a431 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -84,7 +84,7 @@ static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer, DPU_BLEND_BG_INV_ALPHA; } - lm->ops.setup_blend_config(lm, pstate->stage, + dpu_hw_lm_setup_blend_config(lm, pstate->stage, 0xFF, 0, blend_op); DPU_DEBUG("format:%s, alpha_en:%u blend_op:0x%x\n", @@ -112,7 +112,7 @@ static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc) cfg.out_height = drm_rect_height(lm_roi); cfg.right_mixer = lm_horiz_position++; cfg.flags = 0; - hw_lm->ops.setup_mixer_out(hw_lm, &cfg); + dpu_hw_lm_setup_mixer_out(hw_lm, &cfg); } } @@ -217,7 +217,7 @@ static void _dpu_crtc_blend_setup(struct drm_crtc *crtc) ctl = mixer[i].lm_ctl; lm = mixer[i].hw_lm; - lm->ops.setup_alpha_out(lm, mixer[i].mixer_op_mode); + dpu_hw_lm_setup_alpha_out(lm, mixer[i].mixer_op_mode); mixer[i].flush_mask |= ctl->ops.get_bitmask_mixer(ctl, mixer[i].hw_lm->idx); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c index 7d5b620f7f42..1e95d52180cd 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c @@ -59,7 +59,7 @@ static inline int _stage_offset(struct dpu_hw_mixer *ctx, enum dpu_stage stage) return -EINVAL; } -static void dpu_hw_lm_setup_out(struct dpu_hw_mixer *ctx, +void dpu_hw_lm_setup_mixer_out(struct dpu_hw_mixer *ctx, struct dpu_hw_mixer_cfg *mixer) { struct dpu_hw_blk_reg_map *c = &ctx->hw; @@ -79,7 +79,7 @@ static void dpu_hw_lm_setup_out(struct dpu_hw_mixer *ctx, DPU_REG_WRITE(c, LM_OP_MODE, op_mode); } -static void dpu_hw_lm_setup_border_color(struct dpu_hw_mixer *ctx, +void dpu_hw_lm_setup_border_color(struct dpu_hw_mixer *ctx, struct dpu_mdss_color *color, u8 border_en) { @@ -95,7 +95,7 @@ static void dpu_hw_lm_setup_border_color(struct dpu_hw_mixer *ctx, } } -static void dpu_hw_lm_setup_blend_config_sdm845(struct dpu_hw_mixer *ctx, +void dpu_hw_lm_setup_blend_config(struct dpu_hw_mixer *ctx, u32 stage, u32 fg_alpha, u32 bg_alpha, u32 blend_op) { struct dpu_hw_blk_reg_map *c = &ctx->hw; @@ -114,7 +114,7 @@ static void dpu_hw_lm_setup_blend_config_sdm845(struct dpu_hw_mixer *ctx, DPU_REG_WRITE(c, LM_BLEND0_OP + stage_off, blend_op); } -static void dpu_hw_lm_setup_color3(struct dpu_hw_mixer *ctx, +void dpu_hw_lm_setup_alpha_out(struct dpu_hw_mixer *ctx, uint32_t mixer_op_mode) { struct dpu_hw_blk_reg_map *c = &ctx->hw; @@ -128,16 +128,6 @@ static void dpu_hw_lm_setup_color3(struct dpu_hw_mixer *ctx, DPU_REG_WRITE(c, LM_OP_MODE, op_mode); } -static void _setup_mixer_ops(const struct dpu_mdss_cfg *m, - struct dpu_hw_lm_ops *ops, - unsigned long features) -{ - ops->setup_mixer_out = dpu_hw_lm_setup_out; - ops->setup_blend_config = dpu_hw_lm_setup_blend_config_sdm845; - ops->setup_alpha_out = dpu_hw_lm_setup_color3; - ops->setup_border_color = dpu_hw_lm_setup_border_color; -} - struct dpu_hw_mixer *dpu_hw_lm_init(enum dpu_lm idx, void __iomem *addr, const struct dpu_mdss_cfg *m, @@ -159,7 +149,6 @@ struct dpu_hw_mixer *dpu_hw_lm_init(enum dpu_lm idx, /* Assign ops */ c->idx = idx; c->cap = cfg; - _setup_mixer_ops(m, &c->ops, c->cap->features); if (cfg->dspp && cfg->dspp < DSPP_MAX) c->dspp = dpu_hw_dspp_init(cfg->dspp, addr, m); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h index 182740f2914b..a43c1931c5e4 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h @@ -22,38 +22,34 @@ struct dpu_hw_color3_cfg { u8 keep_fg[DPU_STAGE_MAX]; }; -/** - * - * struct dpu_hw_lm_ops : Interface to the mixer Hw driver functions +/* * Assumption is these functions will be called after clocks are enabled */ -struct dpu_hw_lm_ops { - /* - * Sets up mixer output width and height - * and border color if enabled - */ - void (*setup_mixer_out)(struct dpu_hw_mixer *ctx, - struct dpu_hw_mixer_cfg *cfg); - - /* - * Alpha blending configuration - * for the specified stage - */ - void (*setup_blend_config)(struct dpu_hw_mixer *ctx, uint32_t stage, - uint32_t fg_alpha, uint32_t bg_alpha, uint32_t blend_op); - - /* - * Alpha color component selection from either fg or bg - */ - void (*setup_alpha_out)(struct dpu_hw_mixer *ctx, uint32_t mixer_op); - - /** - * setup_border_color : enable/disable border color - */ - void (*setup_border_color)(struct dpu_hw_mixer *ctx, - struct dpu_mdss_color *color, - u8 border_en); -}; +/* + * Sets up mixer output width and height + * and border color if enabled + */ +void dpu_hw_lm_setup_mixer_out(struct dpu_hw_mixer *ctx, + struct dpu_hw_mixer_cfg *cfg); + +/* + * Alpha blending configuration + * for the specified stage + */ +void dpu_hw_lm_setup_blend_config(struct dpu_hw_mixer *ctx, uint32_t stage, + uint32_t fg_alpha, uint32_t bg_alpha, uint32_t blend_op); + +/* + * Alpha color component selection from either fg or bg + */ +void dpu_hw_lm_setup_alpha_out(struct dpu_hw_mixer *ctx, uint32_t mixer_op); + +/** + * setup_border_color : enable/disable border color + */ +void dpu_hw_lm_setup_border_color(struct dpu_hw_mixer *ctx, + struct dpu_mdss_color *color, + u8 border_en); struct dpu_hw_mixer { struct dpu_hw_blk base; @@ -67,9 +63,6 @@ struct dpu_hw_mixer { struct dpu_hw_pingpong *pingpong; struct dpu_hw_dspp *dspp; - /* ops */ - struct dpu_hw_lm_ops ops; - /* store mixer info specific to display */ struct dpu_hw_mixer_cfg cfg; }; -- 2.30.2 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel