public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915: color management atomic fixes
@ 2016-03-30 15:16 Maarten Lankhorst
  2016-03-30 15:16 ` [PATCH 1/3] drm/i915: Pass crtc_state to color management functions Maarten Lankhorst
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Maarten Lankhorst @ 2016-03-30 15:16 UTC (permalink / raw)
  To: intel-gfx

Some small fixes to color management.

crtc_state should be passed, a redundant check removed, and
color management updated during vblank evasion.

Maarten Lankhorst (3):
  drm/i915: Pass crtc_state to color management functions.
  drm/i915: Do not check crtc_state->active in intel_color_load_luts.
  drm/i915: Update color management during vblank evasion.

 drivers/gpu/drm/i915/i915_drv.h      |  4 ++--
 drivers/gpu/drm/i915/intel_color.c   | 45 +++++++++++++++++-------------------
 drivers/gpu/drm/i915/intel_display.c | 41 ++++++++++++++++----------------
 drivers/gpu/drm/i915/intel_drv.h     |  4 ++--
 4 files changed, 46 insertions(+), 48 deletions(-)

-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] drm/i915: Pass crtc_state to color management functions.
  2016-03-30 15:16 [PATCH 0/3] drm/i915: color management atomic fixes Maarten Lankhorst
@ 2016-03-30 15:16 ` Maarten Lankhorst
  2016-03-30 16:44   ` Lionel Landwerlin
  2016-03-30 15:16 ` [PATCH 2/3] drm/i915: Do not check crtc_state->active in intel_color_load_luts Maarten Lankhorst
  2016-03-30 15:16 ` [PATCH 3/3] drm/i915: Update color management during vblank evasion Maarten Lankhorst
  2 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2016-03-30 15:16 UTC (permalink / raw)
  To: intel-gfx

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h      |  4 ++--
 drivers/gpu/drm/i915/intel_color.c   | 43 ++++++++++++++++++------------------
 drivers/gpu/drm/i915/intel_display.c | 22 +++++++++++-------
 drivers/gpu/drm/i915/intel_drv.h     |  4 ++--
 4 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index f6d71590bd7b..a93ba2903018 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -612,8 +612,8 @@ struct drm_i915_display_funcs {
 	/* display clock increase/decrease */
 	/* pll clock increase/decrease */
 
-	void (*load_csc_matrix)(struct drm_crtc *crtc);
-	void (*load_luts)(struct drm_crtc *crtc);
+	void (*load_csc_matrix)(struct drm_crtc_state *crtc_state);
+	void (*load_luts)(struct drm_crtc_state *crtc_state);
 };
 
 enum forcewake_domain_id {
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index aa0b20dcb834..9cffa638c351 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -92,10 +92,10 @@ static void ctm_mult_by_limited(uint64_t *result, int64_t *input)
 }
 
 /* Set up the pipe CSC unit. */
-static void i9xx_load_csc_matrix(struct drm_crtc *crtc)
+static void i9xx_load_csc_matrix(struct drm_crtc_state *crtc_state)
 {
+	struct drm_crtc *crtc = crtc_state->crtc;
 	struct drm_device *dev = crtc->dev;
-	struct drm_crtc_state *crtc_state = crtc->state;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	int i, pipe = intel_crtc->pipe;
@@ -203,10 +203,10 @@ static void i9xx_load_csc_matrix(struct drm_crtc *crtc)
 /*
  * Set up the pipe CSC unit on CherryView.
  */
-static void cherryview_load_csc_matrix(struct drm_crtc *crtc)
+static void cherryview_load_csc_matrix(struct drm_crtc_state *state)
 {
+	struct drm_crtc *crtc = state->crtc;
 	struct drm_device *dev = crtc->dev;
-	struct drm_crtc_state *state = crtc->state;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int pipe = to_intel_crtc(crtc)->pipe;
 	uint32_t mode;
@@ -252,13 +252,13 @@ static void cherryview_load_csc_matrix(struct drm_crtc *crtc)
 	I915_WRITE(CGM_PIPE_MODE(pipe), mode);
 }
 
-void intel_color_set_csc(struct drm_crtc *crtc)
+void intel_color_set_csc(struct drm_crtc_state *crtc_state)
 {
-	struct drm_device *dev = crtc->dev;
+	struct drm_device *dev = crtc_state->crtc->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
 	if (dev_priv->display.load_csc_matrix)
-		dev_priv->display.load_csc_matrix(crtc);
+		dev_priv->display.load_csc_matrix(crtc_state);
 }
 
 /* Loads the legacy palette/gamma unit for the CRTC. */
@@ -303,19 +303,20 @@ static void i9xx_load_luts_internal(struct drm_crtc *crtc,
 	}
 }
 
-static void i9xx_load_luts(struct drm_crtc *crtc)
+static void i9xx_load_luts(struct drm_crtc_state *crtc_state)
 {
-	i9xx_load_luts_internal(crtc, crtc->state->gamma_lut);
+	i9xx_load_luts_internal(crtc_state->crtc, crtc_state->gamma_lut);
 }
 
 /* Loads the legacy palette/gamma unit for the CRTC on Haswell. */
-static void haswell_load_luts(struct drm_crtc *crtc)
+static void haswell_load_luts(struct drm_crtc_state *crtc_state)
 {
+	struct drm_crtc *crtc = crtc_state->crtc;
 	struct drm_device *dev = crtc->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	struct intel_crtc_state *intel_crtc_state =
-		to_intel_crtc_state(crtc->state);
+		to_intel_crtc_state(crtc_state);
 	bool reenable_ips = false;
 
 	/*
@@ -331,24 +332,24 @@ static void haswell_load_luts(struct drm_crtc *crtc)
 	intel_crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
 	I915_WRITE(GAMMA_MODE(intel_crtc->pipe), GAMMA_MODE_MODE_8BIT);
 
-	i9xx_load_luts(crtc);
+	i9xx_load_luts(crtc_state);
 
 	if (reenable_ips)
 		hsw_enable_ips(intel_crtc);
 }
 
 /* Loads the palette/gamma unit for the CRTC on Broadwell+. */
-static void broadwell_load_luts(struct drm_crtc *crtc)
+static void broadwell_load_luts(struct drm_crtc_state *state)
 {
+	struct drm_crtc *crtc = state->crtc;
 	struct drm_device *dev = crtc->dev;
-	struct drm_crtc_state *state = crtc->state;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_crtc_state *intel_state = to_intel_crtc_state(state);
 	enum pipe pipe = to_intel_crtc(crtc)->pipe;
 	uint32_t i, lut_size = INTEL_INFO(dev)->color.degamma_lut_size;
 
 	if (crtc_state_is_legacy(state)) {
-		haswell_load_luts(crtc);
+		haswell_load_luts(state);
 		return;
 	}
 
@@ -421,11 +422,11 @@ static void broadwell_load_luts(struct drm_crtc *crtc)
 }
 
 /* Loads the palette/gamma unit for the CRTC on CherryView. */
-static void cherryview_load_luts(struct drm_crtc *crtc)
+static void cherryview_load_luts(struct drm_crtc_state *state)
 {
+	struct drm_crtc *crtc = state->crtc;
 	struct drm_device *dev = crtc->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
-	struct drm_crtc_state *state = crtc->state;
 	enum pipe pipe = to_intel_crtc(crtc)->pipe;
 	struct drm_color_lut *lut;
 	uint32_t i, lut_size;
@@ -481,16 +482,16 @@ static void cherryview_load_luts(struct drm_crtc *crtc)
 	i9xx_load_luts_internal(crtc, NULL);
 }
 
-void intel_color_load_luts(struct drm_crtc *crtc)
+void intel_color_load_luts(struct drm_crtc_state *crtc_state)
 {
-	struct drm_device *dev = crtc->dev;
+	struct drm_device *dev = crtc_state->crtc->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
 	/* The clocks have to be on to load the palette. */
-	if (!crtc->state->active)
+	if (!crtc_state->active)
 		return;
 
-	dev_priv->display.load_luts(crtc);
+	dev_priv->display.load_luts(crtc_state);
 }
 
 int intel_color_check(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 29aa64be1f03..4f913e5febf1 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3223,7 +3223,7 @@ static void intel_update_pipe_config(struct intel_crtc *crtc,
 		      pipe_config->pipe_src_w, pipe_config->pipe_src_h);
 
 	if (HAS_DDI(dev))
-		intel_color_set_csc(&crtc->base);
+		intel_color_set_csc(&pipe_config->base);
 
 	/*
 	 * Update pipe size and adjust fitter if needed: the reason for this is
@@ -4723,6 +4723,8 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	struct intel_encoder *encoder;
 	int pipe = intel_crtc->pipe;
+	struct intel_crtc_state *pipe_config =
+		to_intel_crtc_state(crtc->state);
 
 	if (WARN_ON(intel_crtc->active))
 		return;
@@ -4770,7 +4772,7 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
 	 * On ILK+ LUT must be loaded before the pipe is running but with
 	 * clocks enabled
 	 */
-	intel_color_load_luts(crtc);
+	intel_color_load_luts(&pipe_config->base);
 
 	if (dev_priv->display.initial_watermarks != NULL)
 		dev_priv->display.initial_watermarks(intel_crtc->config);
@@ -4845,7 +4847,7 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
 
 	haswell_set_pipemisc(crtc);
 
-	intel_color_set_csc(crtc);
+	intel_color_set_csc(&pipe_config->base);
 
 	intel_crtc->active = true;
 
@@ -4874,7 +4876,7 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
 	 * On ILK+ LUT must be loaded before the pipe is running but with
 	 * clocks enabled
 	 */
-	intel_color_load_luts(crtc);
+	intel_color_load_luts(&pipe_config->base);
 
 	intel_ddi_set_pipe_settings(crtc);
 	if (!intel_crtc->config->has_dsi_encoder)
@@ -6035,6 +6037,8 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	struct intel_encoder *encoder;
+	struct intel_crtc_state *pipe_config =
+		to_intel_crtc_state(crtc->state);
 	int pipe = intel_crtc->pipe;
 
 	if (WARN_ON(intel_crtc->active))
@@ -6079,7 +6083,7 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
 
 	i9xx_pfit_enable(intel_crtc);
 
-	intel_color_load_luts(crtc);
+	intel_color_load_luts(&pipe_config->base);
 
 	intel_update_watermarks(crtc);
 	intel_enable_pipe(intel_crtc);
@@ -6106,6 +6110,8 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	struct intel_encoder *encoder;
+	struct intel_crtc_state *pipe_config =
+		to_intel_crtc_state(crtc->state);
 	int pipe = intel_crtc->pipe;
 
 	if (WARN_ON(intel_crtc->active))
@@ -6134,7 +6140,7 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
 
 	i9xx_pfit_enable(intel_crtc);
 
-	intel_color_load_luts(crtc);
+	intel_color_load_luts(&pipe_config->base);
 
 	intel_update_watermarks(crtc);
 	intel_enable_pipe(intel_crtc);
@@ -13605,8 +13611,8 @@ static int intel_atomic_commit(struct drm_device *dev,
 			 * a modeset as this will be done by
 			 * crtc_enable already.
 			 */
-			intel_color_set_csc(crtc);
-			intel_color_load_luts(crtc);
+			intel_color_set_csc(crtc->state);
+			intel_color_load_luts(crtc->state);
 		}
 
 		if (!modeset)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index c87b4503435d..6ac46d921cde 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1669,7 +1669,7 @@ extern const struct drm_plane_helper_funcs intel_plane_helper_funcs;
 /* intel_color.c */
 void intel_color_init(struct drm_crtc *crtc);
 int intel_color_check(struct drm_crtc *crtc, struct drm_crtc_state *state);
-void intel_color_set_csc(struct drm_crtc *crtc);
-void intel_color_load_luts(struct drm_crtc *crtc);
+void intel_color_set_csc(struct drm_crtc_state *crtc_state);
+void intel_color_load_luts(struct drm_crtc_state *crtc_state);
 
 #endif /* __INTEL_DRV_H__ */
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] drm/i915: Do not check crtc_state->active in intel_color_load_luts.
  2016-03-30 15:16 [PATCH 0/3] drm/i915: color management atomic fixes Maarten Lankhorst
  2016-03-30 15:16 ` [PATCH 1/3] drm/i915: Pass crtc_state to color management functions Maarten Lankhorst
@ 2016-03-30 15:16 ` Maarten Lankhorst
  2016-03-30 16:42   ` Lionel Landwerlin
  2016-03-30 15:16 ` [PATCH 3/3] drm/i915: Update color management during vblank evasion Maarten Lankhorst
  2 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2016-03-30 15:16 UTC (permalink / raw)
  To: intel-gfx

This is already tested by its callers.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_color.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 9cffa638c351..1b3f97449395 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -487,10 +487,6 @@ void intel_color_load_luts(struct drm_crtc_state *crtc_state)
 	struct drm_device *dev = crtc_state->crtc->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
-	/* The clocks have to be on to load the palette. */
-	if (!crtc_state->active)
-		return;
-
 	dev_priv->display.load_luts(crtc_state);
 }
 
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] drm/i915: Update color management during vblank evasion.
  2016-03-30 15:16 [PATCH 0/3] drm/i915: color management atomic fixes Maarten Lankhorst
  2016-03-30 15:16 ` [PATCH 1/3] drm/i915: Pass crtc_state to color management functions Maarten Lankhorst
  2016-03-30 15:16 ` [PATCH 2/3] drm/i915: Do not check crtc_state->active in intel_color_load_luts Maarten Lankhorst
@ 2016-03-30 15:16 ` Maarten Lankhorst
  2016-03-30 16:41   ` Lionel Landwerlin
  2 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2016-03-30 15:16 UTC (permalink / raw)
  To: intel-gfx

Without this a vblank may occur between updating color management
and planes, which should be prevented.

intel_color_set_csc was called in update pipe config because the
handover from hardware may not have any csc set, which resulted
in a black screen. Because of this also update color management
during fastset.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 4f913e5febf1..179461b45ce3 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3222,9 +3222,6 @@ static void intel_update_pipe_config(struct intel_crtc *crtc,
 		      old_crtc_state->pipe_src_w, old_crtc_state->pipe_src_h,
 		      pipe_config->pipe_src_w, pipe_config->pipe_src_h);
 
-	if (HAS_DDI(dev))
-		intel_color_set_csc(&pipe_config->base);
-
 	/*
 	 * Update pipe size and adjust fitter if needed: the reason for this is
 	 * that in compute_mode_changes we check the native mode (not the pfit
@@ -13603,18 +13600,6 @@ static int intel_atomic_commit(struct drm_device *dev,
 			dev_priv->display.crtc_enable(crtc);
 		}
 
-		if (!modeset &&
-		    crtc->state->active &&
-		    crtc->state->color_mgmt_changed) {
-			/*
-			 * Only update color management when not doing
-			 * a modeset as this will be done by
-			 * crtc_enable already.
-			 */
-			intel_color_set_csc(crtc->state);
-			intel_color_load_luts(crtc->state);
-		}
-
 		if (!modeset)
 			intel_pre_plane_update(to_intel_crtc_state(old_crtc_state));
 
@@ -13933,6 +13918,16 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc,
 	if (modeset)
 		return;
 
+	if (crtc->state->color_mgmt_changed || to_intel_crtc_state(crtc->state)->update_pipe) {
+		/*
+		 * Only update color management when not doing
+		 * a modeset as this will be done by
+		 * crtc_enable already.
+		 */
+		intel_color_set_csc(crtc->state);
+		intel_color_load_luts(crtc->state);
+	}
+
 	if (to_intel_crtc_state(crtc->state)->update_pipe)
 		intel_update_pipe_config(intel_crtc, old_intel_state);
 	else if (INTEL_INFO(dev)->gen >= 9)
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] drm/i915: Update color management during vblank evasion.
  2016-03-30 15:16 ` [PATCH 3/3] drm/i915: Update color management during vblank evasion Maarten Lankhorst
@ 2016-03-30 16:41   ` Lionel Landwerlin
  2016-03-31 10:35     ` Lionel Landwerlin
  2016-03-31 10:35     ` Lionel Landwerlin
  0 siblings, 2 replies; 9+ messages in thread
From: Lionel Landwerlin @ 2016-03-30 16:41 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx

On 30/03/16 16:16, Maarten Lankhorst wrote:
> Without this a vblank may occur between updating color management
> and planes, which should be prevented.
>
> intel_color_set_csc was called in update pipe config because the
> handover from hardware may not have any csc set, which resulted
> in a black screen. Because of this also update color management
> during fastset.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>

> ---
>   drivers/gpu/drm/i915/intel_display.c | 25 ++++++++++---------------
>   1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 4f913e5febf1..179461b45ce3 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -3222,9 +3222,6 @@ static void intel_update_pipe_config(struct intel_crtc *crtc,
>   		      old_crtc_state->pipe_src_w, old_crtc_state->pipe_src_h,
>   		      pipe_config->pipe_src_w, pipe_config->pipe_src_h);
>   
> -	if (HAS_DDI(dev))
> -		intel_color_set_csc(&pipe_config->base);
> -
>   	/*
>   	 * Update pipe size and adjust fitter if needed: the reason for this is
>   	 * that in compute_mode_changes we check the native mode (not the pfit
> @@ -13603,18 +13600,6 @@ static int intel_atomic_commit(struct drm_device *dev,
>   			dev_priv->display.crtc_enable(crtc);
>   		}
>   
> -		if (!modeset &&
> -		    crtc->state->active &&
> -		    crtc->state->color_mgmt_changed) {
> -			/*
> -			 * Only update color management when not doing
> -			 * a modeset as this will be done by
> -			 * crtc_enable already.
> -			 */
> -			intel_color_set_csc(crtc->state);
> -			intel_color_load_luts(crtc->state);
> -		}
> -
>   		if (!modeset)
>   			intel_pre_plane_update(to_intel_crtc_state(old_crtc_state));
>   
> @@ -13933,6 +13918,16 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc,
>   	if (modeset)
>   		return;
>   
> +	if (crtc->state->color_mgmt_changed || to_intel_crtc_state(crtc->state)->update_pipe) {
> +		/*
> +		 * Only update color management when not doing
> +		 * a modeset as this will be done by
> +		 * crtc_enable already.
> +		 */
I guess we can drop this comment.
> +		intel_color_set_csc(crtc->state);
> +		intel_color_load_luts(crtc->state);
> +	}
> +
>   	if (to_intel_crtc_state(crtc->state)->update_pipe)
>   		intel_update_pipe_config(intel_crtc, old_intel_state);
>   	else if (INTEL_INFO(dev)->gen >= 9)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] drm/i915: Do not check crtc_state->active in intel_color_load_luts.
  2016-03-30 15:16 ` [PATCH 2/3] drm/i915: Do not check crtc_state->active in intel_color_load_luts Maarten Lankhorst
@ 2016-03-30 16:42   ` Lionel Landwerlin
  0 siblings, 0 replies; 9+ messages in thread
From: Lionel Landwerlin @ 2016-03-30 16:42 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx

On 30/03/16 16:16, Maarten Lankhorst wrote:
> This is already tested by its callers.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_color.c | 4 ----
>   1 file changed, 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
> index 9cffa638c351..1b3f97449395 100644
> --- a/drivers/gpu/drm/i915/intel_color.c
> +++ b/drivers/gpu/drm/i915/intel_color.c
> @@ -487,10 +487,6 @@ void intel_color_load_luts(struct drm_crtc_state *crtc_state)
>   	struct drm_device *dev = crtc_state->crtc->dev;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   
> -	/* The clocks have to be on to load the palette. */
> -	if (!crtc_state->active)
> -		return;
> -
>   	dev_priv->display.load_luts(crtc_state);
>   }
>   

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] drm/i915: Pass crtc_state to color management functions.
  2016-03-30 15:16 ` [PATCH 1/3] drm/i915: Pass crtc_state to color management functions Maarten Lankhorst
@ 2016-03-30 16:44   ` Lionel Landwerlin
  0 siblings, 0 replies; 9+ messages in thread
From: Lionel Landwerlin @ 2016-03-30 16:44 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx

On 30/03/16 16:16, Maarten Lankhorst wrote:
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.h      |  4 ++--
>   drivers/gpu/drm/i915/intel_color.c   | 43 ++++++++++++++++++------------------
>   drivers/gpu/drm/i915/intel_display.c | 22 +++++++++++-------
>   drivers/gpu/drm/i915/intel_drv.h     |  4 ++--
>   4 files changed, 40 insertions(+), 33 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index f6d71590bd7b..a93ba2903018 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -612,8 +612,8 @@ struct drm_i915_display_funcs {
>   	/* display clock increase/decrease */
>   	/* pll clock increase/decrease */
>   
> -	void (*load_csc_matrix)(struct drm_crtc *crtc);
> -	void (*load_luts)(struct drm_crtc *crtc);
> +	void (*load_csc_matrix)(struct drm_crtc_state *crtc_state);
> +	void (*load_luts)(struct drm_crtc_state *crtc_state);
>   };
>   
>   enum forcewake_domain_id {
> diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
> index aa0b20dcb834..9cffa638c351 100644
> --- a/drivers/gpu/drm/i915/intel_color.c
> +++ b/drivers/gpu/drm/i915/intel_color.c
> @@ -92,10 +92,10 @@ static void ctm_mult_by_limited(uint64_t *result, int64_t *input)
>   }
>   
>   /* Set up the pipe CSC unit. */
> -static void i9xx_load_csc_matrix(struct drm_crtc *crtc)
> +static void i9xx_load_csc_matrix(struct drm_crtc_state *crtc_state)
>   {
> +	struct drm_crtc *crtc = crtc_state->crtc;
>   	struct drm_device *dev = crtc->dev;
> -	struct drm_crtc_state *crtc_state = crtc->state;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>   	int i, pipe = intel_crtc->pipe;
> @@ -203,10 +203,10 @@ static void i9xx_load_csc_matrix(struct drm_crtc *crtc)
>   /*
>    * Set up the pipe CSC unit on CherryView.
>    */
> -static void cherryview_load_csc_matrix(struct drm_crtc *crtc)
> +static void cherryview_load_csc_matrix(struct drm_crtc_state *state)
>   {
> +	struct drm_crtc *crtc = state->crtc;
>   	struct drm_device *dev = crtc->dev;
> -	struct drm_crtc_state *state = crtc->state;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   	int pipe = to_intel_crtc(crtc)->pipe;
>   	uint32_t mode;
> @@ -252,13 +252,13 @@ static void cherryview_load_csc_matrix(struct drm_crtc *crtc)
>   	I915_WRITE(CGM_PIPE_MODE(pipe), mode);
>   }
>   
> -void intel_color_set_csc(struct drm_crtc *crtc)
> +void intel_color_set_csc(struct drm_crtc_state *crtc_state)
>   {
> -	struct drm_device *dev = crtc->dev;
> +	struct drm_device *dev = crtc_state->crtc->dev;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   
>   	if (dev_priv->display.load_csc_matrix)
> -		dev_priv->display.load_csc_matrix(crtc);
> +		dev_priv->display.load_csc_matrix(crtc_state);
>   }
>   
>   /* Loads the legacy palette/gamma unit for the CRTC. */
> @@ -303,19 +303,20 @@ static void i9xx_load_luts_internal(struct drm_crtc *crtc,
>   	}
>   }
>   
> -static void i9xx_load_luts(struct drm_crtc *crtc)
> +static void i9xx_load_luts(struct drm_crtc_state *crtc_state)
>   {
> -	i9xx_load_luts_internal(crtc, crtc->state->gamma_lut);
> +	i9xx_load_luts_internal(crtc_state->crtc, crtc_state->gamma_lut);
>   }
>   
>   /* Loads the legacy palette/gamma unit for the CRTC on Haswell. */
> -static void haswell_load_luts(struct drm_crtc *crtc)
> +static void haswell_load_luts(struct drm_crtc_state *crtc_state)
>   {
> +	struct drm_crtc *crtc = crtc_state->crtc;
>   	struct drm_device *dev = crtc->dev;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>   	struct intel_crtc_state *intel_crtc_state =
> -		to_intel_crtc_state(crtc->state);
> +		to_intel_crtc_state(crtc_state);
>   	bool reenable_ips = false;
>   
>   	/*
> @@ -331,24 +332,24 @@ static void haswell_load_luts(struct drm_crtc *crtc)
>   	intel_crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
>   	I915_WRITE(GAMMA_MODE(intel_crtc->pipe), GAMMA_MODE_MODE_8BIT);
>   
> -	i9xx_load_luts(crtc);
> +	i9xx_load_luts(crtc_state);
>   
>   	if (reenable_ips)
>   		hsw_enable_ips(intel_crtc);
>   }
>   
>   /* Loads the palette/gamma unit for the CRTC on Broadwell+. */
> -static void broadwell_load_luts(struct drm_crtc *crtc)
> +static void broadwell_load_luts(struct drm_crtc_state *state)
>   {
> +	struct drm_crtc *crtc = state->crtc;
>   	struct drm_device *dev = crtc->dev;
> -	struct drm_crtc_state *state = crtc->state;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   	struct intel_crtc_state *intel_state = to_intel_crtc_state(state);
>   	enum pipe pipe = to_intel_crtc(crtc)->pipe;
>   	uint32_t i, lut_size = INTEL_INFO(dev)->color.degamma_lut_size;
>   
>   	if (crtc_state_is_legacy(state)) {
> -		haswell_load_luts(crtc);
> +		haswell_load_luts(state);
>   		return;
>   	}
>   
> @@ -421,11 +422,11 @@ static void broadwell_load_luts(struct drm_crtc *crtc)
>   }
>   
>   /* Loads the palette/gamma unit for the CRTC on CherryView. */
> -static void cherryview_load_luts(struct drm_crtc *crtc)
> +static void cherryview_load_luts(struct drm_crtc_state *state)
>   {
> +	struct drm_crtc *crtc = state->crtc;
>   	struct drm_device *dev = crtc->dev;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
> -	struct drm_crtc_state *state = crtc->state;
>   	enum pipe pipe = to_intel_crtc(crtc)->pipe;
>   	struct drm_color_lut *lut;
>   	uint32_t i, lut_size;
> @@ -481,16 +482,16 @@ static void cherryview_load_luts(struct drm_crtc *crtc)
>   	i9xx_load_luts_internal(crtc, NULL);
>   }
>   
> -void intel_color_load_luts(struct drm_crtc *crtc)
> +void intel_color_load_luts(struct drm_crtc_state *crtc_state)
>   {
> -	struct drm_device *dev = crtc->dev;
> +	struct drm_device *dev = crtc_state->crtc->dev;
>   	struct drm_i915_private *dev_priv = dev->dev_private;
>   
>   	/* The clocks have to be on to load the palette. */
> -	if (!crtc->state->active)
> +	if (!crtc_state->active)
>   		return;
>   
> -	dev_priv->display.load_luts(crtc);
> +	dev_priv->display.load_luts(crtc_state);
>   }
>   
>   int intel_color_check(struct drm_crtc *crtc,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 29aa64be1f03..4f913e5febf1 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -3223,7 +3223,7 @@ static void intel_update_pipe_config(struct intel_crtc *crtc,
>   		      pipe_config->pipe_src_w, pipe_config->pipe_src_h);
>   
>   	if (HAS_DDI(dev))
> -		intel_color_set_csc(&crtc->base);
> +		intel_color_set_csc(&pipe_config->base);
>   
>   	/*
>   	 * Update pipe size and adjust fitter if needed: the reason for this is
> @@ -4723,6 +4723,8 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>   	struct intel_encoder *encoder;
>   	int pipe = intel_crtc->pipe;
> +	struct intel_crtc_state *pipe_config =
> +		to_intel_crtc_state(crtc->state);
>   
>   	if (WARN_ON(intel_crtc->active))
>   		return;
> @@ -4770,7 +4772,7 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
>   	 * On ILK+ LUT must be loaded before the pipe is running but with
>   	 * clocks enabled
>   	 */
> -	intel_color_load_luts(crtc);
> +	intel_color_load_luts(&pipe_config->base);
>   
>   	if (dev_priv->display.initial_watermarks != NULL)
>   		dev_priv->display.initial_watermarks(intel_crtc->config);
> @@ -4845,7 +4847,7 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
>   
>   	haswell_set_pipemisc(crtc);
>   
> -	intel_color_set_csc(crtc);
> +	intel_color_set_csc(&pipe_config->base);
>   
>   	intel_crtc->active = true;
>   
> @@ -4874,7 +4876,7 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
>   	 * On ILK+ LUT must be loaded before the pipe is running but with
>   	 * clocks enabled
>   	 */
> -	intel_color_load_luts(crtc);
> +	intel_color_load_luts(&pipe_config->base);
>   
>   	intel_ddi_set_pipe_settings(crtc);
>   	if (!intel_crtc->config->has_dsi_encoder)
> @@ -6035,6 +6037,8 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>   	struct intel_encoder *encoder;
> +	struct intel_crtc_state *pipe_config =
> +		to_intel_crtc_state(crtc->state);
>   	int pipe = intel_crtc->pipe;
>   
>   	if (WARN_ON(intel_crtc->active))
> @@ -6079,7 +6083,7 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
>   
>   	i9xx_pfit_enable(intel_crtc);
>   
> -	intel_color_load_luts(crtc);
> +	intel_color_load_luts(&pipe_config->base);
>   
>   	intel_update_watermarks(crtc);
>   	intel_enable_pipe(intel_crtc);
> @@ -6106,6 +6110,8 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>   	struct intel_encoder *encoder;
> +	struct intel_crtc_state *pipe_config =
> +		to_intel_crtc_state(crtc->state);
>   	int pipe = intel_crtc->pipe;
>   
>   	if (WARN_ON(intel_crtc->active))
> @@ -6134,7 +6140,7 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
>   
>   	i9xx_pfit_enable(intel_crtc);
>   
> -	intel_color_load_luts(crtc);
> +	intel_color_load_luts(&pipe_config->base);
>   
>   	intel_update_watermarks(crtc);
>   	intel_enable_pipe(intel_crtc);
> @@ -13605,8 +13611,8 @@ static int intel_atomic_commit(struct drm_device *dev,
>   			 * a modeset as this will be done by
>   			 * crtc_enable already.
>   			 */
> -			intel_color_set_csc(crtc);
> -			intel_color_load_luts(crtc);
> +			intel_color_set_csc(crtc->state);
> +			intel_color_load_luts(crtc->state);
>   		}
>   
>   		if (!modeset)
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index c87b4503435d..6ac46d921cde 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1669,7 +1669,7 @@ extern const struct drm_plane_helper_funcs intel_plane_helper_funcs;
>   /* intel_color.c */
>   void intel_color_init(struct drm_crtc *crtc);
>   int intel_color_check(struct drm_crtc *crtc, struct drm_crtc_state *state);
> -void intel_color_set_csc(struct drm_crtc *crtc);
> -void intel_color_load_luts(struct drm_crtc *crtc);
> +void intel_color_set_csc(struct drm_crtc_state *crtc_state);
> +void intel_color_load_luts(struct drm_crtc_state *crtc_state);
>   
>   #endif /* __INTEL_DRV_H__ */

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] drm/i915: Update color management during vblank evasion.
  2016-03-30 16:41   ` Lionel Landwerlin
@ 2016-03-31 10:35     ` Lionel Landwerlin
  2016-03-31 10:35     ` Lionel Landwerlin
  1 sibling, 0 replies; 9+ messages in thread
From: Lionel Landwerlin @ 2016-03-31 10:35 UTC (permalink / raw)
  To: intel-gfx, Maarten Lankhorst

On 30/03/16 17:41, Lionel Landwerlin wrote:
> On 30/03/16 16:16, Maarten Lankhorst wrote:
>> Without this a vblank may occur between updating color management
>> and planes, which should be prevented.
>>
>> intel_color_set_csc was called in update pipe config because the
>> handover from hardware may not have any csc set, which resulted
>> in a black screen. Because of this also update color management
>> during fastset.
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>

>
>> ---
>>   drivers/gpu/drm/i915/intel_display.c | 25 ++++++++++---------------
>>   1 file changed, 10 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c 
>> b/drivers/gpu/drm/i915/intel_display.c
>> index 4f913e5febf1..179461b45ce3 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -3222,9 +3222,6 @@ static void intel_update_pipe_config(struct 
>> intel_crtc *crtc,
>>                 old_crtc_state->pipe_src_w, old_crtc_state->pipe_src_h,
>>                 pipe_config->pipe_src_w, pipe_config->pipe_src_h);
>>   -    if (HAS_DDI(dev))
>> -        intel_color_set_csc(&pipe_config->base);
>> -
>>       /*
>>        * Update pipe size and adjust fitter if needed: the reason for 
>> this is
>>        * that in compute_mode_changes we check the native mode (not 
>> the pfit
>> @@ -13603,18 +13600,6 @@ static int intel_atomic_commit(struct 
>> drm_device *dev,
>>               dev_priv->display.crtc_enable(crtc);
>>           }
>>   -        if (!modeset &&
>> -            crtc->state->active &&
>> -            crtc->state->color_mgmt_changed) {
>> -            /*
>> -             * Only update color management when not doing
>> -             * a modeset as this will be done by
>> -             * crtc_enable already.
>> -             */
>> -            intel_color_set_csc(crtc->state);
>> -            intel_color_load_luts(crtc->state);
>> -        }
>> -
>>           if (!modeset)
>> intel_pre_plane_update(to_intel_crtc_state(old_crtc_state));
>>   @@ -13933,6 +13918,16 @@ static void intel_begin_crtc_commit(struct 
>> drm_crtc *crtc,
>>       if (modeset)
>>           return;
>>   +    if (crtc->state->color_mgmt_changed || 
>> to_intel_crtc_state(crtc->state)->update_pipe) {
>> +        /*
>> +         * Only update color management when not doing
>> +         * a modeset as this will be done by
>> +         * crtc_enable already.
>> +         */
> I guess we can drop this comment.
>> + intel_color_set_csc(crtc->state);
>> +        intel_color_load_luts(crtc->state);
>> +    }
>> +
>>       if (to_intel_crtc_state(crtc->state)->update_pipe)
>>           intel_update_pipe_config(intel_crtc, old_intel_state);
>>       else if (INTEL_INFO(dev)->gen >= 9)
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] drm/i915: Update color management during vblank evasion.
  2016-03-30 16:41   ` Lionel Landwerlin
  2016-03-31 10:35     ` Lionel Landwerlin
@ 2016-03-31 10:35     ` Lionel Landwerlin
  1 sibling, 0 replies; 9+ messages in thread
From: Lionel Landwerlin @ 2016-03-31 10:35 UTC (permalink / raw)
  To: intel-gfx, Maarten Lankhorst

On 30/03/16 17:41, Lionel Landwerlin wrote:
> On 30/03/16 16:16, Maarten Lankhorst wrote:
>> Without this a vblank may occur between updating color management
>> and planes, which should be prevented.
>>
>> intel_color_set_csc was called in update pipe config because the
>> handover from hardware may not have any csc set, which resulted
>> in a black screen. Because of this also update color management
>> during fastset.
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>

>
>> ---
>>   drivers/gpu/drm/i915/intel_display.c | 25 ++++++++++---------------
>>   1 file changed, 10 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c 
>> b/drivers/gpu/drm/i915/intel_display.c
>> index 4f913e5febf1..179461b45ce3 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -3222,9 +3222,6 @@ static void intel_update_pipe_config(struct 
>> intel_crtc *crtc,
>>                 old_crtc_state->pipe_src_w, old_crtc_state->pipe_src_h,
>>                 pipe_config->pipe_src_w, pipe_config->pipe_src_h);
>>   -    if (HAS_DDI(dev))
>> -        intel_color_set_csc(&pipe_config->base);
>> -
>>       /*
>>        * Update pipe size and adjust fitter if needed: the reason for 
>> this is
>>        * that in compute_mode_changes we check the native mode (not 
>> the pfit
>> @@ -13603,18 +13600,6 @@ static int intel_atomic_commit(struct 
>> drm_device *dev,
>>               dev_priv->display.crtc_enable(crtc);
>>           }
>>   -        if (!modeset &&
>> -            crtc->state->active &&
>> -            crtc->state->color_mgmt_changed) {
>> -            /*
>> -             * Only update color management when not doing
>> -             * a modeset as this will be done by
>> -             * crtc_enable already.
>> -             */
>> -            intel_color_set_csc(crtc->state);
>> -            intel_color_load_luts(crtc->state);
>> -        }
>> -
>>           if (!modeset)
>> intel_pre_plane_update(to_intel_crtc_state(old_crtc_state));
>>   @@ -13933,6 +13918,16 @@ static void intel_begin_crtc_commit(struct 
>> drm_crtc *crtc,
>>       if (modeset)
>>           return;
>>   +    if (crtc->state->color_mgmt_changed || 
>> to_intel_crtc_state(crtc->state)->update_pipe) {
>> +        /*
>> +         * Only update color management when not doing
>> +         * a modeset as this will be done by
>> +         * crtc_enable already.
>> +         */
> I guess we can drop this comment.
>> + intel_color_set_csc(crtc->state);
>> +        intel_color_load_luts(crtc->state);
>> +    }
>> +
>>       if (to_intel_crtc_state(crtc->state)->update_pipe)
>>           intel_update_pipe_config(intel_crtc, old_intel_state);
>>       else if (INTEL_INFO(dev)->gen >= 9)
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-03-31 10:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-30 15:16 [PATCH 0/3] drm/i915: color management atomic fixes Maarten Lankhorst
2016-03-30 15:16 ` [PATCH 1/3] drm/i915: Pass crtc_state to color management functions Maarten Lankhorst
2016-03-30 16:44   ` Lionel Landwerlin
2016-03-30 15:16 ` [PATCH 2/3] drm/i915: Do not check crtc_state->active in intel_color_load_luts Maarten Lankhorst
2016-03-30 16:42   ` Lionel Landwerlin
2016-03-30 15:16 ` [PATCH 3/3] drm/i915: Update color management during vblank evasion Maarten Lankhorst
2016-03-30 16:41   ` Lionel Landwerlin
2016-03-31 10:35     ` Lionel Landwerlin
2016-03-31 10:35     ` Lionel Landwerlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox