lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 828/917] drm/i915/fb: Fix rounding error in subsampled plane size calculation
    Date
    From: Imre Deak <imre.deak@intel.com>

    [ Upstream commit 90ab96f3872eae816f4e07deaa77322a91237960 ]

    For NV12 FBs with odd main surface tile-row height the CCS surface
    height was incorrectly calculated 1 less than the actual value. Fix this
    by rounding up the result of divison. For consistency do the same for
    the CCS surface width calculation.

    Fixes: b3e57bccd68a ("drm/i915/tgl: Gen-12 render decompression")
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211026225105.2783797-2-imre.deak@intel.com
    (cherry picked from commit 2ee5ef9c934ad26376c9282171e731e6c0339815)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/i915/display/intel_fb.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
    index c60a81a81c09c..c6413c5409420 100644
    --- a/drivers/gpu/drm/i915/display/intel_fb.c
    +++ b/drivers/gpu/drm/i915/display/intel_fb.c
    @@ -172,8 +172,9 @@ static void intel_fb_plane_dims(const struct intel_framebuffer *fb, int color_pl

    intel_fb_plane_get_subsampling(&main_hsub, &main_vsub, &fb->base, main_plane);
    intel_fb_plane_get_subsampling(&hsub, &vsub, &fb->base, color_plane);
    - *w = fb->base.width / main_hsub / hsub;
    - *h = fb->base.height / main_vsub / vsub;
    +
    + *w = DIV_ROUND_UP(fb->base.width, main_hsub * hsub);
    + *h = DIV_ROUND_UP(fb->base.height, main_vsub * vsub);
    }

    static u32 intel_adjust_tile_offset(int *x, int *y,
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 01:40    [W:2.858 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site