• Ville Syrjälä's avatar
    drm/i915: Beef up the IPS vs. CRC workaround · 6e644626
    Ville Syrjälä authored
    Oneshot disabling of IPS when CRC capturing is started is insufficient.
    IPS may get re-enabled by any plane update, and hence tests that keep
    CRC capturing on across plane updates will start to see inconsistent
    results as soon as IPS kicks back in. Add a new knob into the crtc state
    to make sure IPS stays disabled as long as CRC capturing is enabled.
    
    Forcing a modeset is the easiest way to handle this since that's already
    how we do the panel fitter workaround. It's a little heavy handed just
    for IPS, but seeing as we might already do the panel fitter workaround
    I think it's better to follow that. We migth want to optimize both cases
    later if someone gets too upset by the extra delay from the modeset.
    
    v2: Check the right thing when deciding whether to force a modeset
    v3: Rebase, check HAS_IPS before forcing a modeset,
        move ips_force_disable check into pipe_config_supports_ips()
    
    Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Marta Lofstedt <marta.lofstedt@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101664Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Tested-by: Marta Lofsted <marta.lofstedt@intel.com> #v2
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170817145509.15549-1-ville.syrjala@linux.intel.com
    6e644626
intel_pipe_crc.c 22.9 KB