diff mbox series

[07/12] drm/i915: Add aliases for uapi and hw to plane_state

Message ID 20191031112610.27608-7-maarten.lankhorst@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [01/12] drm/i915: Handle a few more cases for crtc hw/uapi split, v3. | expand

Commit Message

Maarten Lankhorst Oct. 31, 2019, 11:26 a.m. UTC
Prepare to split up hw and uapi machinally, by adding a uapi and
hw alias. We will remove the base in a bit. This is a split from the
original uapi/hw patch, which did it all in one go.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 .../gpu/drm/i915/display/intel_atomic_plane.c    | 16 ++++++++--------
 .../gpu/drm/i915/display/intel_display_types.h   |  8 ++++++--
 2 files changed, 14 insertions(+), 10 deletions(-)

Comments

Ville Syrjala Oct. 31, 2019, 2:53 p.m. UTC | #1
On Thu, Oct 31, 2019 at 12:26:05PM +0100, Maarten Lankhorst wrote:
> Prepare to split up hw and uapi machinally, by adding a uapi and
> hw alias. We will remove the base in a bit. This is a split from the
> original uapi/hw patch, which did it all in one go.
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  .../gpu/drm/i915/display/intel_atomic_plane.c    | 16 ++++++++--------
>  .../gpu/drm/i915/display/intel_display_types.h   |  8 ++++++--
>  2 files changed, 14 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> index 4558c0b29fc1..393fb97a3dca 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> @@ -80,22 +80,20 @@ void intel_plane_free(struct intel_plane *plane)
>  struct drm_plane_state *
>  intel_plane_duplicate_state(struct drm_plane *plane)
>  {
> -	struct drm_plane_state *state;
>  	struct intel_plane_state *intel_state;
>  
> -	intel_state = kmemdup(plane->state, sizeof(*intel_state), GFP_KERNEL);
> +	intel_state = to_intel_plane_state(plane->state);
> +	intel_state = kmemdup(intel_state, sizeof(*intel_state), GFP_KERNEL);
>  
>  	if (!intel_state)
>  		return NULL;
>  
> -	state = &intel_state->base;
> -
> -	__drm_atomic_helper_plane_duplicate_state(plane, state);
> +	__drm_atomic_helper_plane_duplicate_state(plane, &intel_state->base);
>  
>  	intel_state->vma = NULL;
>  	intel_state->flags = 0;
>  
> -	return state;
> +	return &intel_state->base;

Could use a bit of cleanup on the variable names, but let's do that
later.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

>  }
>  
>  /**
> @@ -110,9 +108,11 @@ void
>  intel_plane_destroy_state(struct drm_plane *plane,
>  			  struct drm_plane_state *state)
>  {
> -	WARN_ON(to_intel_plane_state(state)->vma);
> +	struct intel_plane_state *plane_state = to_intel_plane_state(state);
> +	WARN_ON(plane_state->vma);
>  
> -	drm_atomic_helper_plane_destroy_state(plane, state);
> +	__drm_atomic_helper_plane_destroy_state(&plane_state->base);
> +	kfree(plane_state);
>  }
>  
>  unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state,
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 9319ca682105..6036b2b3980b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -523,7 +523,11 @@ struct intel_atomic_state {
>  };
>  
>  struct intel_plane_state {
> -	struct drm_plane_state base;
> +	union {
> +		struct drm_plane_state base;
> +		struct drm_plane_state uapi;
> +		struct drm_plane_state hw;
> +	};
>  	struct i915_ggtt_view view;
>  	struct i915_vma *vma;
>  	unsigned long flags;
> @@ -1143,7 +1147,7 @@ struct cxsr_latency {
>  #define to_intel_encoder(x) container_of(x, struct intel_encoder, base)
>  #define to_intel_framebuffer(x) container_of(x, struct intel_framebuffer, base)
>  #define to_intel_plane(x) container_of(x, struct intel_plane, base)
> -#define to_intel_plane_state(x) container_of(x, struct intel_plane_state, base)
> +#define to_intel_plane_state(x) container_of(x, struct intel_plane_state, uapi)
>  #define intel_fb_obj(x) ((x) ? to_intel_bo((x)->obj[0]) : NULL)
>  
>  struct intel_hdmi {
> -- 
> 2.24.0.rc1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 4558c0b29fc1..393fb97a3dca 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -80,22 +80,20 @@  void intel_plane_free(struct intel_plane *plane)
 struct drm_plane_state *
 intel_plane_duplicate_state(struct drm_plane *plane)
 {
-	struct drm_plane_state *state;
 	struct intel_plane_state *intel_state;
 
-	intel_state = kmemdup(plane->state, sizeof(*intel_state), GFP_KERNEL);
+	intel_state = to_intel_plane_state(plane->state);
+	intel_state = kmemdup(intel_state, sizeof(*intel_state), GFP_KERNEL);
 
 	if (!intel_state)
 		return NULL;
 
-	state = &intel_state->base;
-
-	__drm_atomic_helper_plane_duplicate_state(plane, state);
+	__drm_atomic_helper_plane_duplicate_state(plane, &intel_state->base);
 
 	intel_state->vma = NULL;
 	intel_state->flags = 0;
 
-	return state;
+	return &intel_state->base;
 }
 
 /**
@@ -110,9 +108,11 @@  void
 intel_plane_destroy_state(struct drm_plane *plane,
 			  struct drm_plane_state *state)
 {
-	WARN_ON(to_intel_plane_state(state)->vma);
+	struct intel_plane_state *plane_state = to_intel_plane_state(state);
+	WARN_ON(plane_state->vma);
 
-	drm_atomic_helper_plane_destroy_state(plane, state);
+	__drm_atomic_helper_plane_destroy_state(&plane_state->base);
+	kfree(plane_state);
 }
 
 unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state,
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 9319ca682105..6036b2b3980b 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -523,7 +523,11 @@  struct intel_atomic_state {
 };
 
 struct intel_plane_state {
-	struct drm_plane_state base;
+	union {
+		struct drm_plane_state base;
+		struct drm_plane_state uapi;
+		struct drm_plane_state hw;
+	};
 	struct i915_ggtt_view view;
 	struct i915_vma *vma;
 	unsigned long flags;
@@ -1143,7 +1147,7 @@  struct cxsr_latency {
 #define to_intel_encoder(x) container_of(x, struct intel_encoder, base)
 #define to_intel_framebuffer(x) container_of(x, struct intel_framebuffer, base)
 #define to_intel_plane(x) container_of(x, struct intel_plane, base)
-#define to_intel_plane_state(x) container_of(x, struct intel_plane_state, base)
+#define to_intel_plane_state(x) container_of(x, struct intel_plane_state, uapi)
 #define intel_fb_obj(x) ((x) ? to_intel_bo((x)->obj[0]) : NULL)
 
 struct intel_hdmi {