When CMU is first set by DC after resume, we use
_tegra_dc_update_cmu_aligned with force = true, to
force writing of all registers.
Since that write occurs on the next end of frame, it's
possible for a cmu_aligned ioctl to come in beforehand
and overwrite force = false, which will prevent setting
of some registers.
This change takes into consideration the current
status of the force flag when setting that flag due
to new requests.
Bug
1598319
Change-Id: I9d6f55db6faaad5db5107400d224e3ca66366c73
Signed-off-by: Daniel Solomon <daniels@nvidia.com>
Reviewed-on: http://git-master/r/672521
(cherry picked from commit
795c23337d0c31e6914e0e9f6fdf6517549121a6)
Reviewed-on: http://git-master/r/677140
Reviewed-by: Mitch Luban <mluban@nvidia.com>
Tested-by: Mitch Luban <mluban@nvidia.com>
memcpy(&dc->cmu_shadow, cmu, sizeof(dc->cmu));
dc->cmu_shadow_dirty = true;
- dc->cmu_shadow_force_update = force;
+ dc->cmu_shadow_force_update = dc->cmu_shadow_force_update || force;
_tegra_dc_config_frame_end_intr(dc, true);
return 0;