All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: [PATCH 01/58] drm/i915: add crtc->enable/disable vfuncs insted of dpms
Date: Sun, 19 Aug 2012 21:12:18 +0200	[thread overview]
Message-ID: <1345403595-9678-2-git-send-email-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <1345403595-9678-1-git-send-email-daniel.vetter@ffwll.ch>

Because that's what we're essentially calling. This is the first step
in untangling the crtc_helper induced dpms handling mess we have - at
the crtc level we only have 2 states and the magic is just in
selecting which one (and atm there isn't even much magic, but on
recent platforms where not even the crt output has more than 2 states
we could do better).

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_drv.h      |  3 +-
 drivers/gpu/drm/i915/intel_display.c | 62 +++++++++++-------------------------
 2 files changed, 20 insertions(+), 45 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ed3ba70..fb46c6f 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -240,7 +240,6 @@ struct drm_i915_error_state {
 };
 
 struct drm_i915_display_funcs {
-	void (*dpms)(struct drm_crtc *crtc, int mode);
 	bool (*fbc_enabled)(struct drm_device *dev);
 	void (*enable_fbc)(struct drm_crtc *crtc, unsigned long interval);
 	void (*disable_fbc)(struct drm_device *dev);
@@ -256,6 +255,8 @@ struct drm_i915_display_funcs {
 			     struct drm_display_mode *adjusted_mode,
 			     int x, int y,
 			     struct drm_framebuffer *old_fb);
+	void (*crtc_enable)(struct drm_crtc *crtc);
+	void (*crtc_disable)(struct drm_crtc *crtc);
 	void (*off)(struct drm_crtc *crtc);
 	void (*write_eld)(struct drm_connector *connector,
 			  struct drm_crtc *crtc);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 42c5758..adc9868 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3342,30 +3342,6 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
 	mutex_unlock(&dev->struct_mutex);
 }
 
-static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
-{
-	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
-	int pipe = intel_crtc->pipe;
-	int plane = intel_crtc->plane;
-
-	/* XXX: When our outputs are all unaware of DPMS modes other than off
-	 * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC.
-	 */
-	switch (mode) {
-	case DRM_MODE_DPMS_ON:
-	case DRM_MODE_DPMS_STANDBY:
-	case DRM_MODE_DPMS_SUSPEND:
-		DRM_DEBUG_KMS("crtc %d/%d dpms on\n", pipe, plane);
-		ironlake_crtc_enable(crtc);
-		break;
-
-	case DRM_MODE_DPMS_OFF:
-		DRM_DEBUG_KMS("crtc %d/%d dpms off\n", pipe, plane);
-		ironlake_crtc_disable(crtc);
-		break;
-	}
-}
-
 static void ironlake_crtc_off(struct drm_crtc *crtc)
 {
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -3445,23 +3421,6 @@ static void i9xx_crtc_disable(struct drm_crtc *crtc)
 	intel_update_watermarks(dev);
 }
 
-static void i9xx_crtc_dpms(struct drm_crtc *crtc, int mode)
-{
-	/* XXX: When our outputs are all unaware of DPMS modes other than off
-	 * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC.
-	 */
-	switch (mode) {
-	case DRM_MODE_DPMS_ON:
-	case DRM_MODE_DPMS_STANDBY:
-	case DRM_MODE_DPMS_SUSPEND:
-		i9xx_crtc_enable(crtc);
-		break;
-	case DRM_MODE_DPMS_OFF:
-		i9xx_crtc_disable(crtc);
-		break;
-	}
-}
-
 static void i9xx_crtc_off(struct drm_crtc *crtc)
 {
 }
@@ -3483,7 +3442,20 @@ static void intel_crtc_dpms(struct drm_crtc *crtc, int mode)
 
 	intel_crtc->dpms_mode = mode;
 
-	dev_priv->display.dpms(crtc, mode);
+	/* XXX: When our outputs are all unaware of DPMS modes other than off
+	 * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC.
+	 */
+	switch (mode) {
+	case DRM_MODE_DPMS_ON:
+	case DRM_MODE_DPMS_STANDBY:
+	case DRM_MODE_DPMS_SUSPEND:
+		dev_priv->display.crtc_enable(crtc);
+		break;
+
+	case DRM_MODE_DPMS_OFF:
+		dev_priv->display.crtc_disable(crtc);
+		break;
+	}
 
 	if (!dev->primary->master)
 		return;
@@ -6971,13 +6943,15 @@ static void intel_init_display(struct drm_device *dev)
 
 	/* We always want a DPMS function */
 	if (HAS_PCH_SPLIT(dev)) {
-		dev_priv->display.dpms = ironlake_crtc_dpms;
 		dev_priv->display.crtc_mode_set = ironlake_crtc_mode_set;
+		dev_priv->display.crtc_enable = ironlake_crtc_enable;
+		dev_priv->display.crtc_disable = ironlake_crtc_disable;
 		dev_priv->display.off = ironlake_crtc_off;
 		dev_priv->display.update_plane = ironlake_update_plane;
 	} else {
-		dev_priv->display.dpms = i9xx_crtc_dpms;
 		dev_priv->display.crtc_mode_set = i9xx_crtc_mode_set;
+		dev_priv->display.crtc_enable = i9xx_crtc_enable;
+		dev_priv->display.crtc_disable = i9xx_crtc_disable;
 		dev_priv->display.off = i9xx_crtc_off;
 		dev_priv->display.update_plane = i9xx_update_plane;
 	}
-- 
1.7.11.2

  reply	other threads:[~2012-08-19 20:20 UTC|newest]

Thread overview: 173+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-19 19:12 [PATCH 00/58] modeset-rework, the basic conversion Daniel Vetter
2012-08-19 19:12 ` Daniel Vetter [this message]
2012-08-29 17:51   ` [PATCH 01/58] drm/i915: add crtc->enable/disable vfuncs insted of dpms Jesse Barnes
2012-08-19 19:12 ` [PATCH 02/58] drm/i915: rip out crtc prepare/commit indirection Daniel Vetter
2012-08-29 17:52   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 03/58] drm/i915: add direct encoder disable/enable infrastructure Daniel Vetter
2012-08-29 18:01   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 04/58] drm/i915/hdmi: convert to encoder->disable/enable Daniel Vetter
2012-09-04 19:24   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 05/58] drm/i915/tv: convert to encoder enable/disable Daniel Vetter
2012-09-04 19:25   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 06/58] drm/i915/lvds: convert to encoder disable/enable Daniel Vetter
2012-09-04 19:26   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 07/58] drm/i915/dp: " Daniel Vetter
2012-09-04 19:33   ` Jesse Barnes
2012-09-04 19:42     ` Daniel Vetter
2012-08-19 19:12 ` [PATCH 08/58] drm/i915/crt: " Daniel Vetter
2012-09-04 19:50   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 09/58] drm/i915/sdvo: " Daniel Vetter
2012-09-04 19:52   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 10/58] drm/i915/dvo: " Daniel Vetter
2012-09-04 19:53   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 11/58] drm/i915: convert dpms functions of dvo/sdvo/crt Daniel Vetter
2012-08-29  7:12   ` [PATCH] " Daniel Vetter
2012-09-04 20:10     ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 12/58] drm/i915: rip out encoder->disable/enable checks Daniel Vetter
2012-09-04 20:11   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 13/58] drm/i915: clean up encoder_prepare/commit Daniel Vetter
2012-09-04 20:12   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 14/58] drm/i915: copy&paste drm_crtc_helper_set_config Daniel Vetter
2012-09-04 20:13   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 15/58] drm/i915: call set_base directly Daniel Vetter
2012-09-04 20:15   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 16/58] drm/i915: inline intel_best_encoder Daniel Vetter
2012-09-04 20:18   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 17/58] drm/i915: copy&paste drm_crtc_helper_set_mode Daniel Vetter
2012-09-04 20:19   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 18/58] drm/i915: simplify intel_crtc_prepare_encoders Daniel Vetter
2012-09-04 20:20   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 19/58] drm/i915: rip out encoder->prepare/commit Daniel Vetter
2012-09-04 20:21   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 20/58] drm/i915: call crtc functions directly Daniel Vetter
2012-09-04 20:22   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 21/58] drm/i915: WARN when trying to enabled an unused crtc Daniel Vetter
2012-09-04 20:23   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 22/58] drm/i915: Add interfaces to read out encoder/connector hw state Daniel Vetter
2012-09-04 20:25   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 23/58] drm/i915/dp: implement get_hw_state Daniel Vetter
2012-09-04 20:26   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 24/58] drm/i915/hdmi: " Daniel Vetter
2012-09-04 20:28   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 25/58] drm/i915/tv: " Daniel Vetter
2012-09-04 20:28   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 26/58] drm/i915/lvds: " Daniel Vetter
2012-09-04 20:28   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 27/58] drm/i915/crt: " Daniel Vetter
2012-09-04 20:29   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 28/58] drm/i915/sdvo: " Daniel Vetter
2012-09-04 20:31   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 29/58] drm/i915/dvo: " Daniel Vetter
2012-09-04 20:32   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 30/58] drm/i915: read out the modeset hw state at load and resume time Daniel Vetter
2012-09-05 16:14   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 31/58] drm/i915: check connector hw/sw state Daniel Vetter
2012-09-05 16:26   ` Jesse Barnes
2012-09-05 19:10     ` Daniel Vetter
2012-08-19 19:12 ` [PATCH 32/58] drm/i915: rip out intel_crtc->dpms_mode Daniel Vetter
2012-09-05 16:27   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 33/58] drm/i915: rip out intel_dp->dpms_mode Daniel Vetter
2012-09-05 16:28   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 34/58] drm/i915: ensure the force pipe A quirk is actually followed Daniel Vetter
2012-09-05 16:32   ` Jesse Barnes
2012-09-05 19:12     ` Daniel Vetter
2012-08-19 19:12 ` [PATCH 35/58] drm/i915: introduce struct intel_set_config Daniel Vetter
2012-09-05 16:34   ` Jesse Barnes
2012-09-05 19:27     ` Daniel Vetter
2012-08-19 19:12 ` [PATCH 36/58] drm/i915: extract modeset config save/restore code Daniel Vetter
2012-09-05 16:36   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 37/58] drm/i915: extract intel_set_config_compute_mode_changes Daniel Vetter
2012-09-05 16:42   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 38/58] drm/i915: extract intel_set_config_update_output_state Daniel Vetter
2012-09-05 16:44   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 39/58] drm/i915: implement crtc helper semantics relied upon by the fb helper Daniel Vetter
2012-09-05 16:45   ` Jesse Barnes
2012-09-05 19:15     ` Daniel Vetter
2012-08-19 19:12 ` [PATCH 40/58] drm/i915: don't update the fb base if there is no fb Daniel Vetter
2012-09-05 16:47   ` Jesse Barnes
2012-08-19 19:12 ` [PATCH 41/58] drm/i915: convert pointless error checks in set_config to BUGs Daniel Vetter
2012-09-05 16:50   ` Jesse Barnes
2012-09-05 19:19     ` Daniel Vetter
2012-08-19 19:12 ` [PATCH 42/58] drm/i915: don't save all the encoder/crtc state in set_config Daniel Vetter
2012-09-05 16:52   ` Jesse Barnes
2012-09-05 19:21     ` Daniel Vetter
2012-08-19 19:13 ` [PATCH 43/58] drm/i915: stage modeset output changes Daniel Vetter
2012-09-05 17:51   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 44/58] drm/i915: push crtc->fb update into pipe_set_base Daniel Vetter
2012-09-04 19:33   ` [PATCH] " Daniel Vetter
2012-09-05 17:55     ` Jesse Barnes
2012-09-05 19:59       ` Daniel Vetter
2012-09-05 17:54   ` [PATCH 44/58] " Jesse Barnes
2012-08-19 19:13 ` [PATCH 45/58] drm/i915: remove crtc disabling special case Daniel Vetter
2012-09-05 17:56   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 46/58] drm/i915: move output commit and crtc disabling into set_mode Daniel Vetter
2012-09-05 17:58   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 47/58] drm/i915: extract adjusted mode computation Daniel Vetter
2012-09-05 18:00   ` Jesse Barnes
2012-09-05 19:30     ` Daniel Vetter
2012-08-19 19:13 ` [PATCH 48/58] drm/i915: use staged outuput config in tv->mode_fixup Daniel Vetter
2012-09-05 18:02   ` Jesse Barnes
2012-09-06  7:30     ` Daniel Vetter
2012-08-19 19:13 ` [PATCH 49/58] drm/i915: use staged outuput config in lvds->mode_fixup Daniel Vetter
2012-09-05 18:02   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 50/58] drm/i915: compute masks of crtcs affected in set_mode Daniel Vetter
2012-08-29 10:34   ` [PATCH] " Daniel Vetter
2012-09-05 18:09     ` Jesse Barnes
2012-09-05 19:38       ` Daniel Vetter
2012-09-05 19:45         ` Jesse Barnes
2012-09-05 18:07   ` [PATCH 50/58] " Jesse Barnes
2012-08-19 19:13 ` [PATCH 51/58] drm/i915: implement new set_mode code flow Daniel Vetter
2012-09-05 18:14   ` Jesse Barnes
2012-09-05 19:43     ` Daniel Vetter
2012-09-05 19:49       ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 52/58] drm/i915: push commit_output_state past crtc disabling Daniel Vetter
2012-09-05 18:17   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 53/58] drm/i915: s/intel_encoder_disable/intel_encoder_noop Daniel Vetter
2012-09-05 18:17   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 54/58] drm/i915: WARN if the pipe won't turn off Daniel Vetter
2012-09-05 18:18   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 55/58] drm/i915: switch the load detect code to the staged modeset config Daniel Vetter
2012-09-05 18:19   ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 56/58] drm/i915: push commit_output_state past the crtc/encoder preparing Daniel Vetter
2012-08-31 18:12   ` [PATCH] " Daniel Vetter
2012-09-04 19:32     ` Daniel Vetter
2012-09-05 18:28       ` Jesse Barnes
2012-09-05 19:48         ` Daniel Vetter
2012-09-05 18:56           ` [PATCH] drm/i915: push crtc->fb update into pipe_set_base Daniel Vetter
2012-09-05 19:50           ` [PATCH] drm/i915: push commit_output_state past the crtc/encoder preparing Jesse Barnes
2012-09-06 20:46             ` Jesse Barnes
2012-08-19 19:13 ` [PATCH 57/58] drm/i915: disable all crtcs at suspend time Daniel Vetter
2012-08-29 21:13   ` [PATCH] drm/i915: no longer call drm_helper_resume_force_mode Daniel Vetter
2012-09-05 18:31     ` Jesse Barnes
2012-09-05 19:56       ` Daniel Vetter
2012-09-05 20:04         ` Jesse Barnes
2012-09-06 20:47           ` Jesse Barnes
2012-09-05 18:29   ` [PATCH 57/58] drm/i915: disable all crtcs at suspend time Jesse Barnes
2012-08-19 19:13 ` [PATCH 58/58] drm/i915: add tons of modeset state checks Daniel Vetter
2012-08-20  8:24   ` [PATCH] " Daniel Vetter
2012-08-20 12:22   ` Daniel Vetter
2012-08-31 18:12     ` [PATCH 1/2] " Daniel Vetter
2012-08-31 18:12       ` [PATCH 2/2] drm/i915: improve modeset state checking after dpms calls Daniel Vetter
2012-09-05 18:34         ` Jesse Barnes
2012-09-05 18:33       ` [PATCH 1/2] drm/i915: add tons of modeset state checks Jesse Barnes
2012-08-20 13:17 ` [PATCH 00/58] modeset-rework, the basic conversion Jani Nikula
2012-08-21  3:27 ` Ben Widawsky
2012-08-21 17:48 ` Lespiau, Damien
2012-08-21 18:11   ` Daniel Vetter
2012-08-22 10:46     ` Lespiau, Damien
2012-08-22 11:03       ` Lespiau, Damien
2012-08-22 19:13         ` Lespiau, Damien
2012-08-22 21:21           ` Daniel Vetter
2012-08-23 12:26             ` Lespiau, Damien
2012-08-23 22:39               ` Daniel Vetter
2012-08-29 12:26                 ` Lespiau, Damien
2012-08-30 10:40                   ` Rodrigo Vivi
2012-08-21 19:48 ` Chris Wilson
2012-08-27  8:04 ` Vijay Purushothaman
2012-09-03 17:50 ` Paulo Zanoni
2012-09-05 23:23 ` Jesse Barnes
2012-09-06  6:55   ` Daniel Vetter
2012-09-06  7:23     ` Daniel Vetter
2012-09-07  1:08   ` Jesse Barnes
2012-09-07  8:55     ` Daniel Vetter
2012-09-06 21:00 ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1345403595-9678-2-git-send-email-daniel.vetter@ffwll.ch \
    --to=daniel.vetter@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    --subject='Re: [PATCH 01/58] drm/i915: add crtc->enable/disable vfuncs insted of dpms' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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.