• Alex Dai's avatar
    drm/i915: Prepare for GuC-based command submission · bac427f8
    Alex Dai authored
    This adds the first of the data structures used to communicate with the
    GuC (the pool of guc_context structures).
    
    We create a GuC-specific wrapper round the GEM object allocator as all
    GEM objects shared with the GuC must be pinned into GGTT space at an
    address that is NOT in the range [0..WOPCM_TOP), as that range of GGTT
    addresses is not accessible to the GuC (from the GuC's point of view,
    it's permanently reserved for other objects such as the BootROM & SRAM).
    
    Later, we will need to allocate additional GuC-sharable objects for the
    submission client(s) and the GuC's debug log.
    
    v2:
        Remove redundant initialisation [Chris Wilson]
        Defer adding struct members until needed [Chris Wilson]
        Local functions should pass dev_priv rather than dev [Chris Wilson]
    
    v5:
        Invalidate GuC TLB after allocating and pinning a new object
    
    v6:
        Rebased
    
    Issue: VIZ-4884
    Signed-off-by: default avatarAlex Dai <yu.dai@intel.com>
    Signed-off-by: default avatarDave Gordon <david.s.gordon@intel.com>
    Reviewed-by: default avatarTom O'Rourke <Tom.O'Rourke@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    bac427f8
i915_guc_submission.c 3.56 KB