• Chris Wilson's avatar
    drm/i915: Mark up Ironlake ips with rpm wakerefs · 4a8ab5ea
    Chris Wilson authored
    Currently Ironlake operates under the assumption that rpm awake (and its
    error checking is disabled). As such, we have missed a few places where we
    access registers without taking the rpm wakeref and thus trigger
    warnings. intel_ips being one culprit.
    
    As this involved adding a potentially sleeping rpm_get, we have to
    rearrange the spinlocks slightly and so switch to acquiring a device-ref
    under the spinlock rather than hold the spinlock for the whole
    operation. To be consistent, we make the change in pattern common to the
    intel_ips interface even though this adds a few more atomic operations
    than necessary in a few cases.
    
    v2: Sagar noted the mb around setting mch_dev were overkill as we only
    need ordering there, and that i915_emon_status was still using
    struct_mutex for no reason, but lacked rpm.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Reviewed-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190114142129.24398-21-chris@chris-wilson.co.uk
    4a8ab5ea
intel_pm.c 280 KB