Merge "disp: msm: sde: disable border color on empty blendstage"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
20ed4f0785
@@ -1686,10 +1686,11 @@ static void _sde_crtc_blend_setup(struct drm_crtc *crtc,
|
|||||||
sde_crtc->name, lm->idx - LM_0,
|
sde_crtc->name, lm->idx - LM_0,
|
||||||
ctl->idx - CTL_0);
|
ctl->idx - CTL_0);
|
||||||
ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx,
|
ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx,
|
||||||
NULL);
|
NULL, true);
|
||||||
} else {
|
} else {
|
||||||
ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx,
|
ctl->ops.setup_blendstage(ctl, mixer[i].hw_lm->idx,
|
||||||
&sde_crtc->stage_cfg[lm_layout]);
|
&sde_crtc->stage_cfg[lm_layout],
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -4173,7 +4173,7 @@ int sde_encoder_helper_reset_mixers(struct sde_encoder_phys *phys_enc,
|
|||||||
/* only enable border color on LM */
|
/* only enable border color on LM */
|
||||||
if (phys_enc->hw_ctl->ops.setup_blendstage)
|
if (phys_enc->hw_ctl->ops.setup_blendstage)
|
||||||
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) {
|
if (!lm_valid) {
|
||||||
|
@@ -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,
|
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_hw_blk_reg_map *c;
|
||||||
struct sde_ctl_mixer_cfg cfg = { 0 };
|
struct sde_ctl_mixer_cfg cfg = { 0 };
|
||||||
@@ -964,8 +965,9 @@ static void sde_hw_ctl_setup_blendstage(struct sde_hw_ctl *ctx,
|
|||||||
if (stage_cfg)
|
if (stage_cfg)
|
||||||
_sde_hw_ctl_get_mixer_cfg(ctx, stage_cfg, stages, &cfg);
|
_sde_hw_ctl_get_mixer_cfg(ctx, stage_cfg, stages, &cfg);
|
||||||
|
|
||||||
if ((!cfg.cfg && !cfg.ext && !cfg.ext2 && !cfg.ext3) ||
|
if (!disable_border &&
|
||||||
(stage_cfg && !stage_cfg->stage[0][0]))
|
((!cfg.cfg && !cfg.ext && !cfg.ext2 && !cfg.ext3) ||
|
||||||
|
(stage_cfg && !stage_cfg->stage[0][0])))
|
||||||
cfg.cfg |= CTL_MIXER_BORDER_OUT;
|
cfg.cfg |= CTL_MIXER_BORDER_OUT;
|
||||||
|
|
||||||
SDE_REG_WRITE(c, CTL_LAYER(lm), cfg.cfg);
|
SDE_REG_WRITE(c, CTL_LAYER(lm), cfg.cfg);
|
||||||
|
@@ -423,12 +423,14 @@ struct sde_hw_ctl_ops {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure layer mixer to pipe configuration
|
* Configure layer mixer to pipe configuration
|
||||||
* @ctx : ctl path ctx pointer
|
* @ctx : ctl path ctx pointer
|
||||||
* @lm : layer mixer enumeration
|
* @lm : layer mixer enumeration
|
||||||
* @cfg : blend stage configuration
|
* @cfg : blend stage configuration
|
||||||
|
* @disable_border: if true disable border, else enable border out
|
||||||
*/
|
*/
|
||||||
void (*setup_blendstage)(struct sde_hw_ctl *ctx,
|
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
|
* Get all the sspp staged on a layer mixer
|
||||||
|
Reference in New Issue
Block a user