• Archit Taneja's avatar
    drm/msm/mdp5: Assign INTF and CTL in encoder's atomic_check() · 502e3550
    Archit Taneja authored
    The INTF and CTL used in a display pipeline are going to be maintained as
    a part of the CRTC state (i.e, in mdp5_crtc_state).
    
    These entities, however, are currently statically assigned to drm_encoders
    (i.e. mdp5_encoder). Since these aren't directly visible to the CRTC, we
    assign them to the CRTC state in the encoder's atomic_check() op.
    
    With this approach, we assign portions of CRTC state in two different
    places: the layer mixer in CRTC's atomic_check(), and the INTF and CTL
    pieces in the encoder's atomic_check() op.
    
    We'd have more options here if the drm core maintained encoder state too,
    but the current approach of clubbing everything in CRTC's state works just
    fine.
    
    Unlike hwpipes and mixers, we don't need to keep a track of INTF/CTL
    assignments in the global atomic state. This is because they're currently
    not sharable resources. For example, INTF0 and CTL0 will always be assigned
    to one drm_encoder. This can change later when we implement writeback and
    want a CRTC to use a CTL for a while, and then release it for others to use
    it. Or, when a drm_encoder can switch between using a single INTF vs
    2 INTFs.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    502e3550
mdp5_encoder.c 13.1 KB