linux/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.c

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

#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fwnode.h>

#include "sun6i_isp.h"
#include "sun6i_isp_capture.h"
#include "sun6i_isp_params.h"
#include "sun6i_isp_proc.h"
#include "sun6i_isp_reg.h"

/* Helpers */

void sun6i_isp_proc_dimensions(struct sun6i_isp_device *isp_dev,
			       unsigned int *width, unsigned int *height)
{}

/* Format */

static const struct sun6i_isp_proc_format sun6i_isp_proc_formats[] =;

const struct sun6i_isp_proc_format *sun6i_isp_proc_format_find(u32 mbus_code)
{}

/* Processor */

static void sun6i_isp_proc_irq_enable(struct sun6i_isp_device *isp_dev)
{}

static void sun6i_isp_proc_irq_disable(struct sun6i_isp_device *isp_dev)
{}

static void sun6i_isp_proc_irq_clear(struct sun6i_isp_device *isp_dev)
{}

static void sun6i_isp_proc_enable(struct sun6i_isp_device *isp_dev,
				  struct sun6i_isp_proc_source *source)
{}

static void sun6i_isp_proc_disable(struct sun6i_isp_device *isp_dev)
{}

static void sun6i_isp_proc_configure(struct sun6i_isp_device *isp_dev)
{}

/* V4L2 Subdev */

static int sun6i_isp_proc_s_stream(struct v4l2_subdev *subdev, int on)
{}

static const struct v4l2_subdev_video_ops sun6i_isp_proc_video_ops =;

static void
sun6i_isp_proc_mbus_format_prepare(struct v4l2_mbus_framefmt *mbus_format)
{}

static int sun6i_isp_proc_init_state(struct v4l2_subdev *subdev,
				     struct v4l2_subdev_state *state)
{}

static int
sun6i_isp_proc_enum_mbus_code(struct v4l2_subdev *subdev,
			      struct v4l2_subdev_state *state,
			      struct v4l2_subdev_mbus_code_enum *code_enum)
{}

static int sun6i_isp_proc_get_fmt(struct v4l2_subdev *subdev,
				  struct v4l2_subdev_state *state,
				  struct v4l2_subdev_format *format)
{}

static int sun6i_isp_proc_set_fmt(struct v4l2_subdev *subdev,
				  struct v4l2_subdev_state *state,
				  struct v4l2_subdev_format *format)
{}

static const struct v4l2_subdev_pad_ops sun6i_isp_proc_pad_ops =;

static const struct v4l2_subdev_ops sun6i_isp_proc_subdev_ops =;

static const struct v4l2_subdev_internal_ops sun6i_isp_proc_internal_ops =;

/* Media Entity */

static const struct media_entity_operations sun6i_isp_proc_entity_ops =;

/* V4L2 Async */

static int sun6i_isp_proc_link(struct sun6i_isp_device *isp_dev,
			       int sink_pad_index,
			       struct v4l2_subdev *remote_subdev, bool enabled)
{}

static int sun6i_isp_proc_notifier_bound(struct v4l2_async_notifier *notifier,
					 struct v4l2_subdev *remote_subdev,
					 struct v4l2_async_connection *async_subdev)
{}

static int
sun6i_isp_proc_notifier_complete(struct v4l2_async_notifier *notifier)
{}

static const struct v4l2_async_notifier_operations
sun6i_isp_proc_notifier_ops =;

/* Processor */

static int sun6i_isp_proc_source_setup(struct sun6i_isp_device *isp_dev,
				       struct sun6i_isp_proc_source *source,
				       u32 port)
{}

int sun6i_isp_proc_setup(struct sun6i_isp_device *isp_dev)
{}

void sun6i_isp_proc_cleanup(struct sun6i_isp_device *isp_dev)
{}