mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-21 11:44:01 +08:00
drm/radeon/kms: add cvt mode if we only have lvds w/h and no edid (v4)
This fixes LVDS on some mac laptops without a panel edid. v2 - Set proper mode type flags v3 - Note that this is not neceesarily the exact panel mode, but an approximation based on the cvt formula. For these systems we should ideally read the mode info out of the registers or add a mode table, but this works and is much simpler. v4 - Update comments and debug message. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
512889f450
commit
d2efdf6d6f
@ -208,6 +208,18 @@ static struct drm_display_mode *radeon_fp_native_mode(struct drm_encoder *encode
|
|||||||
drm_mode_set_name(mode);
|
drm_mode_set_name(mode);
|
||||||
|
|
||||||
DRM_DEBUG("Adding native panel mode %s\n", mode->name);
|
DRM_DEBUG("Adding native panel mode %s\n", mode->name);
|
||||||
|
} else if (native_mode->hdisplay != 0 &&
|
||||||
|
native_mode->vdisplay != 0) {
|
||||||
|
/* mac laptops without an edid */
|
||||||
|
/* Note that this is not necessarily the exact panel mode,
|
||||||
|
* but an approximation based on the cvt formula. For these
|
||||||
|
* systems we should ideally read the mode info out of the
|
||||||
|
* registers or add a mode table, but this works and is much
|
||||||
|
* simpler.
|
||||||
|
*/
|
||||||
|
mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
|
||||||
|
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
|
||||||
|
DRM_DEBUG("Adding cvt approximation of native panel mode %s\n", mode->name);
|
||||||
}
|
}
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user