drm/i915: Wait for cdclk change to occure when going for 400MHz
VLV Punit doesn't support the 400MHz cdclk option, so we bypass the Punit and poke at CCK directly. However we forgot to wait for the frequeency change to complete. Poll the CCK clock status to make sure the clock has changed before we fire up any pipes. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
e37c67a1c5
commit
a877e8015c
@ -4519,6 +4519,11 @@ static void valleyview_set_cdclk(struct drm_device *dev, int cdclk)
|
||||
val &= ~DISPLAY_FREQUENCY_VALUES;
|
||||
val |= divider;
|
||||
vlv_cck_write(dev_priv, CCK_DISPLAY_CLOCK_CONTROL, val);
|
||||
|
||||
if (wait_for((vlv_cck_read(dev_priv, CCK_DISPLAY_CLOCK_CONTROL) &
|
||||
DISPLAY_FREQUENCY_STATUS) == (divider << DISPLAY_FREQUENCY_STATUS_SHIFT),
|
||||
50))
|
||||
DRM_ERROR("timed out waiting for CDclk change\n");
|
||||
mutex_unlock(&dev_priv->dpio_lock);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user