linux/drivers/gpu/drm/msm/mdp/mdp5
Archit Taneja b7621b2a08 drm/msm/mdp5: Add optional 'right' Layer Mixer in CRTC state
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: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
2017-04-08 06:59:34 -04:00
..
mdp5_cfg.c drm/msm/mdp5: Add a CAP for Source Split 2017-04-08 06:59:34 -04:00
mdp5_cfg.h drm/msm/mdp5: describe LM instances in mdp5_cfg 2017-04-08 06:59:33 -04:00
mdp5_cmd_encoder.c drm/msm/mdp5: Remove mixer/intf pointers from mdp5_ctl 2017-04-08 06:59:34 -04:00
mdp5_crtc.c drm/msm/mdp5: Add optional 'right' Layer Mixer in CRTC state 2017-04-08 06:59:34 -04:00
mdp5_ctl.c drm/msm/mdp5: Add optional 'right' Layer Mixer in CRTC state 2017-04-08 06:59:34 -04:00
mdp5_ctl.h drm/msm/mdp5: Add optional 'right' Layer Mixer in CRTC state 2017-04-08 06:59:34 -04:00
mdp5_encoder.c drm/msm/mdp5: Remove mixer/intf pointers from mdp5_ctl 2017-04-08 06:59:34 -04:00
mdp5_irq.c drm/msm/mdp5: dump smp state on errors too 2016-11-27 11:32:35 -05:00
mdp5_kms.c drm/msm/mdp5: Start using parameters from CRTC state 2017-04-08 06:59:34 -04:00
mdp5_kms.h drm/msm/mdp5: Add optional 'right' Layer Mixer in CRTC state 2017-04-08 06:59:34 -04:00
mdp5_mdss.c drm: Remove the struct drm_device platformdev field 2017-02-17 15:27:24 +02:00
mdp5_mixer.c drm/msm/mdp5: Start using parameters from CRTC state 2017-04-08 06:59:34 -04:00
mdp5_mixer.h drm/msm/mdp5: Prepare for dynamic assignment of mixers 2017-04-08 06:59:34 -04:00
mdp5_pipe.c drm/msm/mdp5: Bring back pipe_lock to mdp5_plane struct 2017-04-08 06:59:33 -04:00
mdp5_pipe.h drm/msm/mdp5: Bring back pipe_lock to mdp5_plane struct 2017-04-08 06:59:33 -04:00
mdp5_plane.c drm/msm/mdp5: Remove mixer/intf pointers from mdp5_ctl 2017-04-08 06:59:34 -04:00
mdp5_smp.c drm/msm/mdp5: dump smp state on errors too 2016-11-27 11:32:35 -05:00
mdp5_smp.h drm/msm/mdp5: add debugfs to show smp block status 2016-11-27 11:32:34 -05:00
mdp5.xml.h drm/msm/mdp5: Update generated headers 2017-02-06 11:28:42 -05:00