aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2010-03-30 02:39:30 -0400
committerEric Anholt <eric@anholt.net>2010-04-09 17:16:38 -0400
commitc1c43977e6fc789cbde094303fa9ace629a35aca (patch)
treee557ffa799acfea2d01d1cfd0bf74d35b3c5868c /drivers/gpu/drm/i915/intel_display.c
parentf1c79df3aa2eda4756ddfe976f2eb5aa6507a35a (diff)
drm/i915: passing drm connector param for load detection
In load detection, connector's encoder assignment must be kept consistent for proper mode setting, and this makes connector as explicit parameter for load detect function to not require single data structure to hold both encoder and connector reference, ease the transition for splitted encoder/connector model. Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f9e11e863428..5a6980082064 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3671,6 +3671,7 @@ static struct drm_display_mode load_detect_mode = {
3671}; 3671};
3672 3672
3673struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder, 3673struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder,
3674 struct drm_connector *connector,
3674 struct drm_display_mode *mode, 3675 struct drm_display_mode *mode,
3675 int *dpms_mode) 3676 int *dpms_mode)
3676{ 3677{
@@ -3729,7 +3730,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder,
3729 } 3730 }
3730 3731
3731 encoder->crtc = crtc; 3732 encoder->crtc = crtc;
3732 intel_encoder->base.encoder = encoder; 3733 connector->encoder = encoder;
3733 intel_encoder->load_detect_temp = true; 3734 intel_encoder->load_detect_temp = true;
3734 3735
3735 intel_crtc = to_intel_crtc(crtc); 3736 intel_crtc = to_intel_crtc(crtc);
@@ -3755,7 +3756,8 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder,
3755 return crtc; 3756 return crtc;
3756} 3757}
3757 3758
3758void intel_release_load_detect_pipe(struct intel_encoder *intel_encoder, int dpms_mode) 3759void intel_release_load_detect_pipe(struct intel_encoder *intel_encoder,
3760 struct drm_connector *connector, int dpms_mode)
3759{ 3761{
3760 struct drm_encoder *encoder = &intel_encoder->enc; 3762 struct drm_encoder *encoder = &intel_encoder->enc;
3761 struct drm_device *dev = encoder->dev; 3763 struct drm_device *dev = encoder->dev;
@@ -3765,7 +3767,7 @@ void intel_release_load_detect_pipe(struct intel_encoder *intel_encoder, int dpm
3765 3767
3766 if (intel_encoder->load_detect_temp) { 3768 if (intel_encoder->load_detect_temp) {
3767 encoder->crtc = NULL; 3769 encoder->crtc = NULL;
3768 intel_encoder->base.encoder = NULL; 3770 connector->encoder = NULL;
3769 intel_encoder->load_detect_temp = false; 3771 intel_encoder->load_detect_temp = false;
3770 crtc->enabled = drm_helper_crtc_in_use(crtc); 3772 crtc->enabled = drm_helper_crtc_in_use(crtc);
3771 drm_helper_disable_unused_functions(dev); 3773 drm_helper_disable_unused_functions(dev);