diff mbox series

[v2,04/11] drm/i915: Generalize the async flip capability check

Message ID 20210111163711.12913-5-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Async flips for all ilk+ platforms | expand

Commit Message

Ville Syrjälä Jan. 11, 2021, 4:37 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Only assign the plane->async_flip() vfunc when the plane supports
async flips. For now we keep this artificially limited to the primary
plane since thats the only thing the legacy page flip uapi can target
and there is no async flip support in the atomic uapi yet.

Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 2 +-
 drivers/gpu/drm/i915/display/intel_sprite.c  | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Karthik B S Jan. 15, 2021, 10:23 a.m. UTC | #1
On 1/11/2021 10:07 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Only assign the plane->async_flip() vfunc when the plane supports
> async flips. For now we keep this artificially limited to the primary
> plane since thats the only thing the legacy page flip uapi can target
> and there is no async flip support in the atomic uapi yet.
>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Vandita Kulkarni <vandita.kulkarni@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   drivers/gpu/drm/i915/display/intel_display.c | 2 +-
>   drivers/gpu/drm/i915/display/intel_sprite.c  | 4 +++-
>   2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 7735c28b2467..1ad92fcaee7b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14377,7 +14377,7 @@ static int intel_atomic_check_async(struct intel_atomic_state *state)
>   		 * this(vlv/chv and icl+) should be added when async flip is
>   		 * enabled in the atomic IOCTL path.
>   		 */
> -		if (plane->id != PLANE_PRIMARY)
> +		if (!plane->async_flip)
>   			return -EINVAL;
>   
>   		/*
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index b24c8fc8e83e..0a5648d5dcf8 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -3309,7 +3309,9 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
>   	plane->get_hw_state = skl_plane_get_hw_state;
>   	plane->check_plane = skl_plane_check;
>   	plane->min_cdclk = skl_plane_min_cdclk;
> -	plane->async_flip = skl_plane_async_flip;
> +
> +	if (plane_id == PLANE_PRIMARY)
> +		plane->async_flip = skl_plane_async_flip;
>   
>   	if (INTEL_GEN(dev_priv) >= 11)
>   		formats = icl_get_plane_formats(dev_priv, pipe,
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 7735c28b2467..1ad92fcaee7b 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14377,7 +14377,7 @@  static int intel_atomic_check_async(struct intel_atomic_state *state)
 		 * this(vlv/chv and icl+) should be added when async flip is
 		 * enabled in the atomic IOCTL path.
 		 */
-		if (plane->id != PLANE_PRIMARY)
+		if (!plane->async_flip)
 			return -EINVAL;
 
 		/*
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
index b24c8fc8e83e..0a5648d5dcf8 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -3309,7 +3309,9 @@  skl_universal_plane_create(struct drm_i915_private *dev_priv,
 	plane->get_hw_state = skl_plane_get_hw_state;
 	plane->check_plane = skl_plane_check;
 	plane->min_cdclk = skl_plane_min_cdclk;
-	plane->async_flip = skl_plane_async_flip;
+
+	if (plane_id == PLANE_PRIMARY)
+		plane->async_flip = skl_plane_async_flip;
 
 	if (INTEL_GEN(dev_priv) >= 11)
 		formats = icl_get_plane_formats(dev_priv, pipe,