tree b53532d9affed9129c64120b916cf5f7bd016d97
parent 88da05e1742894774144bc6aa750e742d0b10291
author Nico Huber <nico.h@gmx.de> 1568664311 +0200
committer Nico Huber <nico.h@gmx.de> 1570227027 +0000

gma: Refactor Update_Outputs()

In Update_Outputs(), we used to have two steps, iterating over
all available pipes: We disabled all pipes whose mode changed
or that would be disabled otherwise. Then, we enabled all pipes
with new modes.

As checks for validity of the configurations were only done on
demand in the second step, that left us with no knowledge about
what configs would actually be tried. To make this information
available for future work, we add a validation step before the
existing two. That gives us:

 1. Validate all new configs
 2. Disable pipes
    - whose mode changed
    - that were disconnected
    - whose config didn't validate
 3. Enable/update pipes with new configs

This way, we can make global decisions ahead of 2. and 3. based
on the remaining, _valid_ configurations.

We had to turn Pipe_Setup.Scaler_Available() into a Reserve_Scaler()
so we can keep track which new configuration gets to use a scaler.
G45 is still the only case where we have less scalers than pipes
available. To keep that transparent to Update_Outputs() we add the
opaque type `Scaler_Reservation`.

The `Loop_Invariant` of 1. allows us to keep the validation
in mind, to satisfy pre-conditions of the various steps ahead.
To not lose the validation, Fill_Port_Config() needs a post
condition and a little restructuring to prove it.

Change-Id: I079ae8f85c821a272b5d095c1ef437ee804aa9ac
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/libgfxinit/+/35528
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
