diff mbox series

drm: rcar-du: Lift z-pos restriction on primary plane for Gen3

Message ID 20220609235529.22254-1-laurent.pinchart+renesas@ideasonboard.com (mailing list archive)
State Mainlined
Commit 676ad8e997036e2f815c293b76c356fb7cc97a08
Delegated to: Kieran Bingham
Headers show
Series drm: rcar-du: Lift z-pos restriction on primary plane for Gen3 | expand

Commit Message

Laurent Pinchart June 9, 2022, 11:55 p.m. UTC
There's no reason to require the primary plane to always be at the
bottom of the stack, as the VSP supports arbitrary ordering of planes,
and the KMS API doesn't have such a requirement either. Lift the
restriction.

As the primary plane can now be positioned arbitrarily, enable control
of its alpha channel as well.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)


base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56

Comments

Esaki Tomohito June 13, 2022, 2:26 a.m. UTC | #1
Hi, Laurent-san

I tested this patch by kms-tests scripts and modetest on R-Car Gen3.

On 2022/06/10 8:55, Laurent Pinchart wrote:
> There's no reason to require the primary plane to always be at the
> bottom of the stack, as the VSP supports arbitrary ordering of planes,
> and the KMS API doesn't have such a requirement either. Lift the
> restriction.
> 
> As the primary plane can now be positioned arbitrarily, enable control
> of its alpha channel as well.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Tested-by: Tomohito Esaki <etom@igel.co.jp>

> ---
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 11 +++--------
>   1 file changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index 6b535abd799a..356861de17b0 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -431,14 +431,9 @@ int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np,
>   		drm_plane_helper_add(&plane->plane,
>   				     &rcar_du_vsp_plane_helper_funcs);
>   
> -		if (type == DRM_PLANE_TYPE_PRIMARY) {
> -			drm_plane_create_zpos_immutable_property(&plane->plane,
> -								 0);
> -		} else {
> -			drm_plane_create_alpha_property(&plane->plane);
> -			drm_plane_create_zpos_property(&plane->plane, 1, 1,
> -						       num_planes - 1);
> -		}
> +		drm_plane_create_alpha_property(&plane->plane);
> +		drm_plane_create_zpos_property(&plane->plane, i, 0,
> +					       num_planes - 1);
>   
>   		vsp->num_planes++;
>   	}
> 
> base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56

--
Best regards,
Tomohito Esaki
diff mbox series

Patch

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
index 6b535abd799a..356861de17b0 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
@@ -431,14 +431,9 @@  int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np,
 		drm_plane_helper_add(&plane->plane,
 				     &rcar_du_vsp_plane_helper_funcs);
 
-		if (type == DRM_PLANE_TYPE_PRIMARY) {
-			drm_plane_create_zpos_immutable_property(&plane->plane,
-								 0);
-		} else {
-			drm_plane_create_alpha_property(&plane->plane);
-			drm_plane_create_zpos_property(&plane->plane, 1, 1,
-						       num_planes - 1);
-		}
+		drm_plane_create_alpha_property(&plane->plane);
+		drm_plane_create_zpos_property(&plane->plane, i, 0,
+					       num_planes - 1);
 
 		vsp->num_planes++;
 	}