• Daniele Ceraolo Spurio's avatar
    drm/xe/gsc: GSC FW load · dd0e89e5
    Daniele Ceraolo Spurio authored
    The GSC FW must be copied in a 4MB stolen memory allocation, whose GGTT
    address is then passed as a parameter to a dedicated load instruction
    submitted via the GSC engine.
    
    Since the GSC load is relatively slow (up to 250ms), we perform it
    asynchronously via a worker. This requires us to make sure that the
    worker has stopped before suspending/unloading.
    
    Note that we can't yet use xe_migrate_copy for the copy because it
    doesn't work with stolen memory right now, so we do a memcpy from the
    CPU side instead.
    
    v2: add comment about timeout value, fix GSC status checking
        before load (John)
    
    Bspec: 65306, 65346
    Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
    Cc: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    dd0e89e5
xe_gsc_commands.h 1.12 KB