diff options
author | Dave Airlie <airlied@redhat.com> | 2008-11-10 15:37:16 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-11-10 15:37:16 +1000 |
commit | 195cc0d817f99e25a1e961deeabbb15a40b789ed (patch) | |
tree | d25283ee44cf7ee2f193d44f87b12be25539c152 /linux-core/drm_crtc_helper.c | |
parent | 327631c8b50a90c8f694ffd9ebd0e5c618e99dff (diff) |
drm/radeon: add dpms connector functions
Diffstat (limited to 'linux-core/drm_crtc_helper.c')
-rw-r--r-- | linux-core/drm_crtc_helper.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/linux-core/drm_crtc_helper.c b/linux-core/drm_crtc_helper.c index 58163e51..ebb44794 100644 --- a/linux-core/drm_crtc_helper.c +++ b/linux-core/drm_crtc_helper.c @@ -804,3 +804,30 @@ int drm_helper_resume_force_mode(struct drm_device *dev) return 0; } EXPORT_SYMBOL(drm_helper_resume_force_mode); + +void drm_helper_set_connector_dpms(struct drm_connector *connector, + int dpms_mode) +{ + int i = 0; + struct drm_encoder *encoder; + struct drm_encoder_helper_funcs *encoder_funcs; + struct drm_mode_object *obj; + + for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { + if (connector->encoder_ids[i] == 0) + break; + + obj = drm_mode_object_find(connector->dev, + connector->encoder_ids[i], + DRM_MODE_OBJECT_ENCODER); + if (!obj) + continue; + + encoder = obj_to_encoder(obj); + encoder_funcs = encoder->helper_private; + if (encoder_funcs->dpms) + encoder_funcs->dpms(encoder, dpms_mode); + + } +} +EXPORT_SYMBOL(drm_helper_set_connector_dpms); |