• Alex Dai's avatar
    drm/i915: GuC-specific firmware loader · 33a732f4
    Alex Dai authored
    This fetches the required firmware image from the filesystem,
    then loads it into the GuC's memory via a dedicated DMA engine.
    
    This patch is derived from GuC loading work originally done by
    Vinit Azad and Ben Widawsky.
    
    v2:
        Various improvements per review comments by Chris Wilson
    
    v3:
        Removed 'wait' parameter to intel_guc_ucode_load() as firmware
            prefetch is no longer supported in the common firmware loader,
    	per Daniel Vetter's request.
        Firmware checker callback fn now returns errno rather than bool.
    
    v4:
        Squash uC-independent code into GuC-specifc loader [Daniel Vetter]
        Don't keep the driver working (by falling back to execlist mode)
            if GuC firmware loading fails [Daniel Vetter]
    
    v5:
        Clarify WOPCM-related #defines [Tom O'Rourke]
        Delete obsolete code no longer required with current h/w & f/w
            [Tom O'Rourke]
        Move the call to intel_guc_ucode_init() later, so that it can
            allocate GEM objects, and have it fetch the firmware; then
    	intel_guc_ucode_load() doesn't need to fetch it later.
            [Daniel Vetter].
    
    v6:
        Update comment describing intel_guc_ucode_load() [Tom O'Rourke]
    
    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>
    33a732f4
i915_drv.h 105 KB