linux/drivers/media/platform/xilinx/xilinx-vipp.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Xilinx Video IP Composite Device
 *
 * Copyright (C) 2013-2015 Ideas on Board
 * Copyright (C) 2013-2015 Xilinx, Inc.
 *
 * Contacts: Hyun Kwon <[email protected]>
 *           Laurent Pinchart <[email protected]>
 */

#include <linux/list.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/slab.h>

#include <media/v4l2-async.h>
#include <media/v4l2-common.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fwnode.h>

#include "xilinx-dma.h"
#include "xilinx-vipp.h"

#define XVIPP_DMA_S2MM
#define XVIPP_DMA_MM2S

/**
 * struct xvip_graph_entity - Entity in the video graph
 * @asd: subdev asynchronous registration information
 * @entity: media entity, from the corresponding V4L2 subdev
 * @subdev: V4L2 subdev
 */
struct xvip_graph_entity {};

static inline struct xvip_graph_entity *
to_xvip_entity(struct v4l2_async_connection *asd)
{}

/* -----------------------------------------------------------------------------
 * Graph Management
 */

static struct xvip_graph_entity *
xvip_graph_find_entity(struct xvip_composite_device *xdev,
		       const struct fwnode_handle *fwnode)
{}

static int xvip_graph_build_one(struct xvip_composite_device *xdev,
				struct xvip_graph_entity *entity)
{}

static struct xvip_dma *
xvip_graph_find_dma(struct xvip_composite_device *xdev, unsigned int port)
{}

static int xvip_graph_build_dma(struct xvip_composite_device *xdev)
{}

static int xvip_graph_notify_complete(struct v4l2_async_notifier *notifier)
{}

static int xvip_graph_notify_bound(struct v4l2_async_notifier *notifier,
				   struct v4l2_subdev *subdev,
				   struct v4l2_async_connection *asc)
{}

static const struct v4l2_async_notifier_operations xvip_graph_notify_ops =;

static int xvip_graph_parse_one(struct xvip_composite_device *xdev,
				struct fwnode_handle *fwnode)
{}

static int xvip_graph_parse(struct xvip_composite_device *xdev)
{}

static int xvip_graph_dma_init_one(struct xvip_composite_device *xdev,
				   struct device_node *node)
{}

static int xvip_graph_dma_init(struct xvip_composite_device *xdev)
{}

static void xvip_graph_cleanup(struct xvip_composite_device *xdev)
{}

static int xvip_graph_init(struct xvip_composite_device *xdev)
{}

/* -----------------------------------------------------------------------------
 * Media Controller and V4L2
 */

static void xvip_composite_v4l2_cleanup(struct xvip_composite_device *xdev)
{}

static int xvip_composite_v4l2_init(struct xvip_composite_device *xdev)
{}

/* -----------------------------------------------------------------------------
 * Platform Device Driver
 */

static int xvip_composite_probe(struct platform_device *pdev)
{}

static void xvip_composite_remove(struct platform_device *pdev)
{}

static const struct of_device_id xvip_composite_of_id_table[] =;
MODULE_DEVICE_TABLE(of, xvip_composite_of_id_table);

static struct platform_driver xvip_composite_driver =;

module_platform_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();