linux/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Driver for STM32 Digital Camera Memory Interface Pixel Processor
 *
 * Copyright (C) STMicroelectronics SA 2023
 * Authors: Hugues Fruchet <[email protected]>
 *          Alain Volmat <[email protected]>
 *          for STMicroelectronics.
 */

#include <linux/vmalloc.h>
#include <linux/v4l2-mediabus.h>
#include <media/v4l2-rect.h>
#include <media/v4l2-subdev.h>

#include "dcmipp-common.h"

#define DCMIPP_P0FCTCR
#define DCMIPP_P0FCTCR_FRATE_MASK
#define DCMIPP_P0SCSTR
#define DCMIPP_P0SCSTR_HSTART_SHIFT
#define DCMIPP_P0SCSTR_VSTART_SHIFT
#define DCMIPP_P0SCSZR
#define DCMIPP_P0SCSZR_ENABLE
#define DCMIPP_P0SCSZR_HSIZE_SHIFT
#define DCMIPP_P0SCSZR_VSIZE_SHIFT
#define DCMIPP_P0PPCR
#define DCMIPP_P0PPCR_BSM_1_2
#define DCMIPP_P0PPCR_BSM_1_4
#define DCMIPP_P0PPCR_BSM_2_4
#define DCMIPP_P0PPCR_BSM_MASK
#define DCMIPP_P0PPCR_BSM_SHIFT
#define DCMIPP_P0PPCR_LSM
#define DCMIPP_P0PPCR_OELS

#define IS_SINK(pad)
#define IS_SRC(pad)

struct dcmipp_byteproc_pix_map {};

#define PIXMAP_MBUS_BPP(mbus, byteperpixel)
static const struct dcmipp_byteproc_pix_map dcmipp_byteproc_pix_map_list[] =;

static const struct dcmipp_byteproc_pix_map *
dcmipp_byteproc_pix_map_by_code(u32 code)
{}

struct dcmipp_byteproc_device {};

static const struct v4l2_mbus_framefmt fmt_default =;

static const struct v4l2_rect crop_min =;

static void dcmipp_byteproc_adjust_crop(struct v4l2_rect *r,
					struct v4l2_rect *compose)
{}

static void dcmipp_byteproc_adjust_compose(struct v4l2_rect *r,
					   const struct v4l2_mbus_framefmt *fmt)
{}

static void dcmipp_byteproc_adjust_fmt(struct v4l2_mbus_framefmt *fmt)
{}

static int dcmipp_byteproc_init_state(struct v4l2_subdev *sd,
				      struct v4l2_subdev_state *sd_state)
{}

static int
dcmipp_byteproc_enum_mbus_code(struct v4l2_subdev *sd,
			       struct v4l2_subdev_state *sd_state,
			       struct v4l2_subdev_mbus_code_enum *code)
{}

static int
dcmipp_byteproc_enum_frame_size(struct v4l2_subdev *sd,
				struct v4l2_subdev_state *sd_state,
				struct v4l2_subdev_frame_size_enum *fse)
{}

static int dcmipp_byteproc_set_fmt(struct v4l2_subdev *sd,
				   struct v4l2_subdev_state *sd_state,
				   struct v4l2_subdev_format *fmt)
{}

static int dcmipp_byteproc_get_selection(struct v4l2_subdev *sd,
					 struct v4l2_subdev_state *sd_state,
					 struct v4l2_subdev_selection *s)
{}

static int dcmipp_byteproc_set_selection(struct v4l2_subdev *sd,
					 struct v4l2_subdev_state *sd_state,
					 struct v4l2_subdev_selection *s)
{}

static const struct v4l2_subdev_pad_ops dcmipp_byteproc_pad_ops =;

static int dcmipp_byteproc_configure_scale_crop
			(struct dcmipp_byteproc_device *byteproc)
{}

static int dcmipp_byteproc_s_stream(struct v4l2_subdev *sd, int enable)
{}

static const struct v4l2_subdev_video_ops dcmipp_byteproc_video_ops =;

static const struct v4l2_subdev_ops dcmipp_byteproc_ops =;

static void dcmipp_byteproc_release(struct v4l2_subdev *sd)
{}

static const struct v4l2_subdev_internal_ops dcmipp_byteproc_int_ops =;

void dcmipp_byteproc_ent_release(struct dcmipp_ent_device *ved)
{}

struct dcmipp_ent_device *
dcmipp_byteproc_ent_init(struct device *dev, const char *entity_name,
			 struct v4l2_device *v4l2_dev, void __iomem *regs)
{}