• Praveen Paneri's avatar
    drm/i915/bxt: Broxton decoupled MMIO · 85ee17eb
    Praveen Paneri authored
    Decoupled MMIO is an alternative way to access forcewake domain
    registers, which requires less cycles for a single read/write and
    avoids frequent software forcewake.
    This certainly gives advantage over the forcewake as this new
    mechanism “decouples” CPU cycles and allow them to complete even
    when GT is in a CPD (frequency change) or C6 state.
    
    This can co-exist with forcewake and we will continue to use forcewake
    as appropriate. E.g. 64-bit register writes to avoid writing 2 dwords
    separately and land into funny situations.
    
    v2:
    - Moved platform check out of the function and got rid of duplicate
     functions to find out decoupled power domain (Chris)
    - Added a check for forcewake already held and skipped decoupled
     access (Chris)
    - Skipped writing 64 bit registers through decoupled MMIO (Chris)
    
    v3:
    - Improved commit message with more info on decoupled mmio (Tvrtko)
    - Changed decoupled operation to enum and used u32 instead of
     uint_32 data type for register offset (Tvrtko)
    - Moved HAS_DECOUPLED_MMIO to device info (Tvrtko)
    - Added lookup table for converting fw_engine to pd_engine (Tvrtko)
    - Improved __gen9_decoupled_read and __gen9_decoupled_write
     routines (Tvrtko)
    
    v4:
    - Fixed alignment and variable names (Chris)
    - Write GEN9_DECOUPLED_REG0_DW1 register in just one go (Zhe Wang)
    
    v5:
    - Changed HAS_DECOUPLED_MMIO() argument name to dev_priv (Tvrtko)
    - Sanitize info->had_decoupled_mmio at init (Chris)
    Signed-off-by: default avatarZhe Wang <zhe1.wang@intel.com>
    Signed-off-by: default avatarPraveen Paneri <praveen.paneri@intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1479230360-22395-1-git-send-email-praveen.paneri@intel.com
    85ee17eb
i915_reg.h 327 KB