• Chris Wilson's avatar
    drm/i915: Convert the forcewake worker into a timer func · 8232644c
    Chris Wilson authored
    We don't want to suffer scheduling delay when turning off the GPU after
    waking it up to touch registers. Ideally, we only want to keep the GPU
    awake for the register access sequence, with a single forcewake dance on
    the first access and release immediately after the last. We set a timer
    on the first access so that we only dance once and on the next scheduler
    tick, we drop the forcewake again.
    
    This moves the cleanup routine from the common i915 workqueue to a timer
    func so that we don't anger powertop, and drop the forcewake again
    quicker.
    
    v2: Enable the deferred force_wake_put for regular register reads as
        well.
    v3: Beautification and make sure we disable forcewake when shutting
        down.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Ben Widawsky <ben@bwidawsk.net>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    8232644c
i915_drv.h 81.6 KB