drm/radeon/kms: use LCD physical size from vbios tables if available
authorAlex Deucher <alexdeucher@gmail.com>
Thu, 9 Dec 2010 03:13:05 +0000 (22:13 -0500)
committerDave Airlie <airlied@redhat.com>
Tue, 21 Dec 2010 03:30:59 +0000 (13:30 +1000)
Some systems have the LCD width and height in mm available in the
LCD info table.  Use this info if there is no EDID to provide it.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_atombios.c
drivers/gpu/drm/radeon/radeon_connectors.c

index ac88263..35c5ff0 100644 (file)
@@ -1500,6 +1500,9 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
                if (misc & ATOM_DOUBLE_CLOCK_MODE)
                        lvds->native_mode.flags |= DRM_MODE_FLAG_DBLSCAN;
 
+               lvds->native_mode.width_mm = lvds_info->info.sLCDTiming.usImageHSize;
+               lvds->native_mode.height_mm = lvds_info->info.sLCDTiming.usImageVSize;
+
                /* set crtc values */
                drm_mode_set_crtcinfo(&lvds->native_mode, CRTC_INTERLACE_HALVE_V);
 
index 3bef9f6..f3ba066 100644 (file)
@@ -472,6 +472,9 @@ static int radeon_lvds_get_modes(struct drm_connector *connector)
        if (mode) {
                ret = 1;
                drm_mode_probed_add(connector, mode);
+               /* add the width/height from vbios tables if available */
+               connector->display_info.width_mm = mode->width_mm;
+               connector->display_info.height_mm = mode->height_mm;
                /* add scaled modes */
                radeon_add_common_modes(encoder, connector);
        }