| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) 2017 The Linux Foundation. All rights reserved. |
| */ |
| |
| #ifndef __MDP5_LM_H__ |
| #define __MDP5_LM_H__ |
| |
| /* represents a hw Layer Mixer, one (or more) is dynamically assigned to a crtc */ |
| struct mdp5_hw_mixer { |
| int idx; |
| |
| const char *name; |
| |
| int lm; /* the LM instance # */ |
| uint32_t caps; |
| int pp; |
| int dspp; |
| |
| uint32_t flush_mask; /* used to commit LM registers */ |
| }; |
| |
| /* global atomic state of assignment between CRTCs and Layer Mixers: */ |
| struct mdp5_hw_mixer_state { |
| struct drm_crtc *hwmixer_to_crtc[8]; |
| }; |
| |
| struct mdp5_hw_mixer *mdp5_mixer_init(struct drm_device *dev, |
| const struct mdp5_lm_instance *lm); |
| int mdp5_mixer_assign(struct drm_atomic_state *s, struct drm_crtc *crtc, |
| uint32_t caps, struct mdp5_hw_mixer **mixer, |
| struct mdp5_hw_mixer **r_mixer); |
| int mdp5_mixer_release(struct drm_atomic_state *s, |
| struct mdp5_hw_mixer *mixer); |
| |
| #endif /* __MDP5_LM_H__ */ |