• Matt Roper's avatar
    drm/i915/rkl: RKL uses ABOX0 for pixel transfers · 62afef28
    Matt Roper authored
    Rocket Lake uses the same 'abox0' mechanism to handle pixel data
    transfers from memory that gen11 platforms used, rather than the
    abox1/abox2 interfaces used by TGL/DG1.  For the most part this is a
    hardware implementation detail that's transparent to driver software,
    but we do have to program a couple of tuning registers (MBUS_ABOX_CTL
    and BW_BUDDY registers) according to which ABOX instances are used by a
    platform.  Let's track the platform's ABOX usage in the device info
    structure and use that to determine which instances of these registers
    to program.
    
    As an exception to this rule is that even though TGL/DG1 use ABOX1+ABOX2
    for data transfers, we're still directed to program the ABOX_CTL
    register for ABOX0; so we'll handle that as a special case.
    
    v2:
     - Store the mask of platform-specific abox registers in the device
       info structure.
     - Add a TLB_REQ_TIMER() helper macro.  (Aditya)
    
    v3:
     - Squash ABOX and BW_BUDDY patches together and use a single mask for
       both of them, plus a special-case for programming the ABOX0 instance
       on all gen12.  (Ville)
    
    Bspec: 50096
    Bspec: 49218
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Aditya Swarup <aditya.swarup@intel.com>
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200606025740.3308880-2-matthew.d.roper@intel.comReviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    62afef28
intel_display_power.c 165 KB