On 2023-07-08 22:06, Joshua Ashton wrote: > Despite certain GPUs supporting multiple overlay planes already in > AMDGPU, the driver did not expose the zpos property which is required > for userspace to take advantage of multiple overlay planes in any > meaningful way. > > The driver was already hooked up to normalized_zpos, but was just > missing the exposure of it. > > Signed-off-by: Joshua Ashton <joshua@xxxxxxxxx> Series is Reviewed-by: Harry Wentland <harry.wentland@xxxxxxx> Harry > > Cc: Harry Wentland <harry.wentland@xxxxxxx> > Cc: Melissa Wen <mwen@xxxxxxxxxx> > Cc: Simon Ser <contact@xxxxxxxxxxx> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c > index 8eeca160d434..2198df96ed6f 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c > @@ -1468,6 +1468,15 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, > drm_plane_create_blend_mode_property(plane, blend_caps); > } > > + if (plane->type == DRM_PLANE_TYPE_PRIMARY) { > + drm_plane_create_zpos_immutable_property(plane, 0); > + } else if (plane->type == DRM_PLANE_TYPE_OVERLAY) { > + unsigned int zpos = 1 + drm_plane_index(plane); > + drm_plane_create_zpos_property(plane, zpos, 1, 254); > + } else if (plane->type == DRM_PLANE_TYPE_CURSOR) { > + drm_plane_create_zpos_immutable_property(plane, 255); > + } > + > if (plane->type == DRM_PLANE_TYPE_PRIMARY && > plane_cap && > (plane_cap->pixel_format_support.nv12 ||