All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915: vlv pre_enable/enable callback refactoring
@ 2013-07-30  8:08 Jani Nikula
  2013-07-30  8:08 ` [PATCH 1/3] drm/i915: rearrange vlv dp enable and pre_enable callbacks Jani Nikula
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Jani Nikula @ 2013-07-30  8:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Address Daniel's old complaints about ->pre_enable and ->enable called
in the same spot in valleyview_crtc_enable [1].

Rebased on top of Chris' yet-to-be-merged locking patch [2].

Cheers,
Jani.


[1] http://mid.gmane.org/CAKMK7uFs9EMvMW8BnS24e5UNm1D7JrfVg3SD5SDFtVEamGfOOg@mail.gmail.com

[2] http://mid.gmane.org/1374865055-17919-1-git-send-email-chris@chris-wilson.co.uk


Jani Nikula (3):
  drm/i915: rearrange vlv dp enable and pre_enable callbacks
  drm/i915: rearrange vlv hdmi enable and pre_enable callbacks
  drm/i915: move encoder->enable callback later in VLV crtc enable

 drivers/gpu/drm/i915/intel_display.c |    7 ++--
 drivers/gpu/drm/i915/intel_dp.c      |   73 ++++++++++++++++++----------------
 drivers/gpu/drm/i915/intel_hdmi.c    |   20 +++++-----
 3 files changed, 53 insertions(+), 47 deletions(-)

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 14+ messages in thread
* [PATCH 1/3] drm/i915: rearrange vlv dp enable and pre_enable callbacks
@ 2013-06-04 10:26 Jani Nikula
  0 siblings, 0 replies; 14+ messages in thread
From: Jani Nikula @ 2013-06-04 10:26 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Currently ->pre_enable and ->enable are called back to back. Rearrange
the DP callbacks to make it possible to move ->enable call later.

Basically do everything in ->pre_enable on VLV, and make ->enable a NOP.

There should be no functional changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c |   67 ++++++++++++++++++++-------------------
 1 file changed, 35 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index a899f93..543cb12 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1405,47 +1405,46 @@ static void intel_enable_dp(struct intel_encoder *encoder)
 	intel_dp_complete_link_train(intel_dp);
 	intel_dp_stop_link_train(intel_dp);
 	ironlake_edp_backlight_on(intel_dp);
+}
 
-	if (IS_VALLEYVIEW(dev)) {
-		struct intel_digital_port *dport =
-			enc_to_dig_port(&encoder->base);
-		int channel = vlv_dport_to_channel(dport);
-
-		vlv_wait_port_ready(dev_priv, channel);
-	}
+static void vlv_enable_dp(struct intel_encoder *encoder)
+{
 }
 
 static void intel_pre_enable_dp(struct intel_encoder *encoder)
 {
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
+
+	if (dport->port == PORT_A)
+		ironlake_edp_pll_on(intel_dp);
+}
+
+static void vlv_pre_enable_dp(struct intel_encoder *encoder)
+{
+	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc);
+	int port = vlv_dport_to_channel(dport);
+	int pipe = intel_crtc->pipe;
+	u32 val;
 
-	if (dport->port == PORT_A && !IS_VALLEYVIEW(dev))
-		ironlake_edp_pll_on(intel_dp);
+	val = vlv_dpio_read(dev_priv, DPIO_DATA_LANE_A(port));
+	val = 0;
+	if (pipe)
+		val |= (1<<21);
+	else
+		val &= ~(1<<21);
+	val |= 0x001000c4;
+	vlv_dpio_write(dev_priv, DPIO_DATA_CHANNEL(port), val);
+	vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF0(port), 0x00760018);
+	vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF8(port), 0x00400888);
 
-	if (IS_VALLEYVIEW(dev)) {
-		struct intel_crtc *intel_crtc =
-			to_intel_crtc(encoder->base.crtc);
-		int port = vlv_dport_to_channel(dport);
-		int pipe = intel_crtc->pipe;
-		u32 val;
-
-		val = vlv_dpio_read(dev_priv, DPIO_DATA_LANE_A(port));
-		val = 0;
-		if (pipe)
-			val |= (1<<21);
-		else
-			val &= ~(1<<21);
-		val |= 0x001000c4;
-		vlv_dpio_write(dev_priv, DPIO_DATA_CHANNEL(port), val);
+	intel_enable_dp(encoder);
 
-		vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF0(port),
-				 0x00760018);
-		vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF8(port),
-				 0x00400888);
-	}
+	vlv_wait_port_ready(dev_priv, port);
 }
 
 static void intel_dp_pre_pll_enable(struct intel_encoder *encoder)
@@ -3187,14 +3186,18 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port)
 	drm_encoder_helper_add(&intel_encoder->base, &intel_dp_helper_funcs);
 
 	intel_encoder->compute_config = intel_dp_compute_config;
-	intel_encoder->enable = intel_enable_dp;
-	intel_encoder->pre_enable = intel_pre_enable_dp;
 	intel_encoder->disable = intel_disable_dp;
 	intel_encoder->post_disable = intel_post_disable_dp;
 	intel_encoder->get_hw_state = intel_dp_get_hw_state;
 	intel_encoder->get_config = intel_dp_get_config;
-	if (IS_VALLEYVIEW(dev))
+	if (IS_VALLEYVIEW(dev)) {
+		intel_encoder->enable = vlv_enable_dp;
+		intel_encoder->pre_enable = vlv_pre_enable_dp;
 		intel_encoder->pre_pll_enable = intel_dp_pre_pll_enable;
+	} else {
+		intel_encoder->enable = intel_enable_dp;
+		intel_encoder->pre_enable = intel_pre_enable_dp;
+	}
 
 	intel_dig_port->port = port;
 	intel_dig_port->dp.output_reg = output_reg;
-- 
1.7.9.5

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

end of thread, other threads:[~2013-08-05  6:14 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-30  8:08 [PATCH 0/3] drm/i915: vlv pre_enable/enable callback refactoring Jani Nikula
2013-07-30  8:08 ` [PATCH 1/3] drm/i915: rearrange vlv dp enable and pre_enable callbacks Jani Nikula
2013-07-30  8:32   ` Chris Wilson
2013-07-30  9:05     ` Jani Nikula
2013-07-30  9:11       ` Chris Wilson
2013-07-30  8:08 ` [PATCH 2/3] drm/i915: rearrange vlv hdmi " Jani Nikula
2013-07-30  8:08 ` [PATCH 3/3] drm/i915: move encoder->enable callback later in VLV crtc enable Jani Nikula
2013-07-30  9:20 ` [PATCH v3 1/3] drm/i915: rearrange vlv dp enable and pre_enable callbacks Jani Nikula
2013-07-30  9:20   ` [PATCH v3 2/3] drm/i915: rearrange vlv hdmi " Jani Nikula
2013-07-30  9:20   ` [PATCH v3 3/3] drm/i915: move encoder->enable callback later in VLV crtc enable Jani Nikula
2013-07-30 10:58     ` Chris Wilson
2013-08-05  6:14       ` Daniel Vetter
2013-07-30 14:24     ` Ville Syrjälä
  -- strict thread matches above, loose matches on Subject: below --
2013-06-04 10:26 [PATCH 1/3] drm/i915: rearrange vlv dp enable and pre_enable callbacks Jani Nikula

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.