Skip to content

Commit 358b762

Browse files
fltoAbhinav Kumar
authored andcommitted
drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation
When (mode->clock * 1000) is larger than (1<<31), int to unsigned long conversion will sign extend the int to 64 bits and the pclk_rate value will be incorrect. Fix this by making the result of the multiplication unsigned. Note that above (1<<32) would still be broken and require more changes, but its unlikely anyone will need that anytime soon. Fixes: c4d8cfe ("drm/msm/dsi: add implementation for helper functions") Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Patchwork: https://patchwork.freedesktop.org/patch/618434/ Link: https://lore.kernel.org/r/20241007050157.26855-2-jonathan@marek.ca Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
1 parent 24436a5 commit 358b762

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/gpu/drm/msm/dsi/dsi_host.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ static unsigned long dsi_get_pclk_rate(const struct drm_display_mode *mode,
550550
{
551551
unsigned long pclk_rate;
552552

553-
pclk_rate = mode->clock * 1000;
553+
pclk_rate = mode->clock * 1000u;
554554

555555
if (dsc)
556556
pclk_rate = dsi_adjust_pclk_for_compression(mode, dsc);

0 commit comments

Comments
 (0)