brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 4a4b02e Raw
65 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright (C) 2019-2022 Bootlin4 * Author: Paul Kocialkowski <paul.kocialkowski@bootlin.com>5 */6 7#ifndef _LOGICVC_LAYER_H_8#define _LOGICVC_LAYER_H_9 10#include <linux/of.h>11#include <linux/types.h>12#include <drm/drm_plane.h>13 14#define LOGICVC_LAYER_COLORSPACE_RGB		015#define LOGICVC_LAYER_COLORSPACE_YUV		116 17#define LOGICVC_LAYER_ALPHA_LAYER		018#define LOGICVC_LAYER_ALPHA_PIXEL		119 20struct logicvc_layer_buffer_setup {21	u8 buffer_sel;22	u16 voffset;23	u16 hoffset;24};25 26struct logicvc_layer_config {27	u32 colorspace;28	u32 depth;29	u32 alpha_mode;30	u32 base_offset;31	u32 buffer_offset;32	bool primary;33};34 35struct logicvc_layer_formats {36	u32 colorspace;37	u32 depth;38	bool alpha;39	uint32_t *formats;40};41 42struct logicvc_layer {43	struct logicvc_layer_config config;44	struct logicvc_layer_formats *formats;45	struct device_node *of_node;46 47	struct drm_plane drm_plane;48	struct list_head list;49	u32 index;50};51 52int logicvc_layer_buffer_find_setup(struct logicvc_drm *logicvc,53				    struct logicvc_layer *layer,54				    struct drm_plane_state *state,55				    struct logicvc_layer_buffer_setup *setup);56struct logicvc_layer *logicvc_layer_get_from_index(struct logicvc_drm *logicvc,57						   u32 index);58struct logicvc_layer *logicvc_layer_get_from_type(struct logicvc_drm *logicvc,59						  enum drm_plane_type type);60struct logicvc_layer *logicvc_layer_get_primary(struct logicvc_drm *logicvc);61void logicvc_layers_attach_crtc(struct logicvc_drm *logicvc);62int logicvc_layers_init(struct logicvc_drm *logicvc);63 64#endif65