aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-05 07:34:18 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-12 15:31:39 -0400
commit91d1b4bd14fd0bfe87e91a0fd115fcc15c9c9cc5 (patch)
treee1c69165b49814e695f43495d52b488c0ee99996 /drivers/gpu/drm/i915/intel_display.c
parent30e984df4c5633363b45108473b0561e7d89476d (diff)
drm/i915: split up intel_modeset_check_state
Simply grew too large and needed to be split up into parts. Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c44
1 files changed, 36 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 34ddd6f7c31d..0eea23a21f86 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -8138,16 +8138,10 @@ intel_pipe_config_compare(struct drm_device *dev,
8138 return true; 8138 return true;
8139} 8139}
8140 8140
8141void 8141static void
8142intel_modeset_check_state(struct drm_device *dev) 8142check_connector_state(struct drm_device *dev)
8143{ 8143{
8144 drm_i915_private_t *dev_priv = dev->dev_private;
8145 struct intel_crtc *crtc;
8146 struct intel_encoder *encoder;
8147 struct intel_connector *connector; 8144 struct intel_connector *connector;
8148 struct intel_crtc_config pipe_config;
8149 struct intel_dpll_hw_state dpll_hw_state;
8150 int i;
8151 8145
8152 list_for_each_entry(connector, &dev->mode_config.connector_list, 8146 list_for_each_entry(connector, &dev->mode_config.connector_list,
8153 base.head) { 8147 base.head) {
@@ -8158,6 +8152,13 @@ intel_modeset_check_state(struct drm_device *dev)
8158 WARN(&connector->new_encoder->base != connector->base.encoder, 8152 WARN(&connector->new_encoder->base != connector->base.encoder,
8159 "connector's staged encoder doesn't match current encoder\n"); 8153 "connector's staged encoder doesn't match current encoder\n");
8160 } 8154 }
8155}
8156
8157static void
8158check_encoder_state(struct drm_device *dev)
8159{
8160 struct intel_encoder *encoder;
8161 struct intel_connector *connector;
8161 8162
8162 list_for_each_entry(encoder, &dev->mode_config.encoder_list, 8163 list_for_each_entry(encoder, &dev->mode_config.encoder_list,
8163 base.head) { 8164 base.head) {
@@ -8209,6 +8210,15 @@ intel_modeset_check_state(struct drm_device *dev)
8209 tracked_pipe, pipe); 8210 tracked_pipe, pipe);
8210 8211
8211 } 8212 }
8213}
8214
8215static void
8216check_crtc_state(struct drm_device *dev)
8217{
8218 drm_i915_private_t *dev_priv = dev->dev_private;
8219 struct intel_crtc *crtc;
8220 struct intel_encoder *encoder;
8221 struct intel_crtc_config pipe_config;
8212 8222
8213 list_for_each_entry(crtc, &dev->mode_config.crtc_list, 8223 list_for_each_entry(crtc, &dev->mode_config.crtc_list,
8214 base.head) { 8224 base.head) {
@@ -8262,6 +8272,15 @@ intel_modeset_check_state(struct drm_device *dev)
8262 "[sw state]"); 8272 "[sw state]");
8263 } 8273 }
8264 } 8274 }
8275}
8276
8277static void
8278check_shared_dpll_state(struct drm_device *dev)
8279{
8280 drm_i915_private_t *dev_priv = dev->dev_private;
8281 struct intel_crtc *crtc;
8282 struct intel_dpll_hw_state dpll_hw_state;
8283 int i;
8265 8284
8266 for (i = 0; i < dev_priv->num_shared_dpll; i++) { 8285 for (i = 0; i < dev_priv->num_shared_dpll; i++) {
8267 struct intel_shared_dpll *pll = &dev_priv->shared_dplls[i]; 8286 struct intel_shared_dpll *pll = &dev_priv->shared_dplls[i];
@@ -8299,6 +8318,15 @@ intel_modeset_check_state(struct drm_device *dev)
8299 } 8318 }
8300} 8319}
8301 8320
8321void
8322intel_modeset_check_state(struct drm_device *dev)
8323{
8324 check_connector_state(dev);
8325 check_encoder_state(dev);
8326 check_crtc_state(dev);
8327 check_shared_dpll_state(dev);
8328}
8329
8302static int __intel_set_mode(struct drm_crtc *crtc, 8330static int __intel_set_mode(struct drm_crtc *crtc,
8303 struct drm_display_mode *mode, 8331 struct drm_display_mode *mode,
8304 int x, int y, struct drm_framebuffer *fb) 8332 int x, int y, struct drm_framebuffer *fb)