diff mbox

[5/6] drm/i915/vlv: move DPIO init earlier v2

Message ID 1386880917-2951-5-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes Dec. 12, 2013, 8:41 p.m. UTC
It's needed for early mode state readout, which is in turn needed to
inherit the BIOS config.  So split out the reset, which we need on
resume too, from the DPIO reg init, and do the latter earlier.

v2: split reset and reg init

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_display.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Daniel Vetter Dec. 14, 2013, 10:47 a.m. UTC | #1
On Thu, Dec 12, 2013 at 12:41:56PM -0800, Jesse Barnes wrote:
> It's needed for early mode state readout, which is in turn needed to
> inherit the BIOS config.  So split out the reset, which we need on
> resume too, from the DPIO reg init, and do the latter earlier.
> 
> v2: split reset and reg init
> 
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Isn't this a fixup due to the slight init reordering you do in patch 2? If
so we need to get this one in first, and I'd also prefer if the init
reordering is split out as a separate patch from patch 2 - that stuff
almost always ends up hurting us in some way or the order, so a minimal
patch as an obvious bisect point is imo worth it.

With those prep patches split out I could also start merging to get this
sucker moving finally.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_display.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b868331..f265110 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -1368,6 +1368,15 @@ static void intel_init_dpio(struct drm_device *dev)
>  		return;
>  
>  	DPIO_PHY_IOSF_PORT(DPIO_PHY0) = IOSF_PORT_DPIO;
> +}
> +
> +static void intel_dpio_reset(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +
> +	if (!IS_VALLEYVIEW(dev))
> +		return;
> +
>  	/*
>  	 * From VLV2A0_DP_eDP_DPIO_driver_vbios_notes_10.docx -
>  	 *  6.	De-assert cmn_reset/side_reset. Same as VLV X0.
> @@ -10908,7 +10917,7 @@ void intel_modeset_init_hw(struct drm_device *dev)
>  		I915_WRITE(DPLL(PIPE_B), I915_READ(DPLL(PIPE_B)) |
>  			   DPLL_INTEGRATED_CRI_CLK_VLV);
>  
> -	intel_init_dpio(dev);
> +	intel_dpio_reset(dev);
>  
>  	mutex_lock(&dev->struct_mutex);
>  	intel_enable_gt_powersave(dev);
> @@ -10971,6 +10980,8 @@ void intel_modeset_init(struct drm_device *dev)
>  		}
>  	}
>  
> +	intel_init_dpio(dev);
> +
>  	intel_cpu_pll_init(dev);
>  	intel_shared_dpll_init(dev);
>  
> -- 
> 1.8.4.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jesse Barnes Dec. 17, 2013, 12:02 a.m. UTC | #2
On Sat, 14 Dec 2013 11:47:36 +0100
Daniel Vetter <daniel@ffwll.ch> wrote:

> On Thu, Dec 12, 2013 at 12:41:56PM -0800, Jesse Barnes wrote:
> > It's needed for early mode state readout, which is in turn needed to
> > inherit the BIOS config.  So split out the reset, which we need on
> > resume too, from the DPIO reg init, and do the latter earlier.
> > 
> > v2: split reset and reg init
> > 
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> 
> Isn't this a fixup due to the slight init reordering you do in patch 2? If
> so we need to get this one in first, and I'd also prefer if the init
> reordering is split out as a separate patch from patch 2 - that stuff
> almost always ends up hurting us in some way or the order, so a minimal
> patch as an obvious bisect point is imo worth it.
> 
> With those prep patches split out I could also start merging to get this
> sucker moving finally.

Sure, done.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b868331..f265110 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1368,6 +1368,15 @@  static void intel_init_dpio(struct drm_device *dev)
 		return;
 
 	DPIO_PHY_IOSF_PORT(DPIO_PHY0) = IOSF_PORT_DPIO;
+}
+
+static void intel_dpio_reset(struct drm_device *dev)
+{
+	struct drm_i915_private *dev_priv = dev->dev_private;
+
+	if (!IS_VALLEYVIEW(dev))
+		return;
+
 	/*
 	 * From VLV2A0_DP_eDP_DPIO_driver_vbios_notes_10.docx -
 	 *  6.	De-assert cmn_reset/side_reset. Same as VLV X0.
@@ -10908,7 +10917,7 @@  void intel_modeset_init_hw(struct drm_device *dev)
 		I915_WRITE(DPLL(PIPE_B), I915_READ(DPLL(PIPE_B)) |
 			   DPLL_INTEGRATED_CRI_CLK_VLV);
 
-	intel_init_dpio(dev);
+	intel_dpio_reset(dev);
 
 	mutex_lock(&dev->struct_mutex);
 	intel_enable_gt_powersave(dev);
@@ -10971,6 +10980,8 @@  void intel_modeset_init(struct drm_device *dev)
 		}
 	}
 
+	intel_init_dpio(dev);
+
 	intel_cpu_pll_init(dev);
 	intel_shared_dpll_init(dev);