drm/msm/mdp5: fix missing CTL flush
authorRob Clark <robdclark@gmail.com>
Tue, 3 Jul 2018 12:14:32 +0000 (08:14 -0400)
committerRob Clark <robdclark@gmail.com>
Wed, 25 Jul 2018 11:51:04 +0000 (07:51 -0400)
commit6e8bed6a3e2fd6f1e82ea9b1f705bbc82060a2b7
treed364cf453c0ac536e33fc993c6e0b43c950f0955
parent64709686dbb38f32045e117ec5a1aaf2e3a0a3c4
drm/msm/mdp5: fix missing CTL flush

f9cb8d8d836e fixed various race conditions with CTL flush, in particular
flushing and sending the START signal before encoder state was updated.
But it did this a little too well in some cases that don't trigger
encoder->enable(), and CTL[n].FLUSH would never be set.  When page flips
happen it would paper over the bug, since the first plag flip would
flush out the state to the hardware.

The issue could be reproduced with, for example, modetest (without the
'-v' argument).

Fixes: f9cb8d8d836e drm/msm/mdp5: rework CTL START signal handling
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
drivers/gpu/drm/msm/disp/mdp5/mdp5_encoder.c