diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2010-03-30 02:39:27 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-04-09 17:16:36 -0400 |
commit | c5e4df3382681c8ed214ee93bbe8f96044980485 (patch) | |
tree | 9fbe48d3abca053d92545f022d50d3266a58df84 /drivers | |
parent | 5bf4c9c469ffc64b85fed1f3d2b0c8b19909ed13 (diff) |
drm/i915: more conversion from connector_list walk to encoder_list
What we really want is encoder info instead of connector, so change
some more list walk in pipeline setup functions from connector_list
to encoder_list.
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 34d2652f405f..412b442dc941 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -741,12 +741,11 @@ bool intel_pipe_has_type (struct drm_crtc *crtc, int type) | |||
741 | { | 741 | { |
742 | struct drm_device *dev = crtc->dev; | 742 | struct drm_device *dev = crtc->dev; |
743 | struct drm_mode_config *mode_config = &dev->mode_config; | 743 | struct drm_mode_config *mode_config = &dev->mode_config; |
744 | struct drm_connector *l_entry; | 744 | struct drm_encoder *l_entry; |
745 | 745 | ||
746 | list_for_each_entry(l_entry, &mode_config->connector_list, head) { | 746 | list_for_each_entry(l_entry, &mode_config->encoder_list, head) { |
747 | if (l_entry->encoder && | 747 | if (l_entry && l_entry->crtc == crtc) { |
748 | l_entry->encoder->crtc == crtc) { | 748 | struct intel_encoder *intel_encoder = enc_to_intel_encoder(l_entry); |
749 | struct intel_encoder *intel_encoder = to_intel_encoder(l_entry); | ||
750 | if (intel_encoder->type == type) | 749 | if (intel_encoder->type == type) |
751 | return true; | 750 | return true; |
752 | } | 751 | } |
@@ -2923,7 +2922,8 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, | |||
2923 | bool is_crt = false, is_lvds = false, is_tv = false, is_dp = false; | 2922 | bool is_crt = false, is_lvds = false, is_tv = false, is_dp = false; |
2924 | bool is_edp = false; | 2923 | bool is_edp = false; |
2925 | struct drm_mode_config *mode_config = &dev->mode_config; | 2924 | struct drm_mode_config *mode_config = &dev->mode_config; |
2926 | struct drm_connector *connector; | 2925 | struct drm_encoder *encoder; |
2926 | struct intel_encoder *intel_encoder; | ||
2927 | const intel_limit_t *limit; | 2927 | const intel_limit_t *limit; |
2928 | int ret; | 2928 | int ret; |
2929 | struct fdi_m_n m_n = {0}; | 2929 | struct fdi_m_n m_n = {0}; |
@@ -2941,12 +2941,13 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, | |||
2941 | 2941 | ||
2942 | drm_vblank_pre_modeset(dev, pipe); | 2942 | drm_vblank_pre_modeset(dev, pipe); |
2943 | 2943 | ||
2944 | list_for_each_entry(connector, &mode_config->connector_list, head) { | 2944 | list_for_each_entry(encoder, &mode_config->encoder_list, head) { |
2945 | struct intel_encoder *intel_encoder = to_intel_encoder(connector); | ||
2946 | 2945 | ||
2947 | if (!connector->encoder || connector->encoder->crtc != crtc) | 2946 | if (!encoder || encoder->crtc != crtc) |
2948 | continue; | 2947 | continue; |
2949 | 2948 | ||
2949 | intel_encoder = enc_to_intel_encoder(encoder); | ||
2950 | |||
2950 | switch (intel_encoder->type) { | 2951 | switch (intel_encoder->type) { |
2951 | case INTEL_OUTPUT_LVDS: | 2952 | case INTEL_OUTPUT_LVDS: |
2952 | is_lvds = true; | 2953 | is_lvds = true; |
@@ -4391,14 +4392,14 @@ struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe) | |||
4391 | return crtc; | 4392 | return crtc; |
4392 | } | 4393 | } |
4393 | 4394 | ||
4394 | static int intel_connector_clones(struct drm_device *dev, int type_mask) | 4395 | static int intel_encoder_clones(struct drm_device *dev, int type_mask) |
4395 | { | 4396 | { |
4396 | int index_mask = 0; | 4397 | int index_mask = 0; |
4397 | struct drm_connector *connector; | 4398 | struct drm_encoder *encoder; |
4398 | int entry = 0; | 4399 | int entry = 0; |
4399 | 4400 | ||
4400 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 4401 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
4401 | struct intel_encoder *intel_encoder = to_intel_encoder(connector); | 4402 | struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); |
4402 | if (type_mask & intel_encoder->clone_mask) | 4403 | if (type_mask & intel_encoder->clone_mask) |
4403 | index_mask |= (1 << entry); | 4404 | index_mask |= (1 << entry); |
4404 | entry++; | 4405 | entry++; |
@@ -4410,7 +4411,7 @@ static int intel_connector_clones(struct drm_device *dev, int type_mask) | |||
4410 | static void intel_setup_outputs(struct drm_device *dev) | 4411 | static void intel_setup_outputs(struct drm_device *dev) |
4411 | { | 4412 | { |
4412 | struct drm_i915_private *dev_priv = dev->dev_private; | 4413 | struct drm_i915_private *dev_priv = dev->dev_private; |
4413 | struct drm_connector *connector; | 4414 | struct drm_encoder *encoder; |
4414 | 4415 | ||
4415 | intel_crt_init(dev); | 4416 | intel_crt_init(dev); |
4416 | 4417 | ||
@@ -4493,12 +4494,11 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
4493 | if (SUPPORTS_TV(dev)) | 4494 | if (SUPPORTS_TV(dev)) |
4494 | intel_tv_init(dev); | 4495 | intel_tv_init(dev); |
4495 | 4496 | ||
4496 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 4497 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
4497 | struct intel_encoder *intel_encoder = to_intel_encoder(connector); | 4498 | struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); |
4498 | struct drm_encoder *encoder = &intel_encoder->enc; | ||
4499 | 4499 | ||
4500 | encoder->possible_crtcs = intel_encoder->crtc_mask; | 4500 | encoder->possible_crtcs = intel_encoder->crtc_mask; |
4501 | encoder->possible_clones = intel_connector_clones(dev, | 4501 | encoder->possible_clones = intel_encoder_clones(dev, |
4502 | intel_encoder->clone_mask); | 4502 | intel_encoder->clone_mask); |
4503 | } | 4503 | } |
4504 | } | 4504 | } |