linux_dsm_epyc7002/drivers/gpu/drm/msm/mdp
Archit Taneja 8480adacfd drm/msm/mdp5: Assign 'right' mixer to CRTC state
Dynamically assign a right mixer to mdp5_crtc_state in the CRTC's
atomic_check path. Assigning the right mixer has some constraints,
i.e, only a few LMs can be paired together. Update mdp5_mixer_assign
to handle these constraints.

Firstly, we need to identify whether we need a right mixer or not.
At the moment, there are 2 scenarios where a right mixer might be
needed:
- If any of the planes connected to this CRTC is too wide (i.e, is
  comprised of 2 hwpipes).
- If the CRTC's mode itself is too wide (i.e, a 4K mode on HDMI).

We implement both these checks in the mdp5_crtc_atomic_check(), and
pass 'need_right_mixer' to mdp5_setup_pipeline.

If a CRTC is already assigned a single mixer, and a new atomic commit
brings in a drm_plane that needs 2 hwpipes, we can successfully commit
this mode without requiring a full modeset, provided that we still use
the previously assigned mixer as the left mixer. If such an assignment
isn't possible, we'd need to do a full modeset. This scenario has been
ignored for now.

The mixer assignment code is a bit messy, considering we have at most
4 LM instances in hardware. This can probably be re-visited later with
simplified logic.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
2017-04-08 06:59:36 -04:00
..
mdp4 drm/msm: Simplify vblank event delivery 2017-04-08 06:59:32 -04:00
mdp5 drm/msm/mdp5: Assign 'right' mixer to CRTC state 2017-04-08 06:59:36 -04:00
mdp_common.xml.h drm/msm: update generated headers 2016-11-28 15:14:10 -05:00
mdp_format.c drm/msm/mdp: Add support for more RGBX formats 2016-05-08 10:22:16 -04:00
mdp_kms.c drm/msm/mdp: Clear pending interrupt status before enable interrupt 2015-08-15 18:27:27 -04:00
mdp_kms.h drm/msm/mdp5: Add a CAP for Source Split 2017-04-08 06:59:34 -04:00