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>
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

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
clock/nva3: Allow user reclocking
fb/ramnv50: Store the number of partitions in the designated fields
bios/ramtrain: Parse ram training table basics
fb/ramnva3: WIP link training unit

XXX: Multiple partitions
fb/ramnva3: Use ram->base structs instead of local structs

This will ease the use of generic timing and MR generation bits later
fb/ramnva3: Ressurect timing calculation code
fb/nva3: WIP Start on some reclocking bits
WIP train external hook
fb/ramnva3: WIP support for DDR2 reclocking
fb/ramfuc: Support strided regs
fb/ramnva3: WIP Per-partition regs
fb/ramnva3: Initialise PART_PM_SEL