Merge tag 'media/v6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - v4l core: subdev frame interval now supports which field - v4l kapi: moves and renames the init_cfg pad op to init_state as an internal op. - new sensor drivers: gc0308, gc2145, Avnet Alvium, ov64a40, tw9900 - new camera driver: STM32 DCMIPP - s5p-mfc has gained MFC v12 support - new ISP driver added to staging: Starfive - new stateful encoder/decoded: Wave5 codec It is found on the J721S2 SoC, JH7100 SoC, ssd202d SoC. Etc. - fwnode gained support for MIPI "DisCo for Imaging" (https://www.mipi.org/specifications/mipi-disco-imaging) - as usual, lots of cleanups, fixups and driver improvements. * tag 'media/v6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (309 commits) media: i2c: thp7312: select CONFIG_FW_LOADER media: i2c: mt9m114: use fsleep() in place of udelay() media: videobuf2: core: Rename min_buffers_needed field in vb2_queue media: i2c: thp7312: Store frame interval in subdev state media: docs: uAPI: Fix documentation of 'which' field for routing ioctls media: docs: uAPI: Expand error documentation for invalid 'which' value media: docs: uAPI: Clarify error documentation for invalid 'which' value media: v4l2-subdev: Store frame interval in subdev state media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations media: v4l: subdev: Move out subdev state lock macros outside CONFIG_MEDIA_CONTROLLER media: s5p-mfc: DPB Count Independent of VIDIOC_REQBUF media: s5p-mfc: Load firmware for each run in MFCv12. media: s5p-mfc: Set context for valid case before calling try_run media: s5p-mfc: Add support for DMABUF for encoder media: s5p-mfc: Add support for UHD encoding. media: s5p-mfc: Add support for rate controls in MFCv12 media: s5p-mfc: Add YV12 and I420 multiplanar format support media: s5p-mfc: Add initial support for MFCv12 media: s5p-mfc: Rename IS_MFCV10 macro ...
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
/*
|
||||
* THine THP7312 user space header file.
|
||||
*
|
||||
* Copyright (C) 2021 THine Electronics, Inc.
|
||||
* Copyright (C) 2023 Ideas on Board Oy
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_THP7312_H_
|
||||
#define __UAPI_THP7312_H_
|
||||
|
||||
#include <linux/v4l2-controls.h>
|
||||
|
||||
#define V4L2_CID_THP7312_LOW_LIGHT_COMPENSATION (V4L2_CID_USER_THP7312_BASE + 0x01)
|
||||
#define V4L2_CID_THP7312_AUTO_FOCUS_METHOD (V4L2_CID_USER_THP7312_BASE + 0x02)
|
||||
#define V4L2_CID_THP7312_NOISE_REDUCTION_AUTO (V4L2_CID_USER_THP7312_BASE + 0x03)
|
||||
#define V4L2_CID_THP7312_NOISE_REDUCTION_ABSOLUTE (V4L2_CID_USER_THP7312_BASE + 0x04)
|
||||
|
||||
#endif /* __UAPI_THP7312_H_ */
|
||||
@@ -209,6 +209,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 */
|
||||
|
||||
@@ -116,13 +116,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 +135,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
|
||||
*/
|
||||
@@ -239,7 +241,14 @@ struct v4l2_subdev_routing {
|
||||
* set (which is the default), the 'stream' fields will be forced to 0 by the
|
||||
* kernel.
|
||||
*/
|
||||
#define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0)
|
||||
#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
|
||||
|
||||
@@ -1035,6 +1035,7 @@ 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)
|
||||
|
||||
/**
|
||||
* struct v4l2_plane - plane info for multi-planar buffers
|
||||
@@ -1816,7 +1817,7 @@ struct v4l2_ext_control {
|
||||
__s64 __user *p_s64;
|
||||
struct v4l2_area __user *p_area;
|
||||
struct v4l2_ctrl_h264_sps __user *p_h264_sps;
|
||||
struct v4l2_ctrl_h264_pps *p_h264_pps;
|
||||
struct v4l2_ctrl_h264_pps __user *p_h264_pps;
|
||||
struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix;
|
||||
struct v4l2_ctrl_h264_pred_weights __user *p_h264_pred_weights;
|
||||
struct v4l2_ctrl_h264_slice_params __user *p_h264_slice_params;
|
||||
@@ -1837,6 +1838,8 @@ struct v4l2_ext_control {
|
||||
struct v4l2_ctrl_av1_tile_group_entry __user *p_av1_tile_group_entry;
|
||||
struct v4l2_ctrl_av1_frame __user *p_av1_frame;
|
||||
struct v4l2_ctrl_av1_film_grain __user *p_av1_film_grain;
|
||||
struct v4l2_ctrl_hdr10_cll_info __user *p_hdr10_cll_info;
|
||||
struct v4l2_ctrl_hdr10_mastering_display __user *p_hdr10_mastering_display;
|
||||
void __user *ptr;
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
@@ -2605,6 +2608,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 {
|
||||
@@ -2614,7 +2620,8 @@ struct v4l2_create_buffers {
|
||||
struct v4l2_format format;
|
||||
__u32 capabilities;
|
||||
__u32 flags;
|
||||
__u32 reserved[6];
|
||||
__u32 max_num_buffers;
|
||||
__u32 reserved[5];
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user