summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter2012-08-31 17:37:33 +0200
committerDaniel Vetter2012-09-06 08:21:31 +0200
commitb980514c9adf403e3f43ead08196f5ce0e61fd05 (patch)
treee79ad30daa62b94644390c9027677b10ed1e6ed3
parentdrm/i915: add tons of modeset state checks (diff)
downloadkernel-qcow2-linux-b980514c9adf403e3f43ead08196f5ce0e61fd05.tar.gz
kernel-qcow2-linux-b980514c9adf403e3f43ead08196f5ce0e61fd05.tar.xz
kernel-qcow2-linux-b980514c9adf403e3f43ead08196f5ce0e61fd05.zip
drm/i915: improve modeset state checking after dpms calls
Now that we have solid modeset state tracking and checking code in place, we can do the Full Monty also after dpms calls. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c2
-rw-r--r--drivers/gpu/drm/i915/intel_display.c6
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c2
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h3
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c2
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c2
6 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index cca266f72a4c..b9f08f66a4a4 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -177,7 +177,7 @@ static void intel_crt_dpms(struct drm_connector *connector, int mode)
intel_crtc_update_dpms(crtc);
}
- intel_connector_check_state(to_intel_connector(connector));
+ intel_modeset_check_state(connector->dev);
}
static int intel_crt_mode_valid(struct drm_connector *connector,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index d15fa0c6ae88..44318bf8e7b9 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3585,7 +3585,7 @@ void intel_encoder_dpms(struct intel_encoder *encoder, int mode)
/* Cross check the actual hw state with our own modeset state tracking (and it's
* internal consistency). */
-void intel_connector_check_state(struct intel_connector *connector)
+static void intel_connector_check_state(struct intel_connector *connector)
{
if (connector->get_hw_state(connector)) {
struct intel_encoder *encoder = connector->encoder;
@@ -3639,7 +3639,7 @@ void intel_connector_dpms(struct drm_connector *connector, int mode)
else
WARN_ON(encoder->connectors_active != false);
- intel_connector_check_state(to_intel_connector(connector));
+ intel_modeset_check_state(connector->dev);
}
/* Simple connector->get_hw_state implementation for encoders that support only
@@ -6872,7 +6872,7 @@ intel_modeset_update_state(struct drm_device *dev, unsigned prepare_pipes)
base.head) \
if (mask & (1 <<(intel_crtc)->pipe)) \
-static void
+void
intel_modeset_check_state(struct drm_device *dev)
{
struct intel_crtc *crtc;
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 3b1c407699c7..d391e67231b7 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1362,7 +1362,7 @@ intel_dp_dpms(struct drm_connector *connector, int mode)
intel_encoder_dpms(&intel_dp->base, mode);
}
- intel_connector_check_state(to_intel_connector(connector));
+ intel_modeset_check_state(connector->dev);
}
/*
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 2061399d92c1..19e69285ba31 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -455,7 +455,8 @@ extern void intel_encoder_dpms(struct intel_encoder *encoder, int mode);
extern bool intel_encoder_check_is_cloned(struct intel_encoder *encoder);
extern void intel_connector_dpms(struct drm_connector *, int mode);
extern bool intel_connector_get_hw_state(struct intel_connector *connector);
-extern void intel_connector_check_state(struct intel_connector *);
+extern void intel_modeset_check_state(struct drm_device *dev);
+
static inline struct intel_encoder *intel_attached_encoder(struct drm_connector *connector)
{
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index aa1bf57963b1..4f1fdcc44005 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -189,7 +189,7 @@ static void intel_dvo_dpms(struct drm_connector *connector, int mode)
intel_crtc_update_dpms(crtc);
}
- intel_connector_check_state(to_intel_connector(connector));
+ intel_modeset_check_state(connector->dev);
}
static int intel_dvo_mode_valid(struct drm_connector *connector,
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 6f538719b727..07d39212dcad 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -1275,7 +1275,7 @@ static void intel_sdvo_dpms(struct drm_connector *connector, int mode)
intel_sdvo_set_active_outputs(intel_sdvo, intel_sdvo->attached_output);
}
- intel_connector_check_state(to_intel_connector(connector));
+ intel_modeset_check_state(connector->dev);
}
static int intel_sdvo_mode_valid(struct drm_connector *connector,