linux/drivers/gpu/ipu-v3/ipu-prg.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2016-2017 Lucas Stach, Pengutronix
 */

#include <drm/drm_fourcc.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/iopoll.h>
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <video/imx-ipu-v3.h>

#include "ipu-prv.h"

#define IPU_PRG_CTL
#define IPU_PRG_CTL_BYPASS(i)
#define IPU_PRG_CTL_SOFT_ARID_MASK
#define IPU_PRG_CTL_SOFT_ARID_SHIFT(i)
#define IPU_PRG_CTL_SOFT_ARID(i, v)
#define IPU_PRG_CTL_SO(i)
#define IPU_PRG_CTL_VFLIP(i)
#define IPU_PRG_CTL_BLOCK_MODE(i)
#define IPU_PRG_CTL_CNT_LOAD_EN(i)
#define IPU_PRG_CTL_SOFTRST
#define IPU_PRG_CTL_SHADOW_EN

#define IPU_PRG_STATUS
#define IPU_PRG_STATUS_BUFFER0_READY(i)
#define IPU_PRG_STATUS_BUFFER1_READY(i)

#define IPU_PRG_QOS
#define IPU_PRG_QOS_ARID_MASK
#define IPU_PRG_QOS_ARID_SHIFT(i)

#define IPU_PRG_REG_UPDATE
#define IPU_PRG_REG_UPDATE_REG_UPDATE

#define IPU_PRG_STRIDE(i)
#define IPU_PRG_STRIDE_STRIDE_MASK

#define IPU_PRG_CROP_LINE

#define IPU_PRG_THD

#define IPU_PRG_BADDR(i)

#define IPU_PRG_OFFSET(i)

#define IPU_PRG_ILO(i)

#define IPU_PRG_HEIGHT(i)
#define IPU_PRG_HEIGHT_PRE_HEIGHT_MASK
#define IPU_PRG_HEIGHT_PRE_HEIGHT_SHIFT
#define IPU_PRG_HEIGHT_IPU_HEIGHT_MASK
#define IPU_PRG_HEIGHT_IPU_HEIGHT_SHIFT

struct ipu_prg_channel {};

struct ipu_prg {};

static DEFINE_MUTEX(ipu_prg_list_mutex);
static LIST_HEAD(ipu_prg_list);

struct ipu_prg *
ipu_prg_lookup_by_phandle(struct device *dev, const char *name, int ipu_id)
{}

int ipu_prg_max_active_channels(void)
{}
EXPORT_SYMBOL_GPL();

bool ipu_prg_present(struct ipu_soc *ipu)
{}
EXPORT_SYMBOL_GPL();

bool ipu_prg_format_supported(struct ipu_soc *ipu, uint32_t format,
			      uint64_t modifier)
{}
EXPORT_SYMBOL_GPL();

int ipu_prg_enable(struct ipu_soc *ipu)
{}
EXPORT_SYMBOL_GPL();

void ipu_prg_disable(struct ipu_soc *ipu)
{}
EXPORT_SYMBOL_GPL();

/*
 * The channel configuartion functions below are not thread safe, as they
 * must be only called from the atomic commit path in the DRM driver, which
 * is properly serialized.
 */
static int ipu_prg_ipu_to_prg_chan(int ipu_chan)
{}

static int ipu_prg_get_pre(struct ipu_prg *prg, int prg_chan)
{}

static void ipu_prg_put_pre(struct ipu_prg *prg, int prg_chan)
{}

void ipu_prg_channel_disable(struct ipuv3_channel *ipu_chan)
{}
EXPORT_SYMBOL_GPL();

int ipu_prg_channel_configure(struct ipuv3_channel *ipu_chan,
			      unsigned int axi_id, unsigned int width,
			      unsigned int height, unsigned int stride,
			      u32 format, uint64_t modifier, unsigned long *eba)
{}
EXPORT_SYMBOL_GPL();

bool ipu_prg_channel_configure_pending(struct ipuv3_channel *ipu_chan)
{}
EXPORT_SYMBOL_GPL();

static int ipu_prg_probe(struct platform_device *pdev)
{}

static void ipu_prg_remove(struct platform_device *pdev)
{}

#ifdef CONFIG_PM
static int prg_suspend(struct device *dev)
{}

static int prg_resume(struct device *dev)
{}
#endif

static const struct dev_pm_ops prg_pm_ops =;

static const struct of_device_id ipu_prg_dt_ids[] =;

struct platform_driver ipu_prg_drv =;