Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) 2017 The Linux Foundation. All rights reserved.
0004  */
0005 
0006 #ifndef __MDP5_LM_H__
0007 #define __MDP5_LM_H__
0008 
0009 /* represents a hw Layer Mixer, one (or more) is dynamically assigned to a crtc */
0010 struct mdp5_hw_mixer {
0011     int idx;
0012 
0013     const char *name;
0014 
0015     int lm;         /* the LM instance # */
0016     uint32_t caps;
0017     int pp;
0018     int dspp;
0019 
0020     uint32_t flush_mask;      /* used to commit LM registers */
0021 };
0022 
0023 /* global atomic state of assignment between CRTCs and Layer Mixers: */
0024 struct mdp5_hw_mixer_state {
0025     struct drm_crtc *hwmixer_to_crtc[8];
0026 };
0027 
0028 struct mdp5_hw_mixer *mdp5_mixer_init(const struct mdp5_lm_instance *lm);
0029 void mdp5_mixer_destroy(struct mdp5_hw_mixer *lm);
0030 int mdp5_mixer_assign(struct drm_atomic_state *s, struct drm_crtc *crtc,
0031               uint32_t caps, struct mdp5_hw_mixer **mixer,
0032               struct mdp5_hw_mixer **r_mixer);
0033 int mdp5_mixer_release(struct drm_atomic_state *s,
0034                struct mdp5_hw_mixer *mixer);
0035 
0036 #endif /* __MDP5_LM_H__ */