• Ville Syrjälä's avatar
    drm/i915: Clean up the bigjoiner state copy logic · aeb47df3
    Ville Syrjälä authored
    Currently the bigjoiner state copy logic is kind of
    a byzantine mess.
    
    Clean it up to operate in the following manner during a full
    modeset:
    1) master uapi -> hw state copy
    2) master hw -> slave hw state copy
    
    And during a non-modeset update we do:
    1) master uapi -> hw state light copy
    2) master hw -> slave hw state light copy
    
    I think that is now easier to reason about since we never do
    any kind of master uapi -> slave hw state copy short circuit
    that could happen previously.
    
    Obviously this does now depend on the master uapi->hw copy
    always happening before the master hw -> slave hw copy, but
    that is guaranteed by the fact that we always add both crtcs
    to the state early, the crtcs are registered in pipe
    order (so the compute_config loop happens in pipe order),
    and the hardware requires the master pipe has to be lower
    than the slave pipe as well. And for good measure we shall
    add a check+WARN for this before doing the bigjoiner crtc
    assignment.
    
    v2: Fix uapi.ctm vs. hw.ctm copy-paste fail
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220204072049.1610-1-ville.syrjala@linux.intel.comReviewed-by: default avatarManasi Navare <manasi.d.navare@intel.com>
    aeb47df3
intel_display.c 310 KB