• Sharat Masetty's avatar
    drm/msm/a6xx: Add support for using system cache(LLC) · 474dadb8
    Sharat Masetty authored
    The last level system cache can be partitioned to 32 different
    slices of which GPU has two slices preallocated. One slice is
    used for caching GPU buffers and the other slice is used for
    caching the GPU SMMU pagetables. This talks to the core system
    cache driver to acquire the slice handles, configure the SCID's
    to those slices and activates and deactivates the slices upon
    GPU power collapse and restore.
    
    Some support from the IOMMU driver is also needed to make use
    of the system cache to set the right TCR attributes. GPU then
    has the ability to override a few cacheability parameters which
    it does to override write-allocate to write-no-allocate as the
    GPU hardware does not benefit much from it.
    
    DOMAIN_ATTR_IO_PGTABLE_CFG is another domain level attribute used
    by the IOMMU driver for pagetable configuration which will be used
    to set a quirk initially to set the right attributes to cache the
    hardware pagetables into the system cache.
    Signed-off-by: default avatarSharat Masetty <smasetty@codeaurora.org>
    [saiprakash.ranjan: fix to set attr before device attach to iommu and rebase]
    Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
    474dadb8
a6xx_gpu.h 2.22 KB