Loading msm/sde/sde_crtc.c +3 −2 Original line number Diff line number Diff line Loading @@ -1686,10 +1686,11 @@ static void _sde_crtc_blend_setup(struct drm_crtc *crtc, sde_crtc->name, lm->idx - LM_0, ctl->idx - CTL_0); ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx, NULL); NULL, true); } else { ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx, &sde_crtc->stage_cfg[lm_layout]); &sde_crtc->stage_cfg[lm_layout], false); } } Loading msm/sde/sde_encoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -4173,7 +4173,7 @@ int sde_encoder_helper_reset_mixers(struct sde_encoder_phys *phys_enc, /* only enable border color on LM */ if (phys_enc->hw_ctl->ops.setup_blendstage) phys_enc->hw_ctl->ops.setup_blendstage( phys_enc->hw_ctl, hw_lm->idx, NULL); phys_enc->hw_ctl, hw_lm->idx, NULL, false); } if (!lm_valid) { Loading msm/sde/sde_hw_ctl.c +5 −3 Original line number Diff line number Diff line Loading @@ -946,7 +946,8 @@ static void _sde_hw_ctl_get_mixer_cfg(struct sde_hw_ctl *ctx, } static void sde_hw_ctl_setup_blendstage(struct sde_hw_ctl *ctx, enum sde_lm lm, struct sde_hw_stage_cfg *stage_cfg) enum sde_lm lm, struct sde_hw_stage_cfg *stage_cfg, bool disable_border) { struct sde_hw_blk_reg_map *c; struct sde_ctl_mixer_cfg cfg = { 0 }; Loading @@ -964,8 +965,9 @@ static void sde_hw_ctl_setup_blendstage(struct sde_hw_ctl *ctx, if (stage_cfg) _sde_hw_ctl_get_mixer_cfg(ctx, stage_cfg, stages, &cfg); if ((!cfg.cfg && !cfg.ext && !cfg.ext2 && !cfg.ext3) || (stage_cfg && !stage_cfg->stage[0][0])) if (!disable_border && ((!cfg.cfg && !cfg.ext && !cfg.ext2 && !cfg.ext3) || (stage_cfg && !stage_cfg->stage[0][0]))) cfg.cfg |= CTL_MIXER_BORDER_OUT; SDE_REG_WRITE(c, CTL_LAYER(lm), cfg.cfg); Loading msm/sde/sde_hw_ctl.h +6 −4 Original line number Diff line number Diff line Loading @@ -426,9 +426,11 @@ struct sde_hw_ctl_ops { * @ctx : ctl path ctx pointer * @lm : layer mixer enumeration * @cfg : blend stage configuration * @disable_border: if true disable border, else enable border out */ void (*setup_blendstage)(struct sde_hw_ctl *ctx, enum sde_lm lm, struct sde_hw_stage_cfg *cfg); enum sde_lm lm, struct sde_hw_stage_cfg *cfg, bool disable_border); /** * Get all the sspp staged on a layer mixer Loading Loading
msm/sde/sde_crtc.c +3 −2 Original line number Diff line number Diff line Loading @@ -1686,10 +1686,11 @@ static void _sde_crtc_blend_setup(struct drm_crtc *crtc, sde_crtc->name, lm->idx - LM_0, ctl->idx - CTL_0); ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx, NULL); NULL, true); } else { ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx, &sde_crtc->stage_cfg[lm_layout]); &sde_crtc->stage_cfg[lm_layout], false); } } Loading
msm/sde/sde_encoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -4173,7 +4173,7 @@ int sde_encoder_helper_reset_mixers(struct sde_encoder_phys *phys_enc, /* only enable border color on LM */ if (phys_enc->hw_ctl->ops.setup_blendstage) phys_enc->hw_ctl->ops.setup_blendstage( phys_enc->hw_ctl, hw_lm->idx, NULL); phys_enc->hw_ctl, hw_lm->idx, NULL, false); } if (!lm_valid) { Loading
msm/sde/sde_hw_ctl.c +5 −3 Original line number Diff line number Diff line Loading @@ -946,7 +946,8 @@ static void _sde_hw_ctl_get_mixer_cfg(struct sde_hw_ctl *ctx, } static void sde_hw_ctl_setup_blendstage(struct sde_hw_ctl *ctx, enum sde_lm lm, struct sde_hw_stage_cfg *stage_cfg) enum sde_lm lm, struct sde_hw_stage_cfg *stage_cfg, bool disable_border) { struct sde_hw_blk_reg_map *c; struct sde_ctl_mixer_cfg cfg = { 0 }; Loading @@ -964,8 +965,9 @@ static void sde_hw_ctl_setup_blendstage(struct sde_hw_ctl *ctx, if (stage_cfg) _sde_hw_ctl_get_mixer_cfg(ctx, stage_cfg, stages, &cfg); if ((!cfg.cfg && !cfg.ext && !cfg.ext2 && !cfg.ext3) || (stage_cfg && !stage_cfg->stage[0][0])) if (!disable_border && ((!cfg.cfg && !cfg.ext && !cfg.ext2 && !cfg.ext3) || (stage_cfg && !stage_cfg->stage[0][0]))) cfg.cfg |= CTL_MIXER_BORDER_OUT; SDE_REG_WRITE(c, CTL_LAYER(lm), cfg.cfg); Loading
msm/sde/sde_hw_ctl.h +6 −4 Original line number Diff line number Diff line Loading @@ -426,9 +426,11 @@ struct sde_hw_ctl_ops { * @ctx : ctl path ctx pointer * @lm : layer mixer enumeration * @cfg : blend stage configuration * @disable_border: if true disable border, else enable border out */ void (*setup_blendstage)(struct sde_hw_ctl *ctx, enum sde_lm lm, struct sde_hw_stage_cfg *cfg); enum sde_lm lm, struct sde_hw_stage_cfg *cfg, bool disable_border); /** * Get all the sspp staged on a layer mixer Loading