linux/drivers/media/platform/samsung/exynos4-is/fimc-isp.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Samsung EXYNOS4x12 FIMC-IS (Imaging Subsystem) driver
 *
 * Copyright (C) 2013 Samsung Electronics Co., Ltd.
 *
 * Authors: Sylwester Nawrocki <[email protected]>
 *          Younghwan Joo <[email protected]>
 */
#define pr_fmt(fmt)

#include <linux/device.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/printk.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <media/v4l2-device.h>

#include "media-dev.h"
#include "fimc-isp-video.h"
#include "fimc-is-command.h"
#include "fimc-is-param.h"
#include "fimc-is-regs.h"
#include "fimc-is.h"

int fimc_isp_debug;
module_param_named(debug_isp, fimc_isp_debug, int, S_IRUGO | S_IWUSR);

static const struct fimc_fmt fimc_isp_formats[FIMC_ISP_NUM_FORMATS] =;

/**
 * fimc_isp_find_format - lookup color format by fourcc or media bus code
 * @pixelformat: fourcc to match, ignored if null
 * @mbus_code: media bus code to match, ignored if null
 * @index: index to the fimc_isp_formats array, ignored if negative
 */
const struct fimc_fmt *fimc_isp_find_format(const u32 *pixelformat,
					const u32 *mbus_code, int index)
{}

void fimc_isp_irq_handler(struct fimc_is *is)
{}

/* Capture subdev media entity operations */
static int fimc_is_link_setup(struct media_entity *entity,
				const struct media_pad *local,
				const struct media_pad *remote, u32 flags)
{}

static const struct media_entity_operations fimc_is_subdev_media_ops =;

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

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

static void __isp_subdev_try_format(struct fimc_isp *isp,
				    struct v4l2_subdev_state *sd_state,
				    struct v4l2_subdev_format *fmt)
{}

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

static int fimc_isp_subdev_s_stream(struct v4l2_subdev *sd, int on)
{}

static int fimc_isp_subdev_s_power(struct v4l2_subdev *sd, int on)
{}

static int fimc_isp_subdev_open(struct v4l2_subdev *sd,
				struct v4l2_subdev_fh *fh)
{}

static int fimc_isp_subdev_registered(struct v4l2_subdev *sd)
{}

static void fimc_isp_subdev_unregistered(struct v4l2_subdev *sd)
{}

static const struct v4l2_subdev_internal_ops fimc_is_subdev_internal_ops =;

static const struct v4l2_subdev_pad_ops fimc_is_subdev_pad_ops =;

static const struct v4l2_subdev_video_ops fimc_is_subdev_video_ops =;

static const struct v4l2_subdev_core_ops fimc_is_core_ops =;

static const struct v4l2_subdev_ops fimc_is_subdev_ops =;

static int __ctrl_set_white_balance(struct fimc_is *is, int value)
{}

static int __ctrl_set_aewb_lock(struct fimc_is *is,
				      struct v4l2_ctrl *ctrl)
{}

/* Supported manual ISO values */
static const s64 iso_qmenu[] =;

static int __ctrl_set_iso(struct fimc_is *is, int value)
{}

static int __ctrl_set_metering(struct fimc_is *is, unsigned int value)
{}

static int __ctrl_set_afc(struct fimc_is *is, int value)
{}

static int __ctrl_set_image_effect(struct fimc_is *is, int value)
{}

static int fimc_is_s_ctrl(struct v4l2_ctrl *ctrl)
{}

static const struct v4l2_ctrl_ops fimc_isp_ctrl_ops =;

static void __isp_subdev_set_default_format(struct fimc_isp *isp)
{}

int fimc_isp_subdev_create(struct fimc_isp *isp)
{}

void fimc_isp_subdev_destroy(struct fimc_isp *isp)
{}