• C
    drm/i915/skl: SKL CDCLK change on modeset tracking VCO · c89e39f3
    Clint Taylor 提交于
    WARNING: Using ChromeOS with an eDP panel and a 4K@60 DP monitor connected
    to DDI1 the system will hard hang during a cold boot. Occurs when DDI1
    is enabled when the cdclk is less then required. DP connected to DDI2
    and HPD on either port works correctly.
    
    Set cdclk based on the max required pixel clock based on VCO
    selected. Track boot vco instead of boot cdclk.
    
    The vco is now tracked at the atomic level and all CRTCs updated if
    the required vco is changed. Not tested with eDP v1.4 panels that
    require 8640 vco due to availability.
    
    V1: initial version
    V2: add vco tracking in intel_dp_compute_config(), rename
    skl_boot_cdclk.
    V3: rebase, V2 feedback not possible as encoders are not aware of
    atomic.
    V4: track target vco is atomic state. modeset all CRTCs if vco changes
    V5: rename atomic variable, cleaner if/else logic, use existing vco if
          encoder does not return a new vco value. check_patch.pl cleanup
    V6: simplify logic in intel_modeset_checks.
    V7: reorder an IF for readability and whitespace fix.
    V8: use dev_cdclk for tracking new cdclk during atomic
    V9: correctly handle vco 8640 when crtcs==0
    V10: Clean up if else in crtcs==0
    V11: Rebase for new intel_dpll_mgr.c
    Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: NClint Taylor <clinton.a.taylor@intel.com>
    [vsyrjala: rebased due to churn]
    Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: NImre Deak <imre.deak@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1463172100-24715-3-git-send-email-ville.syrjala@linux.intel.com
    c89e39f3
i915_drv.h 117.2 KB