From: jsg Date: Thu, 17 Aug 2023 04:01:21 +0000 (+0000) Subject: drm/amd/display: Handle seamless boot stream X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=0b04846a240f0252ccef82d32aa29973a605b23b;p=openbsd drm/amd/display: Handle seamless boot stream From Rodrigo Siqueira b2415df0afba5a114cececdb556f74b3d7965aa8 in linux-6.1.y/6.1.46 170390e587a69b2a24abac39eb3ae6ec28a4d7f2 in mainline linux --- diff --git a/sys/dev/pci/drm/amd/display/dc/core/dc_resource.c b/sys/dev/pci/drm/amd/display/dc/core/dc_resource.c index 49a850a32ce..2b58cd310e1 100644 --- a/sys/dev/pci/drm/amd/display/dc/core/dc_resource.c +++ b/sys/dev/pci/drm/amd/display/dc/core/dc_resource.c @@ -2788,6 +2788,21 @@ enum dc_status dc_validate_with_context(struct dc *dc, goto fail; } + /* Swap seamless boot stream to pipe 0 (if needed) to ensure pipe_ctx + * matches. This may change in the future if seamless_boot_stream can be + * multiple. + */ + for (i = 0; i < add_streams_count; i++) { + mark_seamless_boot_stream(dc, add_streams[i]); + if (add_streams[i]->apply_seamless_boot_optimization && i != 0) { + struct dc_stream_state *temp = add_streams[0]; + + add_streams[0] = add_streams[i]; + add_streams[i] = temp; + break; + } + } + /* Add new streams and then add all planes for the new stream */ for (i = 0; i < add_streams_count; i++) { calculate_phy_pix_clks(add_streams[i]);