diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2010-03-30 02:39:29 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-04-09 17:16:38 -0400 |
commit | f1c79df3aa2eda4756ddfe976f2eb5aa6507a35a (patch) | |
tree | f35a68c04b3e99d5e15241e9f79d8083035a342a | |
parent | 5daa55eba7d7219616423c6955e90a8f196294a5 (diff) |
drm/i915: Add new helper to return current attached encoder for connector
For introducing splitted encoder/connector structure, this helper will return
connector's attached encoder when needed.
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 412b442dc941..f9e11e863428 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -4983,6 +4983,31 @@ struct drm_encoder *intel_best_encoder(struct drm_connector *connector) | |||
4983 | } | 4983 | } |
4984 | 4984 | ||
4985 | /* | 4985 | /* |
4986 | * Return which encoder is currently attached for connector. | ||
4987 | */ | ||
4988 | struct drm_encoder *intel_attached_encoder (struct drm_connector *connector) | ||
4989 | { | ||
4990 | struct drm_mode_object *obj; | ||
4991 | struct drm_encoder *encoder; | ||
4992 | int i; | ||
4993 | |||
4994 | for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { | ||
4995 | if (connector->encoder_ids[i] == 0) | ||
4996 | break; | ||
4997 | |||
4998 | obj = drm_mode_object_find(connector->dev, | ||
4999 | connector->encoder_ids[i], | ||
5000 | DRM_MODE_OBJECT_ENCODER); | ||
5001 | if (!obj) | ||
5002 | continue; | ||
5003 | |||
5004 | encoder = obj_to_encoder(obj); | ||
5005 | return encoder; | ||
5006 | } | ||
5007 | return NULL; | ||
5008 | } | ||
5009 | |||
5010 | /* | ||
4986 | * set vga decode state - true == enable VGA decode | 5011 | * set vga decode state - true == enable VGA decode |
4987 | */ | 5012 | */ |
4988 | int intel_modeset_vga_set_state(struct drm_device *dev, bool state) | 5013 | int intel_modeset_vga_set_state(struct drm_device *dev, bool state) |
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index d48c31220e02..5b2e3b219801 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -190,6 +190,7 @@ extern void intel_encoder_prepare (struct drm_encoder *encoder); | |||
190 | extern void intel_encoder_commit (struct drm_encoder *encoder); | 190 | extern void intel_encoder_commit (struct drm_encoder *encoder); |
191 | 191 | ||
192 | extern struct drm_encoder *intel_best_encoder(struct drm_connector *connector); | 192 | extern struct drm_encoder *intel_best_encoder(struct drm_connector *connector); |
193 | extern struct drm_encoder *intel_attached_encoder(struct drm_connector *connector); | ||
193 | 194 | ||
194 | extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev, | 195 | extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev, |
195 | struct drm_crtc *crtc); | 196 | struct drm_crtc *crtc); |