mirror-linux/drivers/gpu/drm/amd/display/dc
Mario Kleiner add61d3c31 drm/amd/display: Only use depth 36 bpp linebuffers on DCN display engines.
Various DCE versions had trouble with 36 bpp lb depth, requiring fixes,
last time in commit 353ca0fa56 ("drm/amd/display: Fix 10bit 4K display
on CIK GPUs") for DCE-8. So far >= DCE-11.2 was considered ok, but now I
found out that on DCE-11.2 it causes dithering when there shouldn't be
any, so identity pixel passthrough with identity gamma LUTs doesn't work
when it should. This breaks various important neuroscience applications,
as reported to me by scientific users of Polaris cards under Ubuntu 22.04
with Linux 5.15, and confirmed by testing it myself on DCE-11.2.

Lets only use depth 36 for DCN engines, where my testing showed that it
is both necessary for high color precision output, e.g., RGBA16 fb's,
and not harmful, as far as more than one year in real-world use showed.

DCE engines seem to work fine for high precision output at 30 bpp, so
this ("famous last words") depth 30 should hopefully fix all known problems
without introducing new ones.

Successfully retested on DCE-11.2 Polaris and DCN-1.0 Raven Ridge on
top of Linux 5.19.0-rc2 + drm-next.

Fixes: 353ca0fa56 ("drm/amd/display: Fix 10bit 4K display on CIK GPUs")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: stable@vger.kernel.org # 5.14.0
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2022-07-13 12:20:37 -04:00
..
basics
bios drm/amd/display: remove redundant CONFIG_DRM_AMD_DC_DCN in dc 2022-05-10 17:53:12 -04:00
clk_mgr drm/amd/display: Fix DC warning at driver load 2022-06-22 17:15:41 -04:00
core drm/amd/display: Only use depth 36 bpp linebuffers on DCN display engines. 2022-07-13 12:20:37 -04:00
dce drm/amd/display: Check if modulo is 0 before dividing. 2022-05-26 14:56:30 -04:00
dce60
dce80
dce100
dce110 drm/amd: Revert "drm/amd/display: keep eDP Vdd on when eDP stream is already enabled" 2022-06-22 17:11:28 -04:00
dce112 drm/amd/display: Use NULL instead of 0 2022-02-24 17:26:20 -05:00
dce120
dcn10 drm/amd/display: add Coverage blend mode for overlay plane 2022-05-26 14:56:33 -04:00
dcn20 amd/display/dc: Fix COLOR_ENCODING and COLOR_RANGE doing nothing for DCN20+ 2022-06-22 17:17:16 -04:00
dcn21 drm/amd/display: Fix memory leak in dcn21_clock_source_create 2022-04-27 17:19:31 -04:00
dcn30 amd/display/dc: Fix COLOR_ENCODING and COLOR_RANGE doing nothing for DCN20+ 2022-06-22 17:17:16 -04:00
dcn31 drm/amd/display: Don't clear ref_dtbclk value 2022-06-01 15:56:48 -04:00
dcn201 amd/display/dc: Fix COLOR_ENCODING and COLOR_RANGE doing nothing for DCN20+ 2022-06-22 17:17:16 -04:00
dcn301 drm/amd/display: Move FPU associated DCN30 code to DML folder 2022-05-26 14:56:31 -04:00
dcn302 drm/amd/display: Move FPU associated DCN30 code to DML folder 2022-05-26 14:56:31 -04:00
dcn303 drm/amd/display: Move FPU associated DCN30 code to DML folder 2022-05-26 14:56:31 -04:00
dcn315 drm/amd/display: protect remaining FPU-code calls on dcn3.1.x 2022-04-28 17:44:02 -04:00
dcn316 drm/amd/display: protect remaining FPU-code calls on dcn3.1.x 2022-04-28 17:44:02 -04:00
dml drm/amd/display: remove stale config guards 2022-06-01 15:57:18 -04:00
dsc drm/display: Move DSC header and helpers into display-helper module 2022-04-25 11:19:36 +02:00
gpio drm/amd/display: remove redundant CONFIG_DRM_AMD_DC_DCN in gpio 2022-05-10 17:53:12 -04:00
hdcp
inc Merge tag 'amd-drm-fixes-5.19-2022-06-08' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes 2022-06-09 17:22:49 +10:00
irq drm/amd/display: remove redundant CONFIG_DRM_AMD_DC_DCN in irq 2022-05-10 17:53:13 -04:00
link drm/amd/display: revert Blank eDP on disable/enable drv 2022-06-01 15:56:48 -04:00
virtual drm/amd/display: add virtual_setup_stream_attribute decl to header 2022-04-19 13:58:32 -04:00
Makefile drm/amd/display: remove redundant CONFIG_DRM_AMD_DC_DCN in dc 2022-05-10 17:53:12 -04:00
dc.h drm/amd/display: 3.2.187 2022-06-01 15:56:49 -04:00
dc_bios_types.h
dc_ddc_types.h
dc_dmub_srv.c
dc_dmub_srv.h
dc_dp_types.h drm/amd/display: add support for handling 128b/132b link training test request 2022-04-05 10:29:48 -04:00
dc_dsc.h
dc_edid_parser.c
dc_edid_parser.h
dc_helper.c
dc_hw_types.h drm/amd/display: move definition of dc_flip_addrs struct 2022-05-10 17:53:12 -04:00
dc_link.h Revert "drm/amd/display: Refactor LTTPR cap retrieval" 2022-05-26 14:56:31 -04:00
dc_stat.h
dc_stream.h drm/amd/display: Keep track of DSC packed PPS 2022-04-25 17:11:54 -04:00
dc_trace.h
dc_types.h drm/amd/display: Add new enum for EDID status 2022-03-15 14:41:34 -04:00
dm_cp_psp.h
dm_event_log.h
dm_helpers.h drm/amd/display: remove redundant CONFIG_DRM_AMD_DC_DCN in dc 2022-05-10 17:53:12 -04:00
dm_pp_smu.h
dm_services.h
dm_services_types.h
irq_types.h drm/amd/display: Remove underflow IRQ type 2022-04-05 10:29:47 -04:00
os_types.h drm: Rename dp/ to display/ 2022-04-25 11:17:45 +02:00