mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-12 23:09:45 +03:00
include: linux: Update kernel headers to version v6.10-rc1
Updated kernel headers to v6.10-rc1 using utils/update-kernel-headers.sh and re-instating libcamera local modifications. This includes adding include/linux/udmabuf.h which was not part of libcamera's include/linux headers before. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
f6aa63acad
commit
70d553812e
10 changed files with 172 additions and 66 deletions
|
@ -1,4 +1,4 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
Files in this directory are imported from v6.7 of the Linux kernel. Do not
|
||||
Files in this directory are imported from v6.10-rc1 of the Linux kernel. Do not
|
||||
modify them manually.
|
||||
|
|
|
@ -54,7 +54,7 @@ extern "C" {
|
|||
* Format modifiers may change any property of the buffer, including the number
|
||||
* of planes and/or the required allocation size. Format modifiers are
|
||||
* vendor-namespaced, and as such the relationship between a fourcc code and a
|
||||
* modifier is specific to the modifer being used. For example, some modifiers
|
||||
* modifier is specific to the modifier being used. For example, some modifiers
|
||||
* may preserve meaning - such as number of planes - from the fourcc code,
|
||||
* whereas others may not.
|
||||
*
|
||||
|
@ -79,7 +79,7 @@ extern "C" {
|
|||
* format.
|
||||
* - Higher-level programs interfacing with KMS/GBM/EGL/Vulkan/etc: these users
|
||||
* see modifiers as opaque tokens they can check for equality and intersect.
|
||||
* These users musn't need to know to reason about the modifier value
|
||||
* These users mustn't need to know to reason about the modifier value
|
||||
* (i.e. they are not expected to extract information out of the modifier).
|
||||
*
|
||||
* Vendors should document their modifier usage in as much detail as
|
||||
|
@ -610,7 +610,7 @@ extern "C" {
|
|||
* This is a tiled layout using 4Kb tiles in row-major layout.
|
||||
* Within the tile pixels are laid out in 16 256 byte units / sub-tiles which
|
||||
* are arranged in four groups (two wide, two high) with column-major layout.
|
||||
* Each group therefore consits out of four 256 byte units, which are also laid
|
||||
* Each group therefore consists out of four 256 byte units, which are also laid
|
||||
* out as 2x2 column-major.
|
||||
* 256 byte units are made out of four 64 byte blocks of pixels, producing
|
||||
* either a square block or a 2:1 unit.
|
||||
|
@ -1183,7 +1183,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
|||
*/
|
||||
|
||||
/*
|
||||
* The top 4 bits (out of the 56 bits alloted for specifying vendor specific
|
||||
* The top 4 bits (out of the 56 bits allotted for specifying vendor specific
|
||||
* modifiers) denote the category for modifiers. Currently we have three
|
||||
* categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of
|
||||
* sixteen different categories.
|
||||
|
@ -1499,7 +1499,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
|||
* Amlogic FBC Memory Saving mode
|
||||
*
|
||||
* Indicates the storage is packed when pixel size is multiple of word
|
||||
* boudaries, i.e. 8bit should be stored in this mode to save allocation
|
||||
* boundaries, i.e. 8bit should be stored in this mode to save allocation
|
||||
* memory.
|
||||
*
|
||||
* This mode reduces body layout to 3072 bytes per 64x32 superblock with
|
||||
|
|
|
@ -2485,11 +2485,9 @@ struct ipu3_uapi_anr_config {
|
|||
* &ipu3_uapi_yuvp1_y_ee_nr_config
|
||||
* @yds: y down scaler config. See &ipu3_uapi_yuvp1_yds_config
|
||||
* @chnr: chroma noise reduction config. See &ipu3_uapi_yuvp1_chnr_config
|
||||
* @reserved1: reserved
|
||||
* @yds2: y channel down scaler config. See &ipu3_uapi_yuvp1_yds_config
|
||||
* @tcc: total color correction config as defined in struct
|
||||
* &ipu3_uapi_yuvp2_tcc_static_config
|
||||
* @reserved2: reserved
|
||||
* @anr: advanced noise reduction config.See &ipu3_uapi_anr_config
|
||||
* @awb_fr: AWB filter response config. See ipu3_uapi_awb_fr_config
|
||||
* @ae: auto exposure config As specified by &ipu3_uapi_ae_config
|
||||
|
@ -2724,7 +2722,6 @@ struct ipu3_uapi_obgrid_param {
|
|||
* @acc_ae: 0 = no update, 1 = update.
|
||||
* @acc_af: 0 = no update, 1 = update.
|
||||
* @acc_awb: 0 = no update, 1 = update.
|
||||
* @__acc_osys: 0 = no update, 1 = update.
|
||||
* @reserved3: Not used.
|
||||
* @lin_vmem_params: 0 = no update, 1 = update.
|
||||
* @tnr3_vmem_params: 0 = no update, 1 = update.
|
||||
|
|
|
@ -174,4 +174,13 @@
|
|||
*/
|
||||
#define MEDIA_BUS_FMT_METADATA_FIXED 0x7001
|
||||
|
||||
/* Generic line based metadata formats for serial buses. Next is 0x8008. */
|
||||
#define MEDIA_BUS_FMT_META_8 0x8001
|
||||
#define MEDIA_BUS_FMT_META_10 0x8002
|
||||
#define MEDIA_BUS_FMT_META_12 0x8003
|
||||
#define MEDIA_BUS_FMT_META_14 0x8004
|
||||
#define MEDIA_BUS_FMT_META_16 0x8005
|
||||
#define MEDIA_BUS_FMT_META_20 0x8006
|
||||
#define MEDIA_BUS_FMT_META_24 0x8007
|
||||
|
||||
#endif /* __LINUX_MEDIA_BUS_FORMAT_H */
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
* Copyright (C) 2017 Rockchip Electronics Co., Ltd.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_RKISP1_CONFIG_H
|
||||
#define _UAPI_RKISP1_CONFIG_H
|
||||
#ifndef _RKISP1_CONFIG_H
|
||||
#define _RKISP1_CONFIG_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
|
@ -175,11 +175,14 @@
|
|||
/**
|
||||
* enum rkisp1_cif_isp_version - ISP variants
|
||||
*
|
||||
* @RKISP1_V10: used at least in rk3288 and rk3399
|
||||
* @RKISP1_V11: declared in the original vendor code, but not used
|
||||
* @RKISP1_V12: used at least in rk3326 and px30
|
||||
* @RKISP1_V13: used at least in rk1808
|
||||
* @RKISP1_V_IMX8MP: used in at least imx8mp
|
||||
* @RKISP1_V10: Used at least in RK3288 and RK3399.
|
||||
* @RKISP1_V11: Declared in the original vendor code, but not used. Same number
|
||||
* of entries in grids and histogram as v10.
|
||||
* @RKISP1_V12: Used at least in RK3326 and PX30.
|
||||
* @RKISP1_V13: Used at least in RK1808. Same number of entries in grids and
|
||||
* histogram as v12.
|
||||
* @RKISP1_V_IMX8MP: Used in at least i.MX8MP. Same number of entries in grids
|
||||
* and histogram as v10.
|
||||
*/
|
||||
enum rkisp1_cif_isp_version {
|
||||
RKISP1_V10 = 10,
|
||||
|
@ -586,10 +589,9 @@ enum rkisp1_cif_isp_goc_mode {
|
|||
* as is reported by the hw_revision field of the struct media_device_info
|
||||
* that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
|
||||
*
|
||||
* Versions <= V11 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10
|
||||
* entries, versions >= V12 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12
|
||||
* entries. RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES is equal to the maximum
|
||||
* of the two.
|
||||
* V10 has RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 entries, V12 has
|
||||
* RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 entries.
|
||||
* RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES is equal to the maximum of the two.
|
||||
*/
|
||||
struct rkisp1_cif_isp_goc_config {
|
||||
__u32 mode;
|
||||
|
@ -609,10 +611,10 @@ struct rkisp1_cif_isp_goc_config {
|
|||
* as is reported by the hw_revision field of the struct media_device_info
|
||||
* that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
|
||||
*
|
||||
* Versions <= V11 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10
|
||||
* entries, versions >= V12 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12
|
||||
* entries. RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE is equal to the maximum
|
||||
* of the two.
|
||||
* V10 has RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 entries, V12 has
|
||||
* RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 entries.
|
||||
* RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE is equal to the maximum of the
|
||||
* two.
|
||||
*/
|
||||
struct rkisp1_cif_isp_hst_config {
|
||||
__u32 mode;
|
||||
|
@ -904,9 +906,9 @@ struct rkisp1_cif_isp_bls_meas_val {
|
|||
* as is reported by the hw_revision field of the struct media_device_info
|
||||
* that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
|
||||
*
|
||||
* Versions <= V11 have RKISP1_CIF_ISP_AE_MEAN_MAX_V10 entries,
|
||||
* versions >= V12 have RKISP1_CIF_ISP_AE_MEAN_MAX_V12 entries.
|
||||
* RKISP1_CIF_ISP_AE_MEAN_MAX is equal to the maximum of the two.
|
||||
* V10 has RKISP1_CIF_ISP_AE_MEAN_MAX_V10 entries, V12 has
|
||||
* RKISP1_CIF_ISP_AE_MEAN_MAX_V12 entries. RKISP1_CIF_ISP_AE_MEAN_MAX is equal
|
||||
* to the maximum of the two.
|
||||
*
|
||||
* Image is divided into 5x5 blocks on V10 and 9x9 blocks on V12.
|
||||
*/
|
||||
|
@ -946,21 +948,21 @@ struct rkisp1_cif_isp_af_stat {
|
|||
* integer part.
|
||||
*
|
||||
* The window of the measurements area is divided to 5x5 sub-windows for
|
||||
* V10/V11 and to 9x9 sub-windows for V12. The histogram is then computed for
|
||||
* each sub-window independently and the final result is a weighted average of
|
||||
* the histogram measurements on all sub-windows. The window of the
|
||||
* measurements area and the weight of each sub-window are configurable using
|
||||
* V10 and to 9x9 sub-windows for V12. The histogram is then computed for each
|
||||
* sub-window independently and the final result is a weighted average of the
|
||||
* histogram measurements on all sub-windows. The window of the measurements
|
||||
* area and the weight of each sub-window are configurable using
|
||||
* struct @rkisp1_cif_isp_hst_config.
|
||||
*
|
||||
* The histogram contains 16 bins in V10/V11 and 32 bins in V12/V13.
|
||||
* The histogram contains 16 bins in V10 and 32 bins in V12.
|
||||
*
|
||||
* The number of entries of @hist_bins depends on the hardware revision
|
||||
* as is reported by the hw_revision field of the struct media_device_info
|
||||
* that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
|
||||
*
|
||||
* Versions <= V11 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 entries,
|
||||
* versions >= V12 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 entries.
|
||||
* RKISP1_CIF_ISP_HIST_BIN_N_MAX is equal to the maximum of the two.
|
||||
* V10 has RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 entries, V12 has
|
||||
* RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 entries. RKISP1_CIF_ISP_HIST_BIN_N_MAX is
|
||||
* equal to the maximum of the two.
|
||||
*/
|
||||
struct rkisp1_cif_isp_hist_stat {
|
||||
__u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX];
|
||||
|
@ -994,4 +996,4 @@ struct rkisp1_stat_buffer {
|
|||
struct rkisp1_cif_isp_stat params;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_RKISP1_CONFIG_H */
|
||||
#endif /* _RKISP1_CONFIG_H */
|
||||
|
|
33
include/linux/udmabuf.h
Normal file
33
include/linux/udmabuf.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef _LINUX_UDMABUF_H
|
||||
#define _LINUX_UDMABUF_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define UDMABUF_FLAGS_CLOEXEC 0x01
|
||||
|
||||
struct udmabuf_create {
|
||||
__u32 memfd;
|
||||
__u32 flags;
|
||||
__u64 offset;
|
||||
__u64 size;
|
||||
};
|
||||
|
||||
struct udmabuf_create_item {
|
||||
__u32 memfd;
|
||||
__u32 __pad;
|
||||
__u64 offset;
|
||||
__u64 size;
|
||||
};
|
||||
|
||||
struct udmabuf_create_list {
|
||||
__u32 flags;
|
||||
__u32 count;
|
||||
struct udmabuf_create_item list[];
|
||||
};
|
||||
|
||||
#define UDMABUF_CREATE _IOW('u', 0x42, struct udmabuf_create)
|
||||
#define UDMABUF_CREATE_LIST _IOW('u', 0x43, struct udmabuf_create_list)
|
||||
|
||||
#endif /* _LINUX_UDMABUF_H */
|
|
@ -211,6 +211,12 @@ enum v4l2_colorfx {
|
|||
*/
|
||||
#define V4L2_CID_USER_NPCM_BASE (V4L2_CID_USER_BASE + 0x11b0)
|
||||
|
||||
/*
|
||||
* The base for THine THP7312 driver controls.
|
||||
* We reserve 32 controls for this driver.
|
||||
*/
|
||||
#define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
|
|
@ -19,12 +19,18 @@
|
|||
* @width: image width
|
||||
* @height: image height
|
||||
* @code: data format code (from enum v4l2_mbus_pixelcode)
|
||||
* @field: used interlacing type (from enum v4l2_field)
|
||||
* @colorspace: colorspace of the data (from enum v4l2_colorspace)
|
||||
* @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding)
|
||||
* @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding)
|
||||
* @quantization: quantization of the data (from enum v4l2_quantization)
|
||||
* @xfer_func: transfer function of the data (from enum v4l2_xfer_func)
|
||||
* @field: used interlacing type (from enum v4l2_field), zero for metadata
|
||||
* mbus codes
|
||||
* @colorspace: colorspace of the data (from enum v4l2_colorspace), zero on
|
||||
* metadata mbus codes
|
||||
* @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding), zero
|
||||
* for metadata mbus codes
|
||||
* @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding), zero for
|
||||
* metadata mbus codes
|
||||
* @quantization: quantization of the data (from enum v4l2_quantization), zero
|
||||
* for metadata mbus codes
|
||||
* @xfer_func: transfer function of the data (from enum v4l2_xfer_func), zero
|
||||
* for metadata mbus codes
|
||||
* @flags: flags (V4L2_MBUS_FRAMEFMT_*)
|
||||
* @reserved: reserved bytes that can be later used
|
||||
*/
|
||||
|
|
|
@ -50,6 +50,10 @@ struct v4l2_subdev_format {
|
|||
* @rect: pad crop rectangle boundaries
|
||||
* @stream: stream number, defined in subdev routing
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*
|
||||
* The subdev crop API is an obsolete interface and may be removed in the
|
||||
* future. It is superseded by the selection API. No new extensions to this
|
||||
* structure will be accepted.
|
||||
*/
|
||||
struct v4l2_subdev_crop {
|
||||
__u32 which;
|
||||
|
@ -116,13 +120,15 @@ struct v4l2_subdev_frame_size_enum {
|
|||
* @pad: pad number, as reported by the media API
|
||||
* @interval: frame interval in seconds
|
||||
* @stream: stream number, defined in subdev routing
|
||||
* @which: interval type (from enum v4l2_subdev_format_whence)
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*/
|
||||
struct v4l2_subdev_frame_interval {
|
||||
__u32 pad;
|
||||
struct v4l2_fract interval;
|
||||
__u32 stream;
|
||||
__u32 reserved[8];
|
||||
__u32 which;
|
||||
__u32 reserved[7];
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -133,7 +139,7 @@ struct v4l2_subdev_frame_interval {
|
|||
* @width: frame width in pixels
|
||||
* @height: frame height in pixels
|
||||
* @interval: frame interval in seconds
|
||||
* @which: format type (from enum v4l2_subdev_format_whence)
|
||||
* @which: interval type (from enum v4l2_subdev_format_whence)
|
||||
* @stream: stream number, defined in subdev routing
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*/
|
||||
|
@ -222,15 +228,19 @@ struct v4l2_subdev_route {
|
|||
* struct v4l2_subdev_routing - Subdev routing information
|
||||
*
|
||||
* @which: configuration type (from enum v4l2_subdev_format_whence)
|
||||
* @num_routes: the total number of routes in the routes array
|
||||
* @len_routes: the length of the routes array, in routes; set by the user, not
|
||||
* modified by the kernel
|
||||
* @routes: pointer to the routes array
|
||||
* @num_routes: the total number of routes, possibly more than fits in the
|
||||
* routes array
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*/
|
||||
struct v4l2_subdev_routing {
|
||||
__u32 which;
|
||||
__u32 num_routes;
|
||||
__u32 len_routes;
|
||||
__u64 routes;
|
||||
__u32 reserved[6];
|
||||
__u32 num_routes;
|
||||
__u32 reserved[11];
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -241,6 +251,13 @@ struct v4l2_subdev_routing {
|
|||
*/
|
||||
#define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0)
|
||||
|
||||
/*
|
||||
* The client is aware of the struct v4l2_subdev_frame_interval which field. If
|
||||
* this is not set (which is the default), the which field is forced to
|
||||
* V4L2_SUBDEV_FORMAT_ACTIVE by the kernel.
|
||||
*/
|
||||
#define V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH (1ULL << 1)
|
||||
|
||||
/**
|
||||
* struct v4l2_subdev_client_capability - Capabilities of the client accessing
|
||||
* the subdev
|
||||
|
|
|
@ -574,6 +574,8 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
|
||||
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
|
||||
#define V4L2_PIX_FMT_IPU3_Y10 v4l2_fourcc('i', 'p', '3', 'y') /* IPU3 packed 10-bit greyscale */
|
||||
#define V4L2_PIX_FMT_Y12P v4l2_fourcc('Y', '1', '2', 'P') /* 12 Greyscale, MIPI RAW12 packed */
|
||||
#define V4L2_PIX_FMT_Y14P v4l2_fourcc('Y', '1', '4', 'P') /* 14 Greyscale, MIPI RAW14 packed */
|
||||
|
||||
/* Palette formats */
|
||||
#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
|
||||
|
@ -867,6 +869,7 @@ struct v4l2_fmtdesc {
|
|||
#define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080
|
||||
#define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC
|
||||
#define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100
|
||||
#define V4L2_FMT_FLAG_META_LINE_BASED 0x0200
|
||||
|
||||
/* Frame Size and frame rate enumeration */
|
||||
/*
|
||||
|
@ -1016,18 +1019,20 @@ struct v4l2_requestbuffers {
|
|||
#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS (1 << 6)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS (1 << 7)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS (1 << 8)
|
||||
|
||||
/**
|
||||
* struct v4l2_plane - plane info for multi-planar buffers
|
||||
* @bytesused: number of bytes occupied by data in the plane (payload)
|
||||
* @length: size of this plane (NOT the payload) in bytes
|
||||
* @mem_offset: when memory in the associated struct v4l2_buffer is
|
||||
* @m.mem_offset: when memory in the associated struct v4l2_buffer is
|
||||
* V4L2_MEMORY_MMAP, equals the offset from the start of
|
||||
* the device memory for this plane (or is a "cookie" that
|
||||
* should be passed to mmap() called on the video node)
|
||||
* @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer
|
||||
* @m.userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer
|
||||
* pointing to this plane
|
||||
* @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file
|
||||
* @m.fd: when memory is V4L2_MEMORY_DMABUF, a userspace file
|
||||
* descriptor associated with this plane
|
||||
* @m: union of @mem_offset, @userptr and @fd
|
||||
* @data_offset: offset in the plane to the start of data; usually 0,
|
||||
|
@ -1065,14 +1070,14 @@ struct v4l2_plane {
|
|||
* @sequence: sequence count of this frame
|
||||
* @memory: enum v4l2_memory; the method, in which the actual video data is
|
||||
* passed
|
||||
* @offset: for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP;
|
||||
* @m.offset: for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP;
|
||||
* offset from the start of the device memory for this plane,
|
||||
* (or a "cookie" that should be passed to mmap() as offset)
|
||||
* @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
|
||||
* @m.userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
|
||||
* a userspace pointer pointing to this buffer
|
||||
* @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF;
|
||||
* @m.fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF;
|
||||
* a userspace file descriptor associated with this buffer
|
||||
* @planes: for multiplanar buffers; userspace pointer to the array of plane
|
||||
* @m.planes: for multiplanar buffers; userspace pointer to the array of plane
|
||||
* info structs for this buffer
|
||||
* @m: union of @offset, @userptr, @planes and @fd
|
||||
* @length: size in bytes of the buffer (NOT its payload) for single-plane
|
||||
|
@ -1810,8 +1815,10 @@ struct v4l2_ext_control {
|
|||
struct v4l2_ctrl_av1_tile_group_entry *p_av1_tile_group_entry;
|
||||
struct v4l2_ctrl_av1_frame *p_av1_frame;
|
||||
struct v4l2_ctrl_av1_film_grain *p_av1_film_grain;
|
||||
struct v4l2_ctrl_hdr10_cll_info *p_hdr10_cll_info;
|
||||
struct v4l2_ctrl_hdr10_mastering_display *p_hdr10_mastering_display;
|
||||
void *ptr;
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct v4l2_ext_controls {
|
||||
|
@ -2381,23 +2388,32 @@ struct v4l2_sdr_format {
|
|||
* struct v4l2_meta_format - metadata format definition
|
||||
* @dataformat: little endian four character code (fourcc)
|
||||
* @buffersize: maximum size in bytes required for data
|
||||
* @width: number of data units of data per line (valid for line
|
||||
* based formats only, see format documentation)
|
||||
* @height: number of lines of data per buffer (valid for line based
|
||||
* formats only)
|
||||
* @bytesperline: offset between the beginnings of two adjacent lines in
|
||||
* bytes (valid for line based formats only)
|
||||
*/
|
||||
struct v4l2_meta_format {
|
||||
__u32 dataformat;
|
||||
__u32 buffersize;
|
||||
__u32 width;
|
||||
__u32 height;
|
||||
__u32 bytesperline;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct v4l2_format - stream data format
|
||||
* @type: enum v4l2_buf_type; type of the data stream
|
||||
* @pix: definition of an image format
|
||||
* @pix_mp: definition of a multiplanar image format
|
||||
* @win: definition of an overlaid image
|
||||
* @vbi: raw VBI capture or output parameters
|
||||
* @sliced: sliced VBI capture or output parameters
|
||||
* @raw_data: placeholder for future extensions and custom formats
|
||||
* @fmt: union of @pix, @pix_mp, @win, @vbi, @sliced, @sdr, @meta
|
||||
* and @raw_data
|
||||
* @fmt.pix: definition of an image format
|
||||
* @fmt.pix_mp: definition of a multiplanar image format
|
||||
* @fmt.win: definition of an overlaid image
|
||||
* @fmt.vbi: raw VBI capture or output parameters
|
||||
* @fmt.sliced: sliced VBI capture or output parameters
|
||||
* @fmt.raw_data: placeholder for future extensions and custom formats
|
||||
* @fmt: union of @pix, @pix_mp, @win, @vbi, @sliced, @sdr,
|
||||
* @meta and @raw_data
|
||||
*/
|
||||
struct v4l2_format {
|
||||
__u32 type;
|
||||
|
@ -2570,6 +2586,9 @@ struct v4l2_dbg_chip_info {
|
|||
* @flags: additional buffer management attributes (ignored unless the
|
||||
* queue has V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS capability
|
||||
* and configured for MMAP streaming I/O).
|
||||
* @max_num_buffers: if V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS capability flag is set
|
||||
* this field indicate the maximum possible number of buffers
|
||||
* for this queue.
|
||||
* @reserved: future extensions
|
||||
*/
|
||||
struct v4l2_create_buffers {
|
||||
|
@ -2579,7 +2598,22 @@ struct v4l2_create_buffers {
|
|||
struct v4l2_format format;
|
||||
__u32 capabilities;
|
||||
__u32 flags;
|
||||
__u32 reserved[6];
|
||||
__u32 max_num_buffers;
|
||||
__u32 reserved[5];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct v4l2_remove_buffers - VIDIOC_REMOVE_BUFS argument
|
||||
* @index: the first buffer to be removed
|
||||
* @count: number of buffers to removed
|
||||
* @type: enum v4l2_buf_type
|
||||
* @reserved: future extensions
|
||||
*/
|
||||
struct v4l2_remove_buffers {
|
||||
__u32 index;
|
||||
__u32 count;
|
||||
__u32 type;
|
||||
__u32 reserved[13];
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -2681,6 +2715,8 @@ struct v4l2_create_buffers {
|
|||
#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
|
||||
|
||||
#define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
|
||||
#define VIDIOC_REMOVE_BUFS _IOWR('V', 104, struct v4l2_remove_buffers)
|
||||
|
||||
|
||||
/* Reminder: when adding new ioctls please add support for them to
|
||||
drivers/media/v4l2-core/v4l2-compat-ioctl32.c as well! */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue