mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
drm/amd/display: Re-check seamless boot can be enabled or not
[Why] If the seamless boot feature has already been enabled, and dc_commit_streams is called again before receiving a flip, the driver will adjust the engine clock without turning off the screen, which will cause garbage to occur. However, in reality, the Pixel Clock from the first dc_commit_streams and the second dc_commit_streams are different. [How] If the apply seamless boot flag in the previous stream has not been cleared, and dc_commit_streams is received again, we need to recheck whether seamless boot should be disabled Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Signed-off-by: Paul Hsieh <Paul.Hsieh@amd.com> Signed-off-by: Ivan Lipski <ivan.lipski@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
c798836bb7
commit
d24203bb62
|
|
@ -2147,6 +2147,14 @@ static enum dc_status dc_commit_state_no_check(struct dc *dc, struct dc_state *c
|
|||
if (!dcb->funcs->is_accelerated_mode(dcb)) {
|
||||
disable_vbios_mode_if_required(dc, context);
|
||||
dc->hwss.enable_accelerated_mode(dc, context);
|
||||
} else if (get_seamless_boot_stream_count(dc->current_state) > 0) {
|
||||
/* If the previous Stream still retains the apply seamless boot flag,
|
||||
* it means the OS has not actually performed a flip yet.
|
||||
* At this point, if we receive dc_commit_streams again, we should
|
||||
* once more check whether the actual HW timing matches what the OS
|
||||
* has provided
|
||||
*/
|
||||
disable_vbios_mode_if_required(dc, context);
|
||||
}
|
||||
|
||||
if (dc->hwseq->funcs.wait_for_pipe_update_if_needed) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user