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

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

#include <media/v4l2-device.h>
#include <media/v4l2-event.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-mc.h>
#include <media/videobuf2-dma-contig.h>
#include <media/videobuf2-v4l2.h>

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

/* Helpers */

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

void sun6i_isp_capture_format(struct sun6i_isp_device *isp_dev,
			      u32 *pixelformat)
{}

/* Format */

static const struct sun6i_isp_capture_format sun6i_isp_capture_formats[] =;

const struct sun6i_isp_capture_format *
sun6i_isp_capture_format_find(u32 pixelformat)
{}

/* Capture */

static void
sun6i_isp_capture_buffer_configure(struct sun6i_isp_device *isp_dev,
				   struct sun6i_isp_buffer *isp_buffer)
{}

void sun6i_isp_capture_configure(struct sun6i_isp_device *isp_dev)
{}

/* State */

static void sun6i_isp_capture_state_cleanup(struct sun6i_isp_device *isp_dev,
					    bool error)
{}

void sun6i_isp_capture_state_update(struct sun6i_isp_device *isp_dev,
				    bool *update)
{}

void sun6i_isp_capture_state_complete(struct sun6i_isp_device *isp_dev)
{}

void sun6i_isp_capture_finish(struct sun6i_isp_device *isp_dev)
{}

/* Queue */

static int sun6i_isp_capture_queue_setup(struct vb2_queue *queue,
					 unsigned int *buffers_count,
					 unsigned int *planes_count,
					 unsigned int sizes[],
					 struct device *alloc_devs[])
{}

static int sun6i_isp_capture_buffer_prepare(struct vb2_buffer *vb2_buffer)
{}

static void sun6i_isp_capture_buffer_queue(struct vb2_buffer *vb2_buffer)
{}

static int sun6i_isp_capture_start_streaming(struct vb2_queue *queue,
					     unsigned int count)
{}

static void sun6i_isp_capture_stop_streaming(struct vb2_queue *queue)
{}

static const struct vb2_ops sun6i_isp_capture_queue_ops =;

/* Video Device */

static void sun6i_isp_capture_format_prepare(struct v4l2_format *format)
{}

static int sun6i_isp_capture_querycap(struct file *file, void *private,
				      struct v4l2_capability *capability)
{}

static int sun6i_isp_capture_enum_fmt(struct file *file, void *private,
				      struct v4l2_fmtdesc *fmtdesc)
{}

static int sun6i_isp_capture_g_fmt(struct file *file, void *private,
				   struct v4l2_format *format)
{}

static int sun6i_isp_capture_s_fmt(struct file *file, void *private,
				   struct v4l2_format *format)
{}

static int sun6i_isp_capture_try_fmt(struct file *file, void *private,
				     struct v4l2_format *format)
{}

static int sun6i_isp_capture_enum_input(struct file *file, void *private,
					struct v4l2_input *input)
{}

static int sun6i_isp_capture_g_input(struct file *file, void *private,
				     unsigned int *index)
{}

static int sun6i_isp_capture_s_input(struct file *file, void *private,
				     unsigned int index)
{}

static const struct v4l2_ioctl_ops sun6i_isp_capture_ioctl_ops =;

static int sun6i_isp_capture_open(struct file *file)
{}

static int sun6i_isp_capture_release(struct file *file)
{}

static const struct v4l2_file_operations sun6i_isp_capture_fops =;

/* Media Entity */

static int sun6i_isp_capture_link_validate(struct media_link *link)
{}

static const struct media_entity_operations sun6i_isp_capture_entity_ops =;

/* Capture */

int sun6i_isp_capture_setup(struct sun6i_isp_device *isp_dev)
{}

void sun6i_isp_capture_cleanup(struct sun6i_isp_device *isp_dev)
{}