Skip to content

Commit

Permalink
drm/radeon/kms: fix handling of DP to LVDS bridges
Browse files Browse the repository at this point in the history
They need to be treated like eDP rather than DP.

May fix:
https://bugzilla.kernel.org/show_bug.cgi?id=34822

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Alex Deucher authored and Dave Airlie committed Jun 16, 2011
1 parent d6c6695 commit f89931f
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/gpu/drm/radeon/radeon_connectors.c
Original file line number Diff line number Diff line change
Expand Up @@ -1075,7 +1075,8 @@ static int radeon_dp_get_modes(struct drm_connector *connector)
struct drm_encoder *encoder = radeon_best_single_encoder(connector);
int ret;

if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) ||
(connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) {
struct drm_display_mode *mode;

if (!radeon_dig_connector->edp_on)
Expand Down Expand Up @@ -1208,7 +1209,8 @@ radeon_dp_detect(struct drm_connector *connector, bool force)
radeon_connector->edid = NULL;
}

if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) ||
(connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) {
if (encoder) {
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
Expand Down Expand Up @@ -1271,7 +1273,8 @@ static int radeon_dp_mode_valid(struct drm_connector *connector,

/* XXX check mode bandwidth */

if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) ||
(connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) {
struct drm_encoder *encoder = radeon_best_single_encoder(connector);

if ((mode->hdisplay < 320) || (mode->vdisplay < 240))
Expand All @@ -1281,7 +1284,7 @@ static int radeon_dp_mode_valid(struct drm_connector *connector,
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
struct drm_display_mode *native_mode = &radeon_encoder->native_mode;

/* AVIVO hardware supports downscaling modes larger than the panel
/* AVIVO hardware supports downscaling modes larger than the panel
* to the panel size, but I'm not sure this is desirable.
*/
if ((mode->hdisplay > native_mode->hdisplay) ||
Expand Down

0 comments on commit f89931f

Please sign in to comment.