[PATCH v2] drm/i915/dsi: Fix overflow issue in pclk parsing

Jani Nikula jani.nikula at linux.intel.com
Thu Aug 7 07:13:42 UTC 2025


On Thu, 07 Aug 2025, Jouni Högander <jouni.hogander at intel.com> wrote:
> Parsed divider p will overflow and is considered being valid in case
> pll_ctl == 0.
>
> Fix this by checking divider p before decreasing it. Also small improvement
> is made by using fls() instead of custom loop.
>
> v2: use fls() and check parsed divider
>
> Signed-off-by: Jouni Högander <jouni.hogander at intel.com>

Thanks, I think fls() is cleaner.

Reviewed-by: Jani Nikula <jani.nikula at intel.com>


> ---
>  drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> index b52463fdec47..83afe1315e96 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> @@ -142,11 +142,9 @@ static int vlv_dsi_pclk(struct intel_encoder *encoder,
>  	pll_div &= DSI_PLL_M1_DIV_MASK;
>  	pll_div = pll_div >> DSI_PLL_M1_DIV_SHIFT;
>  
> -	while (pll_ctl) {
> -		pll_ctl = pll_ctl >> 1;
> -		p++;
> -	}
> -	p--;
> +	p = fls(pll_ctl);
> +	if (p)
> +		p--;
>  
>  	if (!p) {
>  		drm_err(display->drm, "wrong P1 divisor\n");

-- 
Jani Nikula, Intel


More information about the Intel-gfx mailing list