• Archit Taneja's avatar
    drm/msm/mdp5: Add a CAP for Source Split · 621da7d9
    Archit Taneja authored
    Some of the newer MDP5 versions support Source Split of SSPPs. It is a
    feature that allows us to route the output of a hwpipe to 2 Layer
    Mixers. This is required to achieve the following use cases:
    
    - Dual DSI: For high res DSI panels (such as 2560x1600 etc), a single
      DSI interface doesn't have the bandwidth to drive the required pixel
      clock. We use 2 DSI interfaces to drive the left and right halves
      of the panel (i.e, 1280x1600 each). The MDP5 pipeline here would look
      like:
    
             LM0 -- DSPP0 -- INTF1 -- DSI1
            /
    hwpipe--
            \
             LM1 -- DSPP1 -- INTF2 -- DSI2
    
      A single hwpipe is used to scan out the left and right halves to DSI1
      and DSI2 respectively. In order to do this, we need to configure the
      2 Layer Mixers in Source Split mode.
    
    - HDMI 4K: In order to support resolutions with width higher than the
      max width supported by a hwpipe, we club 2 hwpipes together:
    
    hwpipe1 --- LM0 -- DSPP0
           -   -             \
             -                -- 3D Mux -- INTF0 -- HDMI
           -   -             /
    hwpipe2 --- LM1 -- DSPP1
    
      hwpipe1 is staged on the 'left' Layer Mixer, and hwpipe2 is staged on
      the 'right' Layer Mixer. An additional block called the '3D Mux' is
      used to merge the output of the 2 DSPPs to a single interface.
      In this use case, it is possible that a 4K surface is downscaled and
      placed completely within one of the halves. In order to support such
      scenarios (and keep the programming simple), Layer Mixers with Source
      Split can be assigned 2 hw pipes per stage. While scanning out, the HW
      takes care of fetching the pixels fom the correct pipe.
    
    Add a MDP cap to tell whether the HW supports source split or not.
    Add a MDP LM cap that tells whether a LM instance can operate in
    source split mode (and generate the 'left' part of the display
    output).
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    621da7d9
mdp_kms.h 4.18 KB