linux/drivers/gpu/drm/logicvc/logicvc_layer.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2019-2022 Bootlin
 * Author: Paul Kocialkowski <[email protected]>
 */

#ifndef _LOGICVC_LAYER_H_
#define _LOGICVC_LAYER_H_

#include <linux/of.h>
#include <linux/types.h>
#include <drm/drm_plane.h>

#define LOGICVC_LAYER_COLORSPACE_RGB
#define LOGICVC_LAYER_COLORSPACE_YUV

#define LOGICVC_LAYER_ALPHA_LAYER
#define LOGICVC_LAYER_ALPHA_PIXEL

struct logicvc_layer_buffer_setup {};

struct logicvc_layer_config {};

struct logicvc_layer_formats {};

struct logicvc_layer {};

int logicvc_layer_buffer_find_setup(struct logicvc_drm *logicvc,
				    struct logicvc_layer *layer,
				    struct drm_plane_state *state,
				    struct logicvc_layer_buffer_setup *setup);
struct logicvc_layer *logicvc_layer_get_from_index(struct logicvc_drm *logicvc,
						   u32 index);
struct logicvc_layer *logicvc_layer_get_from_type(struct logicvc_drm *logicvc,
						  enum drm_plane_type type);
struct logicvc_layer *logicvc_layer_get_primary(struct logicvc_drm *logicvc);
void logicvc_layers_attach_crtc(struct logicvc_drm *logicvc);
int logicvc_layers_init(struct logicvc_drm *logicvc);

#endif