diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-08-03 19:59:20 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-08-03 20:03:50 -0400 |
commit | 5b1714d386a2f0c0d270e3abe1ac39ad1b0ba010 (patch) | |
tree | 8992a96ad5edcbc60b44d3541588309d8b866293 /drivers/gpu/drm/radeon/radeon_encoders.c | |
parent | d65d65b175a29bd7ea2bb69c046419329c4a5db7 (diff) |
drm/radeon/kms: enable underscan option for digital connectors
This connector attribute allows you to enable or disable underscan
on a digital output to compensate for panels that automatically
overscan (e.g., many HDMI TVs). Valid values for the attribute are:
off - forces underscan off
on - forces underscan on
auto - enables underscan if an HDMI TV is connected, off otherwise
default value is auto.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_encoders.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 5e7a0536c9c9..4a4ff983cef5 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -212,7 +212,7 @@ void radeon_encoder_set_active_device(struct drm_encoder *encoder) | |||
212 | } | 212 | } |
213 | } | 213 | } |
214 | 214 | ||
215 | static struct drm_connector * | 215 | struct drm_connector * |
216 | radeon_get_connector_for_encoder(struct drm_encoder *encoder) | 216 | radeon_get_connector_for_encoder(struct drm_encoder *encoder) |
217 | { | 217 | { |
218 | struct drm_device *dev = encoder->dev; | 218 | struct drm_device *dev = encoder->dev; |
@@ -1694,6 +1694,7 @@ radeon_add_atom_encoder(struct drm_device *dev, uint32_t encoder_id, uint32_t su | |||
1694 | radeon_encoder->encoder_id = encoder_id; | 1694 | radeon_encoder->encoder_id = encoder_id; |
1695 | radeon_encoder->devices = supported_device; | 1695 | radeon_encoder->devices = supported_device; |
1696 | radeon_encoder->rmx_type = RMX_OFF; | 1696 | radeon_encoder->rmx_type = RMX_OFF; |
1697 | radeon_encoder->underscan_type = UNDERSCAN_OFF; | ||
1697 | 1698 | ||
1698 | switch (radeon_encoder->encoder_id) { | 1699 | switch (radeon_encoder->encoder_id) { |
1699 | case ENCODER_OBJECT_ID_INTERNAL_LVDS: | 1700 | case ENCODER_OBJECT_ID_INTERNAL_LVDS: |
@@ -1707,6 +1708,7 @@ radeon_add_atom_encoder(struct drm_device *dev, uint32_t encoder_id, uint32_t su | |||
1707 | } else { | 1708 | } else { |
1708 | drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); | 1709 | drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); |
1709 | radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); | 1710 | radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); |
1711 | radeon_encoder->underscan_type = UNDERSCAN_AUTO; | ||
1710 | } | 1712 | } |
1711 | drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); | 1713 | drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); |
1712 | break; | 1714 | break; |
@@ -1736,6 +1738,7 @@ radeon_add_atom_encoder(struct drm_device *dev, uint32_t encoder_id, uint32_t su | |||
1736 | } else { | 1738 | } else { |
1737 | drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); | 1739 | drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); |
1738 | radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); | 1740 | radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); |
1741 | radeon_encoder->underscan_type = UNDERSCAN_AUTO; | ||
1739 | } | 1742 | } |
1740 | drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); | 1743 | drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); |
1741 | break; | 1744 | break; |