drm/nouveau/kms/nv50-: fix panel scaling
Under certain circumstances, encoder atomic_check() can be entered without adjusted_mode having been reset to the same as mode, which confuses the scaling logic and can lead to a misprogrammed display. Fix this by checking against the user-provided mode directly. Link: https://bugs.freedesktop.org/show_bug.cgi?id=108615 Link: https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/issues/464 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Родитель
ae5769d467
Коммит
3d1890ef80
|
@ -326,9 +326,9 @@ nv50_outp_atomic_check_view(struct drm_encoder *encoder,
|
|||
* same size as the native one (e.g. different
|
||||
* refresh rate)
|
||||
*/
|
||||
if (adjusted_mode->hdisplay == native_mode->hdisplay &&
|
||||
adjusted_mode->vdisplay == native_mode->vdisplay &&
|
||||
adjusted_mode->type & DRM_MODE_TYPE_DRIVER)
|
||||
if (mode->hdisplay == native_mode->hdisplay &&
|
||||
mode->vdisplay == native_mode->vdisplay &&
|
||||
mode->type & DRM_MODE_TYPE_DRIVER)
|
||||
break;
|
||||
mode = native_mode;
|
||||
asyc->scaler.full = true;
|
||||
|
|
Загрузка…
Ссылка в новой задаче