• Tomasz Lis's avatar
    drm/i915/icl: Define MOCS table for Icelake · b3c316b0
    Tomasz Lis authored
    The table has been unified across OSes to minimize virtualization overhead.
    
    The MOCS table is now published as part of bspec, and versioned. Entries
    are supposed to never be modified, but new ones can be added. Adding
    entries increases table version. The patch includes version 1 entries.
    
    Meaning of each entry is now explained in bspec, and user mode clients
    are expected to know what each entry means. The 3 entries used for previous
    platforms are still compatible with their legacy definitions, but that is
    not guaranteed to be true for future platforms.
    
    v2: Fixed SCC values, improved commit comment (Daniele)
    v3: Improved MOCS table comment (Daniele)
    v4: Moved new entries below gen9 ones. Put common entries into
        definition to be used in multiple arrays. (Lucas)
    v5: Made defines for or-ing flags. Renamed macros from MOCS_TABLE
        to MOCS_ENTRIES. Switched LE_CoS to upper case. (Joonas)
    v6: Removed definitions of reserved entries. (Michal)
        Increased limit of entries sent to the hardware on gen11+.
    v7: Simplify table as done for previou gens (Lucas)
    v8: Rebase on cached number of entries per-platform and use new
        MOCS_ENTRY() macro (Lucas)
    v9: Update comment (from Tomasz)
    
    BSpec: 34007
    BSpec: 560
    Signed-off-by: default avatarTomasz Lis <tomasz.lis@intel.com>
    Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190124000604.18861-8-lucas.demarchi@intel.com
    b3c316b0
intel_mocs.c 16.3 KB