• A.Sunil Kamath's avatar
    drm/i915/skl: Implement enable/disable for Display C5 state. · 6b457d31
    A.Sunil Kamath authored
    This patch just implements the basic enable and disable
    functions of DC5 state which is needed for both SKL and BXT.
    
    Its important to load respective CSR program before calling
    enable, which anyways will happen as CSR program is executed
    during boot.
    
    DC5 is a power saving state where hardware dynamically disables
    power well 1 and the CDCLK PLL and saves the associated registers.
    
    DC5 can be entered when software allows it, power well 2 is
    disabled, and hardware detects that all pipes are disabled
    or pipe A is enabled with PSR active.
    
    Its better to configure display engine to have power well 2 disabled before
    getting into DC5 enable function. Hence rpm framework will have to
    ensure to check status of power well 2 before calling gen9_enable_dc5.
    
    Rather dc5 entry criteria should be decided based on power well 2 status.
    If disabled, then call gen9_enable_dc5.
    
    v2: Replace HAS_ with IS_ check as per Daniel's review comments
    
    v3: Cleared the bits dc5/dc6 enable of DC_STATE_EN register
    before setting them as per Satheesh's review comments.
    
    v4: call POSTING_READ for every write to a register to ensure that
    its written immediately.
    
    v5: Modified as per review comments from Imre.
    - Squashed register definitions into this patch.
    - Finetuned comments and functions.
    
    v6:
    Avoid redundant writes in gen9_set_dc_state_debugmask_memory_up function.
    
    v7:
    - Rebase to latest.
    - Move all runtime PM functions defined in intel_display.c to
      intel_runtime_pm.c.
    
    v8: Rebased to drm-intel-nightly. (Animesh)
    
    Issue: VIZ-2819
    Signed-off-by: default avatarA.Sunil Kamath <sunil.kamath@intel.com>
    Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
    Signed-off-by: default avatarAnimesh Manna <animesh.manna@intel.com>
    Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    6b457d31
intel_runtime_pm.c 52.3 KB