• Hans de Goede's avatar
    drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3) · 6be306be
    Hans de Goede authored
    The GOP sometimes initializes the pclk at a (slightly) different frequency
    then the pclk which we've calculated.
    
    This commit makes the DSI code read-back the pclk set by the GOP and
    if that is within a reasonable margin of the calculated pclk, uses
    that instead.
    
    This fixes the first modeset being a full modeset instead of a
    fast modeset on systems where the GOP pclk is different.
    
    Changes in v2:
    -Use intel_encoder_current_mode() to get the pclk setup by the GOP
    
    Changes in v3:
    -Back to the readback approach, skipping the dsi_pll.ctrl / .dev checks
     in intel_pipe_config_compare() when adjust is set leads to:
     [drm:pipe_config_err [i915]] *ERROR* mismatch in dsi_pll.ctrl (...)
     [drm:pipe_config_err [i915]] *ERROR* mismatch in dsi_pll.div (...)
    -Do the readback and pclk overriding from vlv_dsi_init(), rather then from
     intel_dsi_vbt_init() as the vbt code should not be touching the hw
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190605181735.7020-3-hdegoede@redhat.com
    6be306be
vlv_dsi.c 59.4 KB