• Matt Roper's avatar
    drm/i915/mtl: Add MTL forcewake support · 14f2f9bf
    Matt Roper authored
    MTL has separate forcewake tables for the primary/render GT and the
    media GT; each GT's intel_uncore will use a separate forcewake table and
    should only initialize the domains that are relevant to that GT.  The GT
    ack register also moves to a new location of (GSI base + 0xDFC) on this
    platform.
    
    Note that although our uncore handlers take care of transparently
    redirecting all register accesses in the media GT's GSI range to their
    new offset at 0x380000, the forcewake ranges listed in the table should
    use the final, post-translation offsets.
    
    NOTE:  There are two ranges in the media IP that have multicast
    registers where the two register instances reside in different power
    wells (either VD0 or VD2).  We don't have an easy way to deal with this
    today (and in fact we don't even access these register ranges in the
    driver today), so for now we just mark those ranges as FORCEWAKE_ALL
    which will cause all of the media power wells to be grabbed, ensuring
    proper operation.  If we start reading/writing in those ranges in the
    future, we can re-visit whether it's worth adding extra steering
    complexity into our forcewake support.
    
    Bspec: 67788, 67789, 52077
    Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220910001631.1986601-1-matthew.d.roper@intel.com
    14f2f9bf
intel_uncore.c 90.4 KB