linux/drivers/gpu/drm/sun4i/sun8i_vi_layer.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) Jernej Skrabec <[email protected]>
 */

#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_blend.h>
#include <drm/drm_crtc.h>
#include <drm/drm_fb_dma_helper.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_atomic_helper.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_probe_helper.h>

#include "sun8i_csc.h"
#include "sun8i_mixer.h"
#include "sun8i_vi_layer.h"
#include "sun8i_vi_scaler.h"

static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel,
					int overlay, struct drm_plane *plane)
{}

static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel,
				       int overlay, struct drm_plane *plane,
				       unsigned int zpos)
{}

static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format)
{}

static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel,
					 int overlay, struct drm_plane *plane)
{}

static int sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel,
					int overlay, struct drm_plane *plane)
{}

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

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

static const struct drm_plane_helper_funcs sun8i_vi_layer_helper_funcs =;

static const struct drm_plane_funcs sun8i_vi_layer_funcs =;

/*
 * While DE2 VI layer supports same RGB formats as UI layer, alpha
 * channel is ignored. This structure lists all unique variants
 * where alpha channel is replaced with "don't care" (X) channel.
 */
static const u32 sun8i_vi_layer_formats[] =;

static const u32 sun8i_vi_layer_de3_formats[] =;

static const uint64_t sun8i_layer_modifiers[] =;

struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
					    struct sun8i_mixer *mixer,
					    int index)
{}