On Mon, Dec 16, 2024 at 04:43:35PM -0800, Jessica Zhang wrote: > Add a helper that will handle the correct order of the encoder kickoffs > for concurrent writeback. > > For concurrent writeback, the realtime encoder must always kickoff last > as it will call the trigger flush and start. > > This avoids the following scenario where the writeback encoder > increments the pending kickoff count after the WB_DONE interrupt is > fired: > > If the realtime encoder is kicked off first, the encoder kickoff will > flush/start the encoder and increment the pending kickoff count. The > WB_DONE interrupt then fires (before the writeback encoder is kicked > off). When the writeback encoder enters its kickoff, it will skip the > flush/start (due to CWB being enabled) and hit a frame done timeout > as the frame was kicked off (and the WB_DONE interrupt fired) without > the pending kickoff count being incremented. > > In addition, the writeback timer should only start after the realtime > encoder is kicked off to ensure that we don't get timeouts when the > system has a heavy load (ex. when debug logs are enabled) > > Signed-off-by: Jessica Zhang <quic_jesszhan@xxxxxxxxxxx> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 74 ++++++++++++++++++++++++++------ > 1 file changed, 60 insertions(+), 14 deletions(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> -- With best wishes Dmitry