Commit 2ffb8429 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie

drm/radeon/kms: make sure LVDS panel is valid in detect()

If the panel data is bogus this can lead to problems
later when the hardware trys to set the mode.  If the
data is invalid, report LVDS as disconnected.

Should fix fdo bug 24247.
Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent b5fc9010
...@@ -415,8 +415,20 @@ static int radeon_lvds_mode_valid(struct drm_connector *connector, ...@@ -415,8 +415,20 @@ static int radeon_lvds_mode_valid(struct drm_connector *connector,
static enum drm_connector_status radeon_lvds_detect(struct drm_connector *connector) static enum drm_connector_status radeon_lvds_detect(struct drm_connector *connector)
{ {
enum drm_connector_status ret = connector_status_connected; enum drm_connector_status ret = connector_status_disconnected;
struct drm_encoder *encoder = radeon_best_single_encoder(connector);
if (encoder) {
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
struct radeon_native_mode *native_mode = &radeon_encoder->native_mode;
/* check if panel is valid */
if (native_mode->panel_xres >= 320 && native_mode->panel_yres >= 240)
ret = connector_status_connected;
}
/* check acpi lid status ??? */ /* check acpi lid status ??? */
radeon_connector_update_scratch_regs(connector, ret); radeon_connector_update_scratch_regs(connector, ret);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment