drm/gma500/mrst: Add SDVO clock calculation

We start off by adding SDVO limits and converting all limits to the
generic gma_limit_t stuct. Then we separate clock calculations for
LVDS and SDVO. This will be cleaned up later but keep it simple for now.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500/mrst: Add aux register writes when programming pipe

On SDVO pipes (always Pipe B on mrst) we have to sequentially write the
aux vdc. We might be able to skip programming the primary vdc in
some/most places but we don't care about that now.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500/mrst: Properly route oaktrail hdmi hooks

Since we can have SDVO on Pipe B we better check the output type instead
of pipe number for Oaktrail HDMI.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500/mrst: Add aux register writes to SDVO

This turned out to be tricky. Writing to SDVOB on the primary vdc also
writes to SDVOB on the aux vdc, but reading it back on the primary vdc
always fails. Basically we never read from the primary vdc since we
will end up trashing the aux vdc.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500/mrst: Replace WMs and chickenbits with values from EMGD

For the minnowboard to work the values found in EMGD are required.
This might break Oaktrail but without hardware to test with I cannot
really tell (and do not really care).

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500/mrst: Setup GMBUS for oaktrail/mrst

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500/mrst: HACK! Init SDVO and ignore LVDS

Driving both LVDS and SDVO makes SDVO go crazy. Need to investigate.
This patch will not go into mainline!

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>