• Stanislav Lisovskiy's avatar
    igt/tests: Clear pipes properly in kms_atomic_transition · bc81be69
    Stanislav Lisovskiy authored
    There is an issue happening from time to time in kms_atomic_transition
    (bug #1918). We periodically get assertion that some two outputs
    attempt to use same pipe like this:
    
    "Failed assertion: output->pending_pipe != b->pending_pipe"
    
    After some investigation came to conclusion that this is happening
    because we are calling igt_output_set_pipe(output, PIPE_NONE) only
    for connected outputs, which is wrong.
    Periodically igt_display_refresh/igt_output_refresh call calls can
    update the output state to disconnected. However that doesn't clear
    the pipe being assigned(i.e output->pending_pipe).
    So this causes assertion to be triggered on next igt_display_refresh
    called during commit.
    
    Bugzilla: intel#1918
    
    v2: - Do not use for_each_valid_output_on_pipe as it also iterates
          only on connected outputs(Maarten)
        - Also fix run_modeset_tests function
    Signed-off-by: Stanislav Lisovskiy's avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
    bc81be69
kms_atomic_transition.c 27.9 KB