#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] = …;
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)
{ … }
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)
{ … }
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)
{ … }