pwr/memx/nva3: Implement "wait for VBLANK"

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
pwr/memx: Make FB disable and enable explicit

Needs to be done after wait-for-VBLANK, and NVA3 requires register writes in between. Rather than hard-coding register writes, just split out fb_disable and fb_enable.

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
fb/ramnve0: Disable FB before reclocking

This used to be done implicitly

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
pwr/memx: Return debugging information

Time measured from disabling FB to re-enabling, PPWR_IN reveals status of heads at the end of script. Helps debug various issues (like flicker).

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
pwr/memx: Match blobs behaviour

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
fb/sddr3: Expand MR generation

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
fb/sddr2: Generate MR values

V2: Always disable DLL reset

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
nv50/display: Set VBLANK time in modeset script

Solves blinking on reclocking memory. The value set is an underestimate, but with non-reduced vblanking this should give us plenty of time

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
fb/gddr3: Generate MR values
fb/ramnv50: Store the number of partitions in the designated fields
fb/ramfuc: Support strided regs
fb/ramnva3: Per-partition regs
pwr/memx: preserve command order when disabling/enabling FB
fb/ramnva3: Use ram->base structs instead of local structs

This will ease the use of generic timing and MR generation bits later
clock/nva3: Allow user reclocking
bios/ramtrain: DROP Parse ram training table basics
fb/ramnva3: WIP link training unit

XXX: Multiple partitions
fb/ramnva3: Ressurect timing calculation code
fb/ramnva3: WIP Reclocking script for DDR3
WIP train external hook