[PATCH 5/9] drm/msm/dpu: check for the plane pitch overflow
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Sat Apr 20 01:56:34 UTC 2024
On Fri, Apr 19, 2024 at 05:16:30PM -0700, Abhinav Kumar wrote:
>
>
> On 3/19/2024 6:22 AM, Dmitry Baryshkov wrote:
> > Check that the plane pitch doesn't overflow the maximum pitch size
> > allowed by the hardware.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> > ---
> > drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 2 ++
> > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 6 +++++-
> > 2 files changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
> > index b7dc52312c39..86b1defa5d21 100644
> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
> > @@ -12,6 +12,8 @@
> > struct dpu_hw_sspp;
> > +#define DPU_SSPP_MAX_PITCH_SIZE 0xffff
> > +
>
> You obtained this value from below code right?
Yes. And also from DPU_MAX_IMG_WIDTH / MAX_IMG_WIDTH.
>
> if (pipe->multirect_index == DPU_SSPP_RECT_0) {
> 487 ystride0 = (ystride0 & 0xFFFF0000) |
> 488 (layout->plane_pitch[0] & 0x0000FFFF);
> 489 ystride1 = (ystride1 & 0xFFFF0000)|
> 490 (layout->plane_pitch[2] & 0x0000FFFF);
> 491 } else {
> 492 ystride0 = (ystride0 & 0x0000FFFF) |
> 493 ((layout->plane_pitch[0] << 16) &
> 494 0xFFFF0000);
> 495 ystride1 = (ystride1 & 0x0000FFFF) |
> 496 ((layout->plane_pitch[2] << 16) &
> 497 0xFFFF0000);
> 498 }
>
> Seems correct, but was just curious
>
> Reviewed-by: Abhinav Kumar <quic_abhinavk at quicinc.com>
--
With best wishes
Dmitry
More information about the Freedreno
mailing list