• C
    drm/i915: Convert the forcewake worker into a timer func · 8232644c
    Chris Wilson 提交于
    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: NChris Wilson <chris@chris-wilson.co.uk>
    Cc: Ben Widawsky <ben@bwidawsk.net>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    8232644c
intel_uncore.c 29.1 KB