[PATCH v5 05/15] drm/msm/dpu: decide right side per last bit

Jessica Zhang quic_jesszhan at quicinc.com
Sat Feb 15 00:29:24 UTC 2025



On 1/17/2025 8:00 AM, Jun Nie wrote:
> Currently, only one pair of mixers is supported, so a non-zero counter
> value is sufficient to identify the correct mixer within that pair.
> However, future implementations may involve multiple mixer pairs. With
> the current implementation, all mixers within the second pair would be
> incorrectly selected as right mixer. To correctly select the mixer
> within a pair, test the least significant bit of the counter. If the
> least significant bit is not set, select the mixer as left one;
> otherwise, select the mixer as right one for all pairs.
> 
> Signed-off-by: Jun Nie <jun.nie at linaro.org>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>

Reviewed-by: Jessica Zhang <quic_jesszhan at quicinc.com>

> ---
>   drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> index 7191b1a6d41b3..41c9d3e3e3c7c 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> @@ -369,11 +369,10 @@ static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer,
>   static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc)
>   {
>   	struct dpu_crtc_state *crtc_state;
> -	int lm_idx, lm_horiz_position;
> +	int lm_idx;
>   
>   	crtc_state = to_dpu_crtc_state(crtc->state);
>   
> -	lm_horiz_position = 0;
>   	for (lm_idx = 0; lm_idx < crtc_state->num_mixers; lm_idx++) {
>   		const struct drm_rect *lm_roi = &crtc_state->lm_bounds[lm_idx];
>   		struct dpu_hw_mixer *hw_lm = crtc_state->mixers[lm_idx].hw_lm;
> @@ -384,7 +383,7 @@ static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc)
>   
>   		cfg.out_width = drm_rect_width(lm_roi);
>   		cfg.out_height = drm_rect_height(lm_roi);
> -		cfg.right_mixer = lm_horiz_position++;
> +		cfg.right_mixer = lm_idx & 0x1;
>   		cfg.flags = 0;
>   		hw_lm->ops.setup_mixer_out(hw_lm, &cfg);
>   	}
> 
> -- 
> 2.34.1
> 



More information about the Freedreno mailing list