On Wed, May 27, 2020 at 8:49 AM Maxime Ripard <maxime@xxxxxxxxxx> wrote: > > Now that we have everything in place, we can now register all the overlay > planes that can be assigned to all the CRTCs. > > This has two side effects: > > - The number of overlay planes is reduced from 24 to 8. This is temporary > and will be increased again in the next patch. > > - The ID of the various planes is changed again, and we will now have all > the primary planes, then all the overlay planes and finally the cursor > planes. This shouldn't cause any issue since the ordering between > primary, overlay and cursor planes is preserved. > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> Honestly, I'd squash this with the previous two patches, the individual refactors don't make much sense on their own or simplify this patch I think. Either way, patch 17-29 r-b. > --- > drivers/gpu/drm/vc4/vc4_plane.c | 35 +++++++++++++++++----------------- > 1 file changed, 18 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c > index 824c188980b0..5335123ae2a0 100644 > --- a/drivers/gpu/drm/vc4/vc4_plane.c > +++ b/drivers/gpu/drm/vc4/vc4_plane.c > @@ -1378,26 +1378,27 @@ int vc4_plane_create_additional_planes(struct drm_device *drm) > struct drm_crtc *crtc; > unsigned int i; > > - drm_for_each_crtc(crtc, drm) { > - /* Set up some arbitrary number of planes. We're not limited > - * by a set number of physical registers, just the space in > - * the HVS (16k) and how small an plane can be (28 bytes). > - * However, each plane we set up takes up some memory, and > - * increases the cost of looping over planes, which atomic > - * modesetting does quite a bit. As a result, we pick a > - * modest number of planes to expose, that should hopefully > - * still cover any sane usecase. > - */ > - for (i = 0; i < 8; i++) { > - struct drm_plane *plane = > - vc4_plane_init(drm, DRM_PLANE_TYPE_OVERLAY); > + /* Set up some arbitrary number of planes. We're not limited > + * by a set number of physical registers, just the space in > + * the HVS (16k) and how small an plane can be (28 bytes). > + * However, each plane we set up takes up some memory, and > + * increases the cost of looping over planes, which atomic > + * modesetting does quite a bit. As a result, we pick a > + * modest number of planes to expose, that should hopefully > + * still cover any sane usecase. > + */ > + for (i = 0; i < 8; i++) { > + struct drm_plane *plane = > + vc4_plane_init(drm, DRM_PLANE_TYPE_OVERLAY); > > - if (IS_ERR(plane)) > - continue; > + if (IS_ERR(plane)) > + continue; > > - plane->possible_crtcs = drm_crtc_mask(crtc); > - } > + plane->possible_crtcs = > + GENMASK(drm->mode_config.num_crtc - 1, 0); > + } > > + drm_for_each_crtc(crtc, drm) { > /* Set up the legacy cursor after overlay initialization, > * since we overlay planes on the CRTC in the order they were > * initialized. > -- > git-series 0.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel