The comment above the num_planes adjustment for RGB UBWC formats says that the uAPI leaves plane[1] empty, but the uAPI has nothing to do with it: an RGB UBWC framebuffer has a single plane, with the metadata in front of the data. The empty slot is in the DPU layout, which follows the SSPP SRC0-3 address registers. The RGB metadata is fetched through SRC2 and SRC1 is not used, so num_planes has to cover slot 2. Say so.
Signed-off-by: Dmitry Baryshkov <[email protected]> --- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c index 590922c4f69b..a8e9a69834af 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c @@ -126,7 +126,7 @@ static int _dpu_format_populate_plane_sizes_ubwc( if (!meta) return 0; - /* uAPI leaves plane[1] empty and plane[2] as meta */ + /* RGB metadata is fetched through SRC2, SRC1 stays unused */ layout->num_planes += 1; rgb_meta_stride = DIV_ROUND_UP(fb->width, 16); -- 2.47.3
