Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
0002 /*
0003  * include/linux/v4l2-common.h
0004  *
0005  * Common V4L2 and V4L2 subdev definitions.
0006  *
0007  * Users are advised to #include this file either through videodev2.h
0008  * (V4L2) or through v4l2-subdev.h (V4L2 subdev) rather than to refer
0009  * to this file directly.
0010  *
0011  * Copyright (C) 2012 Nokia Corporation
0012  * Contact: Sakari Ailus <sakari.ailus@iki.fi>
0013  *
0014  *  This program is free software; you can redistribute it and/or modify
0015  *  it under the terms of the GNU General Public License as published by
0016  *  the Free Software Foundation; either version 2 of the License, or
0017  *  (at your option) any later version.
0018  *
0019  *  This program is distributed in the hope that it will be useful,
0020  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0021  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0022  *  GNU General Public License for more details.
0023  *
0024  *  Alternatively you can redistribute this file under the terms of the
0025  *  BSD license as stated below:
0026  *
0027  *  Redistribution and use in source and binary forms, with or without
0028  *  modification, are permitted provided that the following conditions
0029  *  are met:
0030  *  1. Redistributions of source code must retain the above copyright
0031  *     notice, this list of conditions and the following disclaimer.
0032  *  2. Redistributions in binary form must reproduce the above copyright
0033  *     notice, this list of conditions and the following disclaimer in
0034  *     the documentation and/or other materials provided with the
0035  *     distribution.
0036  *  3. The names of its contributors may not be used to endorse or promote
0037  *     products derived from this software without specific prior written
0038  *     permission.
0039  *
0040  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
0041  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
0042  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
0043  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
0044  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
0045  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
0046  *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
0047  *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
0048  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
0049  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
0050  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0051  *
0052  */
0053 
0054 #ifndef __V4L2_COMMON__
0055 #define __V4L2_COMMON__
0056 
0057 #include <linux/types.h>
0058 
0059 /*
0060  *
0061  * Selection interface definitions
0062  *
0063  */
0064 
0065 /* Current cropping area */
0066 #define V4L2_SEL_TGT_CROP       0x0000
0067 /* Default cropping area */
0068 #define V4L2_SEL_TGT_CROP_DEFAULT   0x0001
0069 /* Cropping bounds */
0070 #define V4L2_SEL_TGT_CROP_BOUNDS    0x0002
0071 /* Native frame size */
0072 #define V4L2_SEL_TGT_NATIVE_SIZE    0x0003
0073 /* Current composing area */
0074 #define V4L2_SEL_TGT_COMPOSE        0x0100
0075 /* Default composing area */
0076 #define V4L2_SEL_TGT_COMPOSE_DEFAULT    0x0101
0077 /* Composing bounds */
0078 #define V4L2_SEL_TGT_COMPOSE_BOUNDS 0x0102
0079 /* Current composing area plus all padding pixels */
0080 #define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103
0081 
0082 /* Selection flags */
0083 #define V4L2_SEL_FLAG_GE        (1 << 0)
0084 #define V4L2_SEL_FLAG_LE        (1 << 1)
0085 #define V4L2_SEL_FLAG_KEEP_CONFIG   (1 << 2)
0086 
0087 struct v4l2_edid {
0088     __u32 pad;
0089     __u32 start_block;
0090     __u32 blocks;
0091     __u32 reserved[5];
0092     __u8  *edid;
0093 };
0094 
0095 #ifndef __KERNEL__
0096 /* Backward compatibility target definitions --- to be removed. */
0097 #define V4L2_SEL_TGT_CROP_ACTIVE    V4L2_SEL_TGT_CROP
0098 #define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE
0099 #define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL V4L2_SEL_TGT_CROP
0100 #define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL V4L2_SEL_TGT_COMPOSE
0101 #define V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS V4L2_SEL_TGT_CROP_BOUNDS
0102 #define V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS V4L2_SEL_TGT_COMPOSE_BOUNDS
0103 
0104 /* Backward compatibility flag definitions --- to be removed. */
0105 #define V4L2_SUBDEV_SEL_FLAG_SIZE_GE    V4L2_SEL_FLAG_GE
0106 #define V4L2_SUBDEV_SEL_FLAG_SIZE_LE    V4L2_SEL_FLAG_LE
0107 #define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG
0108 #endif
0109 
0110 #endif /* __V4L2_COMMON__ */