linux/drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (C) 2017 The Linux Foundation. All rights reserved.
   4 */
   5
   6#ifndef __MDP5_LM_H__
   7#define __MDP5_LM_H__
   8
   9/* represents a hw Layer Mixer, one (or more) is dynamically assigned to a crtc */
  10struct mdp5_hw_mixer {
  11        int idx;
  12
  13        const char *name;
  14
  15        int lm;                 /* the LM instance # */
  16        uint32_t caps;
  17        int pp;
  18        int dspp;
  19
  20        uint32_t flush_mask;      /* used to commit LM registers */
  21};
  22
  23/* global atomic state of assignment between CRTCs and Layer Mixers: */
  24struct mdp5_hw_mixer_state {
  25        struct drm_crtc *hwmixer_to_crtc[8];
  26};
  27
  28struct mdp5_hw_mixer *mdp5_mixer_init(const struct mdp5_lm_instance *lm);
  29void mdp5_mixer_destroy(struct mdp5_hw_mixer *lm);
  30int mdp5_mixer_assign(struct drm_atomic_state *s, struct drm_crtc *crtc,
  31                      uint32_t caps, struct mdp5_hw_mixer **mixer,
  32                      struct mdp5_hw_mixer **r_mixer);
  33void mdp5_mixer_release(struct drm_atomic_state *s,
  34                        struct mdp5_hw_mixer *mixer);
  35
  36#endif /* __MDP5_LM_H__ */
  37