• Archit Taneja's avatar
    drm/msm/mdp5: Add optional 'right' Layer Mixer in CRTC state · b7621b2a
    Archit Taneja authored
    Add another mdp5_hw_mixer pointer (r_mixer) in mdp5_crtc_state.
    This mixer will be used to generate the right half of the scanout.
    
    With Source Split, a SSPP can now be connected to 2 Layer Mixers, but
    has to be at the same blend level (stage #) on both Layer Mixers.
    
    A drm_plane that has a lesser width than the max width supported, will
    comprise of a single SSPP/hwpipe, staged on both the Layer Mixers at
    the same blend level. A plane that is greater than max width will comprise
    of 2 SSPPs, with the 'left' SSPP staged on the left LM, and the 'right'
    SSPP staged on the right LM at the same blend level.
    
    For now, the drm_plane consists of only one SSPP, therefore, it
    needs to be staged on both the LMs in blend_setup() and mdp5_ctl_blend().
    We'll extend this logic to support 2 hwpipes per plane later.
    
    The crtc cursor ops (using the LM cursors, not SSPP cursors) simply
    return an error if they're called when the right mixer is assigned to
    the CRTC state. With source split is enabled, we're expected to only
    SSPP cursors.
    
    This commit adds code that configures the right mixer, but the r_mixer
    itself isn't assigned at the moment.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    b7621b2a
mdp5_crtc.c 29.2 KB