diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-11 18:28:57 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-12 12:53:16 -0500 |
commit | f6a8328898291a2dd0709acd08c039ccaac19554 (patch) | |
tree | a9beb63e080acf4cc2e9b57324524231adc4b285 /drivers/gpu/drm | |
parent | fa9fa083d0606cb323f6105c17702460ea0a6780 (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')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 31 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 2 |
2 files changed, 16 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 | ||
5266 | static void intel_crtc_mode_from_pipe_config(struct intel_crtc *intel_crtc, | 5266 | void 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 | ||
5287 | static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc) | 5285 | static 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); |
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 3599d93caad4..bff5d0a3f584 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -726,6 +726,8 @@ void hsw_enable_ips(struct intel_crtc *crtc); | |||
726 | void hsw_disable_ips(struct intel_crtc *crtc); | 726 | void hsw_disable_ips(struct intel_crtc *crtc); |
727 | void intel_display_set_init_power(struct drm_device *dev, bool enable); | 727 | void intel_display_set_init_power(struct drm_device *dev, bool enable); |
728 | int valleyview_get_vco(struct drm_i915_private *dev_priv); | 728 | int valleyview_get_vco(struct drm_i915_private *dev_priv); |
729 | void intel_mode_from_pipe_config(struct drm_display_mode *mode, | ||
730 | struct intel_crtc_config *pipe_config); | ||
729 | 731 | ||
730 | /* intel_dp.c */ | 732 | /* intel_dp.c */ |
731 | void intel_dp_init(struct drm_device *dev, int output_reg, enum port port); | 733 | void intel_dp_init(struct drm_device *dev, int output_reg, enum port port); |