• Yunwei Zhang's avatar
    drm/i915: Implement WaProgramMgsrForL3BankSpecificMmioReads · fe864b76
    Yunwei Zhang authored
    L3Bank could be fused off in hardware for debug purpose, and it
    is possible that subslice is enabled while its corresponding L3Bank pairs
    are disabled. In such case, if MCR packet control register(0xFDC) is
    programed to point to a disabled bank pair, a MMIO read into L3Bank range
    will return 0 instead of correct values.
    
    However, this is not going to be the case in any production silicon.
    Therefore, we only check at initialization and issue a warning should
    this really happen.
    
    References: HSDES#1405586840
    
    v2:
     - use fls instead of find_last_bit (Chris)
     - use is_power_of_2() instead of counting bit set (Chris)
    v3:
     - rebase on latest tip
    v5:
     - Added references (Mika)
     - Move local variable into scope where they are used (Ursulin)
     - use a new local variable to reduce long line of code (Ursulin)
    v6:
     - Some coding style and use more local variables for clearer
       logic (Ursulin)
    
    Cc: Oscar Mateo <oscar.mateo@intel.com>
    Cc: Michel Thierry <michel.thierry@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Signed-off-by: default avatarYunwei Zhang <yunwei.zhang@intel.com>
    Reviewed-by: default avatarOscar Mateo <oscar.mateo@intel.com>
    Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/1526683285-24861-1-git-send-email-yunwei.zhang@intel.com
    fe864b76
intel_workarounds.c 29.4 KB