SF: Generalize immediate mode set to multi-display

When initiating a mode set, HWC may request an immediate mode change, in
which case SF finalizes the change on the same (rather than next) frame.
However, this would only be honored for at most one display, and further
requests would be dropped.

This was a historical hack: The loop used to iterate over mDisplays, and
finalizeDisplayModeChange may recreate/invalidate the DisplayDevice. Now
that the loop is over the immutable mPhysicalDisplays, the DisplayDevice
can be safely recreated within the loop.

Note that the only known user of this code path is ATV, so multi-display
devices should not be affected by this change.

Bug: 255635711
Flag: EXEMPT refactor
Test: DisplayModeSwitchingTest (WithoutRefreshRequired cases)
Change-Id: I842e39c2c5509de99b80fa9561ecb13b66f98c40
2 files changed