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

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

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

#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_blend.h>
#include <drm/drm_fb_dma_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_plane.h>
#include <drm/drm_print.h>

#include "logicvc_crtc.h"
#include "logicvc_drm.h"
#include "logicvc_layer.h"
#include "logicvc_of.h"
#include "logicvc_regs.h"

#define logicvc_layer(p)

static uint32_t logicvc_layer_formats_rgb16[] =;

static uint32_t logicvc_layer_formats_rgb24[] =;

/*
 * What we call depth in this driver only counts color components, not alpha.
 * This allows us to stay compatible with the LogiCVC bistream definitions.
 */
static uint32_t logicvc_layer_formats_rgb24_alpha[] =;

static struct logicvc_layer_formats logicvc_layer_formats[] =;

static bool logicvc_layer_format_inverted(uint32_t format)
{}

static int logicvc_plane_atomic_check(struct drm_plane *drm_plane,
				      struct drm_atomic_state *state)
{}

static void logicvc_plane_atomic_update(struct drm_plane *drm_plane,
					struct drm_atomic_state *state)
{}

static void logicvc_plane_atomic_disable(struct drm_plane *drm_plane,
					 struct drm_atomic_state *state)
{}

static struct drm_plane_helper_funcs logicvc_plane_helper_funcs =;

static const struct drm_plane_funcs logicvc_plane_funcs =;

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)
{}

static struct logicvc_layer_formats *logicvc_layer_formats_lookup(struct logicvc_layer *layer)
{}

static unsigned int logicvc_layer_formats_count(struct logicvc_layer_formats *formats)
{}

static int logicvc_layer_config_parse(struct logicvc_drm *logicvc,
				      struct logicvc_layer *layer)
{}

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)
{}

static int logicvc_layer_init(struct logicvc_drm *logicvc,
			      struct device_node *of_node, u32 index)
{}

static void logicvc_layer_fini(struct logicvc_drm *logicvc,
			       struct logicvc_layer *layer)
{}

void logicvc_layers_attach_crtc(struct logicvc_drm *logicvc)
{}

int logicvc_layers_init(struct logicvc_drm *logicvc)
{}