aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-11 18:28:57 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-12 12:53:16 -0500
commitf6a8328898291a2dd0709acd08c039ccaac19554 (patch)
treea9beb63e080acf4cc2e9b57324524231adc4b285 /drivers/gpu/drm/i915/intel_display.c
parentfa9fa083d0606cb323f6105c17702460ea0a6780 (diff)
drm/i915: Pass explicit mode into mode_from_pipe_config v3
We want to reuse this in the fbdev initial config code independently from any fastboot hacks. So allow a bit more flexibility. v2: Forgot to git add ... v3: make non-static (Jesse) 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.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 76a7e0bf4020..2cc18e516a2a 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5263,25 +5263,23 @@ static void intel_get_pipe_timings(struct intel_crtc *crtc,
5263 pipe_config->requested_mode.hdisplay = pipe_config->pipe_src_w; 5263 pipe_config->requested_mode.hdisplay = pipe_config->pipe_src_w;
5264} 5264}
5265 5265
5266static void intel_crtc_mode_from_pipe_config(struct intel_crtc *intel_crtc, 5266void intel_mode_from_pipe_config(struct drm_display_mode *mode,
5267 struct intel_crtc_config *pipe_config) 5267 struct intel_crtc_config *pipe_config)
5268{ 5268{
5269 struct drm_crtc *crtc = &intel_crtc->base; 5269 mode->hdisplay = pipe_config->adjusted_mode.crtc_hdisplay;
5270 mode->htotal = pipe_config->adjusted_mode.crtc_htotal;
5271 mode->hsync_start = pipe_config->adjusted_mode.crtc_hsync_start;
5272 mode->hsync_end = pipe_config->adjusted_mode.crtc_hsync_end;
5270 5273
5271 crtc->mode.hdisplay = pipe_config->adjusted_mode.crtc_hdisplay; 5274 mode->vdisplay = pipe_config->adjusted_mode.crtc_vdisplay;
5272 crtc->mode.htotal = pipe_config->adjusted_mode.crtc_htotal; 5275 mode->vtotal = pipe_config->adjusted_mode.crtc_vtotal;
5273 crtc->mode.hsync_start = pipe_config->adjusted_mode.crtc_hsync_start; 5276 mode->vsync_start = pipe_config->adjusted_mode.crtc_vsync_start;
5274 crtc->mode.hsync_end = pipe_config->adjusted_mode.crtc_hsync_end; 5277 mode->vsync_end = pipe_config->adjusted_mode.crtc_vsync_end;
5275 5278
5276 crtc->mode.vdisplay = pipe_config->adjusted_mode.crtc_vdisplay; 5279 mode->flags = pipe_config->adjusted_mode.flags;
5277 crtc->mode.vtotal = pipe_config->adjusted_mode.crtc_vtotal;
5278 crtc->mode.vsync_start = pipe_config->adjusted_mode.crtc_vsync_start;
5279 crtc->mode.vsync_end = pipe_config->adjusted_mode.crtc_vsync_end;
5280 5280
5281 crtc->mode.flags = pipe_config->adjusted_mode.flags; 5281 mode->clock = pipe_config->adjusted_mode.crtc_clock;
5282 5282 mode->flags |= pipe_config->adjusted_mode.flags;
5283 crtc->mode.clock = pipe_config->adjusted_mode.crtc_clock;
5284 crtc->mode.flags |= pipe_config->adjusted_mode.flags;
5285} 5283}
5286 5284
5287static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc) 5285static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc)
@@ -11380,8 +11378,7 @@ void intel_modeset_setup_hw_state(struct drm_device *dev,
11380 list_for_each_entry(crtc, &dev->mode_config.crtc_list, 11378 list_for_each_entry(crtc, &dev->mode_config.crtc_list,
11381 base.head) { 11379 base.head) {
11382 if (crtc->active && i915.fastboot) { 11380 if (crtc->active && i915.fastboot) {
11383 intel_crtc_mode_from_pipe_config(crtc, &crtc->config); 11381 intel_mode_from_pipe_config(&crtc->base.mode, &crtc->config);
11384
11385 DRM_DEBUG_KMS("[CRTC:%d] found active mode: ", 11382 DRM_DEBUG_KMS("[CRTC:%d] found active mode: ",
11386 crtc->base.base.id); 11383 crtc->base.base.id);
11387 drm_mode_debug_printmodeline(&crtc->base.mode); 11384 drm_mode_debug_printmodeline(&crtc->base.mode);