mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
disp: msm: sde: Ensure that dirty dsc blocks are flushed properly
When a dsc block gets disabled, it is not being flushed properly because the kms_commit clears the flush bits before the next vsync. In a two commit scenario where the first commit disables both dsc blocks within the same dsc block pair, and where the second commit enables only one of the dsc blocks in the pair, only the second commit's dsc block gets flushed properly because checks for dirty dsc blocks are currently only happening if dsc is disabled for the encoder. Since the first commit's disabled dsc block was not flushed to hardware, there will be errors such as pingpong timeouts and fifo underruns, which can lead to distorted images on the panel. This problem manifests itself in suspend/resume scenarios involving dp dsc connections which only use one dsc block. During a suspend, the two dsc blocks that were used by dsi are released due to a null commit coming from userspace. While resuming, depending on the mode, one of these released dsc blocks will be alloted to dp, leading to the problem described above. CRs-Fixed: 2471336 Change-Id: Ifd71c980a04d63a87923eb0bece96646d4804533 Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
This commit is contained in:
parent
6a9e397c73
commit
1fb461e35e
1 changed files with 3 additions and 2 deletions
|
|
@ -4743,10 +4743,11 @@ int sde_encoder_prepare_for_kickoff(struct drm_encoder *drm_enc,
|
|||
SDE_ERROR_ENC(sde_enc, "failed to setup DSC: %d\n", rc);
|
||||
ret = rc;
|
||||
}
|
||||
} else if (_sde_encoder_dsc_is_dirty(sde_enc)) {
|
||||
_helper_flush_dsc(sde_enc);
|
||||
}
|
||||
|
||||
if (_sde_encoder_dsc_is_dirty(sde_enc))
|
||||
_helper_flush_dsc(sde_enc);
|
||||
|
||||
if (sde_enc->cur_master && !sde_enc->cur_master->cont_splash_enabled)
|
||||
sde_configure_qdss(sde_enc, sde_enc->cur_master->hw_qdss,
|
||||
sde_enc->cur_master, sde_kms->qdss_enabled);
|
||||
|
|
|
|||
Loading…
Reference in a new issue