mirror of
https://github.com/torvalds/linux.git
synced 2026-10-15 20:30:02 +02:00
decide_crtc_timing_for_drm_display_mode() copies the native mode's CRTC
timing into the requested mode when clock, htotal and vtotal match.
That is meant for the modes amdgpu inserts itself:
amdgpu_dm_create_common_mode() duplicates the native mode and changes
only hdisplay and vdisplay, so those are sent with the native timing
and scaled.
A sink can also offer a real mode with the same clock and totals as
its native mode. CTA-861 VIC 102 (4096x2160@60) and VIC 97
(3840x2160@60) both use 594 MHz and 4400x2250. With 3840x2160@60 as
the preferred mode, a 4096x2160@60 request goes out with the 3840x2160
timing and the framebuffer scaled into it (dst 3840x2025 at y=67),
while the AVI InfoFrame still carries VIC 102. A JVC projector then
reports 3840x2160 and shows a corrupted right edge. 4096x2160@24,
whose totals differ, is sent and displayed correctly.
Inserted modes keep the native sync positions; a real mode with its
own active width does not. Compare those too, so only inserted modes
are patched.
Fixes:
|
||
|---|---|---|
| .. | ||
| .kunitconfig | ||
| amdgpu_dm_audio_test.c | ||
| amdgpu_dm_backlight_test.c | ||
| amdgpu_dm_color_test.c | ||
| amdgpu_dm_colorop_test.c | ||
| amdgpu_dm_connector_test.c | ||
| amdgpu_dm_crc_test.c | ||
| amdgpu_dm_crtc_test.c | ||
| amdgpu_dm_cursor_test.c | ||
| amdgpu_dm_dmub_test.c | ||
| amdgpu_dm_freesync_test.c | ||
| amdgpu_dm_hdcp_test.c | ||
| amdgpu_dm_helpers_test.c | ||
| amdgpu_dm_irq_test.c | ||
| amdgpu_dm_ism_test.c | ||
| amdgpu_dm_kunit_helpers.c | ||
| amdgpu_dm_kunit_test_helpers.h | ||
| amdgpu_dm_mst_types_test.c | ||
| amdgpu_dm_plane_test.c | ||
| amdgpu_dm_pp_smu_test.c | ||
| amdgpu_dm_psr_test.c | ||
| amdgpu_dm_quirks_test.c | ||
| amdgpu_dm_replay_test.c | ||
| amdgpu_dm_services_test.c | ||
| amdgpu_dm_test.c | ||
| amdgpu_dm_wb_test.c | ||
| Makefile | ||