• Daniel Vetter's avatar
    drm/i915: Handle runtime pm in the CRC setup code · 9d8b0588
    Daniel Vetter authored
    The crc code doesn't handle anything really that could drop the
    register state (by design so that we have less complexity). Which
    means userspace may only start crc capture once the pipe is fully set
    up.
    
    With an i-g-t patch this will be the case, but there's still the
    problem that this results in obscure unclaimed register write
    failures. Which is a pain to debug.
    
    So instead make sure we don't have the basic unclaimed register write
    failure by grabbing runtime pm references. And reject completely
    invalid requests with -EIO. This is still racy of course, but for a
    test library we don't really care - if userspace shuts down the pipe
    right afterwards the entire setup will be lost anyway.
    
    v2: Put instead of get, spotted by Damien. Also explain the runtime pm
    dance.
    
    v3: There's really no need for rpm get/put since power_is_enabled only
    checks software state (Damien).
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=86092
    Cc: Damien Lespiau <damien.lespiau@intel.com> (v2)
    Tested-by: default avatarlu hua <huax.lu@intel.com>
    Reviewed-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    9d8b0588
i915_debugfs.c 115 KB