• Dave Gordon's avatar
    drm/i915/guc: don't ever forward VBlank to the GuC · fa7545a4
    Dave Gordon authored
    If a context waiting for VBlank were switched out, switching
    in the next context and generating a CSB event in the process,
    then the GuC would have to put the context back in the queue,
    and then observe the subsequent VBlank interrupt so that it
    could resubmit the suspended context.
    
    However, we always set the CTX_CTRL_INHIBIT_SYN_CTX_SWITCH bit
    in the RING_CONTEXT_CONTROL register, so this case cannot occur.
    Furthermore we don't use the GuC's internal scheduler or allow
    it to auto-resubmit workloads.  Consequently, the GuC doesn't
    need to see VBlanks, and by sending them to it we may be waking
    it up unnecessarily, which might reduce RC6 residency and
    increase power consumption.
    
    So this patch removes the setting of the GFC_FORWARD_VBLANK
    field from the code that diverts interrupts towards the GuC.
    (The code to direct interrupts to the host, OTOH, continues to
    explicitly set the field to "never send VBlanks to the GuC".)
    
    v3:
        Remove the line of code completely (original set the field
        to ALWAYS forward, v1 changed it to CONDITIONAL forwarding,
        v2 explicitly set it to NEVER, v3 just doesn't touch it at
        all, as we know it's already set to NEVER).
    Signed-off-by: default avatarDave Gordon <david.s.gordon@intel.com>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (previous version)
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1466780277-23435-1-git-send-email-david.s.gordon@intel.com
    fa7545a4
intel_guc_loader.c 22.1 KB