Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * Copyright (C) 2019-2022 Bootlin
0004  * Author: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
0005  */
0006 
0007 #ifndef _LOGICVC_LAYER_H_
0008 #define _LOGICVC_LAYER_H_
0009 
0010 #include <linux/of.h>
0011 #include <linux/types.h>
0012 #include <drm/drm_plane.h>
0013 
0014 #define LOGICVC_LAYER_COLORSPACE_RGB        0
0015 #define LOGICVC_LAYER_COLORSPACE_YUV        1
0016 
0017 #define LOGICVC_LAYER_ALPHA_LAYER       0
0018 #define LOGICVC_LAYER_ALPHA_PIXEL       1
0019 
0020 struct logicvc_layer_buffer_setup {
0021     u8 buffer_sel;
0022     u16 voffset;
0023     u16 hoffset;
0024 };
0025 
0026 struct logicvc_layer_config {
0027     u32 colorspace;
0028     u32 depth;
0029     u32 alpha_mode;
0030     u32 base_offset;
0031     u32 buffer_offset;
0032     bool primary;
0033 };
0034 
0035 struct logicvc_layer_formats {
0036     u32 colorspace;
0037     u32 depth;
0038     bool alpha;
0039     uint32_t *formats;
0040 };
0041 
0042 struct logicvc_layer {
0043     struct logicvc_layer_config config;
0044     struct logicvc_layer_formats *formats;
0045     struct device_node *of_node;
0046 
0047     struct drm_plane drm_plane;
0048     struct list_head list;
0049     u32 index;
0050 };
0051 
0052 int logicvc_layer_buffer_find_setup(struct logicvc_drm *logicvc,
0053                     struct logicvc_layer *layer,
0054                     struct drm_plane_state *state,
0055                     struct logicvc_layer_buffer_setup *setup);
0056 struct logicvc_layer *logicvc_layer_get_from_index(struct logicvc_drm *logicvc,
0057                            u32 index);
0058 struct logicvc_layer *logicvc_layer_get_from_type(struct logicvc_drm *logicvc,
0059                           enum drm_plane_type type);
0060 struct logicvc_layer *logicvc_layer_get_primary(struct logicvc_drm *logicvc);
0061 void logicvc_layers_attach_crtc(struct logicvc_drm *logicvc);
0062 int logicvc_layers_init(struct logicvc_drm *logicvc);
0063 
0064 #endif