Hello Nicolas, At 2025-12-09 19:14:19, "Nicolas Frattaroli" <[email protected]> wrote: >From: Daniel Stone <[email protected]> > >Make sure we can't break the hardware by requesting an unsupported >configuration. > >Signed-off-by: Daniel Stone <[email protected]> >Signed-off-by: Nicolas Frattaroli <[email protected]> >--- > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > >diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >index a029ed73dda7..337b01ed29a6 100644 >--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >@@ -1083,6 +1083,15 @@ static int vop2_plane_atomic_check(struct drm_plane >*plane, > return -EINVAL; > } > >+ if (drm_is_afbc(fb->modifier) && >+ pstate->rotation & >+ (DRM_MODE_REFLECT_X | DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270) >&& >+ (fb->pitches[0] << 3) / vop2_get_bpp(fb->format) % 64) { >+ drm_dbg_kms(vop2->drm, >+ "AFBC buffers must be 64-byte aligned for >horizontal rotation or mirroring\n"); >+ return -EINVAL; >+ }
As Diederik previously pointed out,s/64-byte/64 pixel/ >+ > return 0; > } > >@@ -1290,9 +1299,6 @@ static void vop2_plane_atomic_update(struct drm_plane >*plane, > * with WIN_VIR_STRIDE. > */ > stride = (fb->pitches[0] << 3) / bpp; >- if ((stride & 0x3f) && (xmirror || rotate_90 || rotate_270)) >- drm_dbg_kms(vop2->drm, "vp%d %s stride[%d] not 64 pixel >aligned\n", >- vp->id, win->data->name, stride); > > /* It's for head stride, each head size is 16 byte */ > stride = ALIGN(stride, block_w) / block_w * 16; > >-- >2.52.0
