alistair23-linux/drivers/staging/media/omap4iss/iss_ipipeif.h
Daniel Graefe 730b0ac3a8 media: staging: media: omap4iss: Added SPDX license identifiers
Added missing SPDX license identifiers to all files of the omap4iss
driver.

Most files already have license texts which clearly state them to be
licensed under GPL 2.0 or later. SPDX identifiers were added accordingly.

Some files do not have any license text. SPDX identifiers for GPL 2.0
were added to them, in accordance with the default license of the
kernel.

Signed-off-by: Daniel Graefe <daniel.graefe@fau.de>
Signed-off-by: Roman Sommer <roman.sommer@fau.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-12 08:27:15 -04:00

90 lines
2.9 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* TI OMAP4 ISS V4L2 Driver - ISP IPIPEIF module
*
* Copyright (C) 2012 Texas Instruments, Inc.
*
* Author: Sergio Aguirre <sergio.a.aguirre@gmail.com>
*/
#ifndef OMAP4_ISS_IPIPEIF_H
#define OMAP4_ISS_IPIPEIF_H
#include "iss_video.h"
enum ipipeif_input_entity {
IPIPEIF_INPUT_NONE,
IPIPEIF_INPUT_CSI2A,
IPIPEIF_INPUT_CSI2B
};
#define IPIPEIF_OUTPUT_MEMORY BIT(0)
#define IPIPEIF_OUTPUT_VP BIT(1)
/* Sink and source IPIPEIF pads */
#define IPIPEIF_PAD_SINK 0
#define IPIPEIF_PAD_SOURCE_ISIF_SF 1
#define IPIPEIF_PAD_SOURCE_VP 2
#define IPIPEIF_PADS_NUM 3
/*
* struct iss_ipipeif_device - Structure for the IPIPEIF module to store its own
* information
* @subdev: V4L2 subdevice
* @pads: Sink and source media entity pads
* @formats: Active video formats
* @input: Active input
* @output: Active outputs
* @video_out: Output video node
* @error: A hardware error occurred during capture
* @alaw: A-law compression enabled (1) or disabled (0)
* @lpf: Low pass filter enabled (1) or disabled (0)
* @obclamp: Optical-black clamp enabled (1) or disabled (0)
* @fpc_en: Faulty pixels correction enabled (1) or disabled (0)
* @blcomp: Black level compensation configuration
* @clamp: Optical-black or digital clamp configuration
* @fpc: Faulty pixels correction configuration
* @lsc: Lens shading compensation configuration
* @update: Bitmask of controls to update during the next interrupt
* @shadow_update: Controls update in progress by userspace
* @syncif: Interface synchronization configuration
* @vpcfg: Video port configuration
* @underrun: A buffer underrun occurred and a new buffer has been queued
* @state: Streaming state
* @lock: Serializes shadow_update with interrupt handler
* @wait: Wait queue used to stop the module
* @stopping: Stopping state
* @ioctl_lock: Serializes ioctl calls and LSC requests freeing
*/
struct iss_ipipeif_device {
struct v4l2_subdev subdev;
struct media_pad pads[IPIPEIF_PADS_NUM];
struct v4l2_mbus_framefmt formats[IPIPEIF_PADS_NUM];
enum ipipeif_input_entity input;
unsigned int output;
struct iss_video video_out;
unsigned int error;
enum iss_pipeline_stream_state state;
wait_queue_head_t wait;
atomic_t stopping;
};
struct iss_device;
int omap4iss_ipipeif_init(struct iss_device *iss);
int omap4iss_ipipeif_create_links(struct iss_device *iss);
void omap4iss_ipipeif_cleanup(struct iss_device *iss);
int omap4iss_ipipeif_register_entities(struct iss_ipipeif_device *ipipeif,
struct v4l2_device *vdev);
void omap4iss_ipipeif_unregister_entities(struct iss_ipipeif_device *ipipeif);
int omap4iss_ipipeif_busy(struct iss_ipipeif_device *ipipeif);
void omap4iss_ipipeif_isr(struct iss_ipipeif_device *ipipeif, u32 events);
void omap4iss_ipipeif_restore_context(struct iss_device *iss);
void omap4iss_ipipeif_max_rate(struct iss_ipipeif_device *ipipeif,
unsigned int *max_rate);
#endif /* OMAP4_ISS_IPIPEIF_H */