linux/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * i.MX IPUv3 DP Overlay Planes
 *
 * Copyright (C) 2013 Philipp Zabel, Pengutronix
 */

#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_gem_atomic_helper.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_managed.h>

#include <video/imx-ipu-v3.h>

#include "imx-drm.h"
#include "ipuv3-plane.h"

struct ipu_plane_state {};

static inline struct ipu_plane_state *
to_ipu_plane_state(struct drm_plane_state *p)
{}

static unsigned int ipu_src_rect_width(const struct drm_plane_state *state)
{}

static inline struct ipu_plane *to_ipu_plane(struct drm_plane *p)
{}

static const uint32_t ipu_plane_all_formats[] =;

static const uint32_t ipu_plane_rgb_formats[] =;

static const uint64_t ipu_format_modifiers[] =;

static const uint64_t pre_format_modifiers[] =;

int ipu_plane_irq(struct ipu_plane *ipu_plane)
{}

static inline unsigned long
drm_plane_state_to_eba(struct drm_plane_state *state, int plane)
{}

static inline unsigned long
drm_plane_state_to_ubo(struct drm_plane_state *state)
{}

static inline unsigned long
drm_plane_state_to_vbo(struct drm_plane_state *state)
{}

static void ipu_plane_put_resources(struct drm_device *dev, void *ptr)
{}

static int ipu_plane_get_resources(struct drm_device *dev,
				   struct ipu_plane *ipu_plane)
{}

static bool ipu_plane_separate_alpha(struct ipu_plane *ipu_plane)
{}

static void ipu_plane_enable(struct ipu_plane *ipu_plane)
{}

void ipu_plane_disable(struct ipu_plane *ipu_plane, bool disable_dp_channel)
{}

void ipu_plane_disable_deferred(struct drm_plane *plane)
{}

static void ipu_plane_state_reset(struct drm_plane *plane)
{}

static struct drm_plane_state *
ipu_plane_duplicate_state(struct drm_plane *plane)
{}

static void ipu_plane_destroy_state(struct drm_plane *plane,
				    struct drm_plane_state *state)
{}

static bool ipu_plane_format_mod_supported(struct drm_plane *plane,
					   uint32_t format, uint64_t modifier)
{}

static const struct drm_plane_funcs ipu_plane_funcs =;

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

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

static int ipu_chan_assign_axi_id(int ipu_chan)
{}

static void ipu_calculate_bursts(u32 width, u32 cpp, u32 stride,
				 u8 *burstsize, u8 *num_bursts)
{}

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

static const struct drm_plane_helper_funcs ipu_plane_helper_funcs =;

static const struct drm_plane_helper_funcs ipu_primary_plane_helper_funcs =;

bool ipu_plane_atomic_update_pending(struct drm_plane *plane)
{}
int ipu_planes_assign_pre(struct drm_device *dev,
			  struct drm_atomic_state *state)
{}

struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
				 int dma, int dp, unsigned int possible_crtcs,
				 enum drm_plane_type type)
{}