This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: v4l-utils: sync with v6.17-rc1
Author:  Hans Verkuil <[email protected]>
Date:    Mon Aug 11 11:32:34 2025 +0200

Sync with upstream kernel v6.17-rc1.

Signed-off-by: Hans Verkuil <[email protected]>

 contrib/freebsd/include/linux/input-event-codes.h |  11 ++-
 contrib/freebsd/include/linux/input.h             |   1 +
 contrib/freebsd/include/linux/v4l2-controls.h     |   6 ++
 contrib/freebsd/include/linux/videodev2.h         |  27 +++++-
 include/linux/bpf.h                               | 109 ++++++++++++++++++++--
 include/linux/cec-funcs.h                         |  40 ++++----
 include/linux/v4l2-controls.h                     |   6 ++
 include/linux/videodev2.h                         |  27 +++++-
 utils/common/v4l2-pix-formats.h                   |   9 ++
 utils/keytable/parse.h                            |   5 +
 utils/keytable/rc_keymaps/hauppauge.toml          |  31 ++++++
 utils/v4l2-tracer/v4l2-tracer-info-gen.h          |   2 +
 12 files changed, 238 insertions(+), 36 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=bce0cb387b1c4ff6570000a06fe4f43403230a08
diff --git a/contrib/freebsd/include/linux/input-event-codes.h 
b/contrib/freebsd/include/linux/input-event-codes.h
index 7cd934c79930..90295adc64c5 100644
--- a/contrib/freebsd/include/linux/input-event-codes.h
+++ b/contrib/freebsd/include/linux/input-event-codes.h
@@ -601,6 +601,11 @@
 #define BTN_DPAD_LEFT          0x222
 #define BTN_DPAD_RIGHT         0x223
 
+#define BTN_GRIPL              0x224
+#define BTN_GRIPR              0x225
+#define BTN_GRIPL2             0x226
+#define BTN_GRIPR2             0x227
+
 #define KEY_ALS_TOGGLE         0x230   /* Ambient light sensor */
 #define KEY_ROTATE_LOCK_TOGGLE 0x231   /* Display rotation lock */
 #define KEY_REFRESH_RATE_TOGGLE        0x232   /* Display refresh rate toggle 
*/
@@ -765,6 +770,9 @@
 #define KEY_KBD_LCD_MENU4              0x2bb
 #define KEY_KBD_LCD_MENU5              0x2bc
 
+/* Performance Boost key (Alienware)/G-Mode key (Dell) */
+#define KEY_PERFORMANCE                        0x2bd
+
 #define BTN_TRIGGER_HAPPY              0x2c0
 #define BTN_TRIGGER_HAPPY1             0x2c0
 #define BTN_TRIGGER_HAPPY2             0x2c1
@@ -925,7 +933,8 @@
 #define SW_MUTE_DEVICE         0x0e  /* set = device disabled */
 #define SW_PEN_INSERTED                0x0f  /* set = pen inserted */
 #define SW_MACHINE_COVER       0x10  /* set = cover closed */
-#define SW_MAX                 0x10
+#define SW_USB_INSERT          0x11  /* set = USB audio device connected */
+#define SW_MAX                 0x11
 #define SW_CNT                 (SW_MAX+1)
 
 /*
diff --git a/contrib/freebsd/include/linux/input.h 
b/contrib/freebsd/include/linux/input.h
index e1ab29b1c3e1..93b8f640115f 100644
--- a/contrib/freebsd/include/linux/input.h
+++ b/contrib/freebsd/include/linux/input.h
@@ -309,6 +309,7 @@ struct input_mask {
 #define BUS_CEC                        0x1E
 #define BUS_INTEL_ISHTP                0x1F
 #define BUS_AMD_SFH            0x20
+#define BUS_SDW                        0x21
 
 /*
  * MT_TOOL types
diff --git a/contrib/freebsd/include/linux/v4l2-controls.h 
b/contrib/freebsd/include/linux/v4l2-controls.h
index 8c06b28a4b70..3c57491d8e4a 100644
--- a/contrib/freebsd/include/linux/v4l2-controls.h
+++ b/contrib/freebsd/include/linux/v4l2-controls.h
@@ -224,6 +224,12 @@ enum v4l2_colorfx {
  */
 #define V4L2_CID_USER_UVC_BASE                 (V4L2_CID_USER_BASE + 0x11e0)
 
+/*
+ * The base for Rockchip ISP1 driver controls.
+ * We reserve 16 controls for this driver.
+ */
+#define V4L2_CID_USER_RKISP1_BASE              (V4L2_CID_USER_BASE + 0x1220)
+
 /* MPEG-class control IDs */
 /* The MPEG controls are applicable to all codec controls
  * and the 'MPEG' part of the define is historical */
diff --git a/contrib/freebsd/include/linux/videodev2.h 
b/contrib/freebsd/include/linux/videodev2.h
index 349d187f0dc1..ba294c1d7aaf 100644
--- a/contrib/freebsd/include/linux/videodev2.h
+++ b/contrib/freebsd/include/linux/videodev2.h
@@ -185,10 +185,18 @@ enum v4l2_buf_type {
        V4L2_BUF_TYPE_SDR_OUTPUT           = 12,
        V4L2_BUF_TYPE_META_CAPTURE         = 13,
        V4L2_BUF_TYPE_META_OUTPUT          = 14,
+       /*
+        * Note: V4L2_TYPE_IS_VALID and V4L2_TYPE_IS_OUTPUT must
+        * be updated if a new type is added.
+        */
        /* Deprecated, do not use */
        V4L2_BUF_TYPE_PRIVATE              = 0x80,
 };
 
+#define V4L2_TYPE_IS_VALID(type)                \
+       ((type) >= V4L2_BUF_TYPE_VIDEO_CAPTURE &&\
+        (type) <= V4L2_BUF_TYPE_META_OUTPUT)
+
 #define V4L2_TYPE_IS_MULTIPLANAR(type)                 \
        ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE   \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
@@ -196,14 +204,14 @@ enum v4l2_buf_type {
 #define V4L2_TYPE_IS_OUTPUT(type)                              \
        ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE         \
-        || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY               \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY        \
         || (type) == V4L2_BUF_TYPE_VBI_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT           \
         || (type) == V4L2_BUF_TYPE_SDR_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_META_OUTPUT)
 
-#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
+#define V4L2_TYPE_IS_CAPTURE(type)     \
+       (V4L2_TYPE_IS_VALID(type) && !V4L2_TYPE_IS_OUTPUT(type))
 
 enum v4l2_tuner_type {
        V4L2_TUNER_RADIO             = 1,
@@ -650,8 +658,10 @@ struct v4l2_pix_format {
 /* two planes -- one Y, one Cr + Cb interleaved  */
 #define V4L2_PIX_FMT_NV12    v4l2_fourcc('N', 'V', '1', '2') /* 12  Y/CbCr 
4:2:0  */
 #define V4L2_PIX_FMT_NV21    v4l2_fourcc('N', 'V', '2', '1') /* 12  Y/CrCb 
4:2:0  */
+#define V4L2_PIX_FMT_NV15    v4l2_fourcc('N', 'V', '1', '5') /* 15  Y/CbCr 
4:2:0 10-bit packed */
 #define V4L2_PIX_FMT_NV16    v4l2_fourcc('N', 'V', '1', '6') /* 16  Y/CbCr 
4:2:2  */
 #define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 
4:2:2  */
+#define V4L2_PIX_FMT_NV20    v4l2_fourcc('N', 'V', '2', '0') /* 20  Y/CbCr 
4:2:2 10-bit packed */
 #define V4L2_PIX_FMT_NV24    v4l2_fourcc('N', 'V', '2', '4') /* 24  Y/CbCr 
4:4:4  */
 #define V4L2_PIX_FMT_NV42    v4l2_fourcc('N', 'V', '4', '2') /* 24  Y/CrCb 
4:4:4  */
 #define V4L2_PIX_FMT_P010    v4l2_fourcc('P', '0', '1', '0') /* 24  Y/CbCr 
4:2:0 10-bit per component */
@@ -723,7 +733,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12  GBGB.. 
RGRG.. */
 #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12  GRGR.. 
BGBG.. */
 #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12  RGRG.. 
GBGB.. */
-       /* 12bit raw bayer packed, 6 bytes for every 4 pixels */
+       /* 12bit raw bayer packed, 3 bytes for every 2 pixels */
 #define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
 #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
 #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
@@ -837,6 +847,12 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_PISP_COMP2_BGGR   v4l2_fourcc('P', 'C', '2', 'B') /* PiSP 
8-bit mode 2 compressed BGGR bayer */
 #define V4L2_PIX_FMT_PISP_COMP2_MONO   v4l2_fourcc('P', 'C', '2', 'M') /* PiSP 
8-bit mode 2 compressed monochrome */
 
+/* Renesas RZ/V2H CRU packed formats. 64-bit units with contiguous pixels */
+#define V4L2_PIX_FMT_RAW_CRU10 v4l2_fourcc('C', 'R', '1', '0')
+#define V4L2_PIX_FMT_RAW_CRU12 v4l2_fourcc('C', 'R', '1', '2')
+#define V4L2_PIX_FMT_RAW_CRU14 v4l2_fourcc('C', 'R', '1', '4')
+#define V4L2_PIX_FMT_RAW_CRU20 v4l2_fourcc('C', 'R', '2', '0')
+
 /* SDR formats - used only for Software Defined Radio devices */
 #define V4L2_SDR_FMT_CU8          v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
 #define V4L2_SDR_FMT_CU16LE       v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le 
*/
@@ -858,6 +874,7 @@ struct v4l2_pix_format {
 #define V4L2_META_FMT_VSP1_HGT    v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car 
VSP1 2-D Histogram */
 #define V4L2_META_FMT_UVC         v4l2_fourcc('U', 'V', 'C', 'H') /* UVC 
Payload Header metadata */
 #define V4L2_META_FMT_D4XX        v4l2_fourcc('D', '4', 'X', 'X') /* D4XX 
Payload Header metadata */
+#define V4L2_META_FMT_UVC_MSXU_1_5  v4l2_fourcc('U', 'V', 'C', 'M') /* UVC 
MSXU metadata */
 #define V4L2_META_FMT_VIVID      v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid 
Metadata */
 
 /* Vendor specific - used for RK_ISP1 camera sub-system */
@@ -865,6 +882,10 @@ struct v4l2_pix_format {
 #define V4L2_META_FMT_RK_ISP1_STAT_3A  v4l2_fourcc('R', 'K', '1', 'S') /* 
Rockchip ISP1 3A Statistics */
 #define V4L2_META_FMT_RK_ISP1_EXT_PARAMS       v4l2_fourcc('R', 'K', '1', 'E') 
/* Rockchip ISP1 3a Extensible Parameters */
 
+/* Vendor specific - used for C3_ISP */
+#define V4L2_META_FMT_C3ISP_PARAMS     v4l2_fourcc('C', '3', 'P', 'M') /* 
Amlogic C3 ISP Parameters */
+#define V4L2_META_FMT_C3ISP_STATS      v4l2_fourcc('C', '3', 'S', 'T') /* 
Amlogic C3 ISP Statistics */
+
 /* Vendor specific - used for RaspberryPi PiSP */
 #define V4L2_META_FMT_RPI_BE_CFG       v4l2_fourcc('R', 'P', 'B', 'C') /* PiSP 
BE configuration */
 #define V4L2_META_FMT_RPI_FE_CFG       v4l2_fourcc('R', 'P', 'F', 'C') /* PiSP 
FE configuration */
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 535272c7b312..936bb1c94c82 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -51,6 +51,9 @@
 #define BPF_XCHG       (0xe0 | BPF_FETCH)      /* atomic exchange */
 #define BPF_CMPXCHG    (0xf0 | BPF_FETCH)      /* atomic compare-and-write */
 
+#define BPF_LOAD_ACQ   0x100   /* load-acquire */
+#define BPF_STORE_REL  0x110   /* store-release */
+
 enum bpf_cond_pseudo_jmp {
        BPF_MAY_GOTO = 0,
 };
@@ -447,6 +450,7 @@ union bpf_iter_link_info {
  *             * **struct bpf_map_info**
  *             * **struct bpf_btf_info**
  *             * **struct bpf_link_info**
+ *             * **struct bpf_token_info**
  *
  *     Return
  *             Returns zero on success. On error, -1 is returned and *errno*
@@ -903,6 +907,17 @@ union bpf_iter_link_info {
  *             A new file descriptor (a nonnegative integer), or -1 if an
  *             error occurred (in which case, *errno* is set appropriately).
  *
+ * BPF_PROG_STREAM_READ_BY_FD
+ *     Description
+ *             Read data of a program's BPF stream. The program is identified
+ *             by *prog_fd*, and the stream is identified by the *stream_id*.
+ *             The data is copied to a buffer pointed to by *stream_buf*, and
+ *             filled less than or equal to *stream_buf_len* bytes.
+ *
+ *     Return
+ *             Number of bytes read from the stream on success, or -1 if an
+ *             error occurred (in which case, *errno* is set appropriately).
+ *
  * NOTES
  *     eBPF objects (maps and programs) can be shared between processes.
  *
@@ -958,6 +973,7 @@ enum bpf_cmd {
        BPF_LINK_DETACH,
        BPF_PROG_BIND_MAP,
        BPF_TOKEN_CREATE,
+       BPF_PROG_STREAM_READ_BY_FD,
        __MAX_BPF_CMD,
 };
 
@@ -1207,6 +1223,7 @@ enum bpf_perf_event_type {
 #define BPF_F_BEFORE           (1U << 3)
 #define BPF_F_AFTER            (1U << 4)
 #define BPF_F_ID               (1U << 5)
+#define BPF_F_PREORDER         (1U << 6)
 #define BPF_F_LINK             BPF_F_LINK /* 1 << 13 */
 
 /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
@@ -1459,6 +1476,11 @@ struct bpf_stack_build_id {
 
 #define BPF_OBJ_NAME_LEN 16U
 
+enum {
+       BPF_STREAM_STDOUT = 1,
+       BPF_STREAM_STDERR = 2,
+};
+
 union bpf_attr {
        struct { /* anonymous struct used by BPF_MAP_CREATE command */
                __u32   map_type;       /* one of enum bpf_map_type */
@@ -1502,7 +1524,7 @@ union bpf_attr {
                __s32   map_token_fd;
        };
 
-       struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
+       struct { /* anonymous struct used by BPF_MAP_*_ELEM and BPF_MAP_FREEZE 
commands */
                __u32           map_fd;
                __aligned_u64   key;
                union {
@@ -1648,6 +1670,7 @@ union bpf_attr {
                };
                __u32           next_id;
                __u32           open_flags;
+               __s32           fd_by_id_token_fd;
        };
 
        struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */
@@ -1789,6 +1812,13 @@ union bpf_attr {
                                };
                                __u64           expected_revision;
                        } netkit;
+                       struct {
+                               union {
+                                       __u32   relative_fd;
+                                       __u32   relative_id;
+                               };
+                               __u64           expected_revision;
+                       } cgroup;
                };
        } link_create;
 
@@ -1837,6 +1867,13 @@ union bpf_attr {
                __u32           bpffs_fd;
        } token_create;
 
+       struct {
+               __aligned_u64   stream_buf;
+               __u32           stream_buf_len;
+               __u32           stream_id;
+               __u32           prog_fd;
+       } prog_stream_read;
+
 } __attribute__((aligned(8)));
 
 /* The description below is an attempt at providing documentation to eBPF
@@ -1990,11 +2027,15 @@ union bpf_attr {
  * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, 
u32 len, u64 flags)
  *     Description
  *             Store *len* bytes from address *from* into the packet
- *             associated to *skb*, at *offset*. *flags* are a combination of
- *             **BPF_F_RECOMPUTE_CSUM** (automatically recompute the
- *             checksum for the packet after storing the bytes) and
- *             **BPF_F_INVALIDATE_HASH** (set *skb*\ **->hash**, *skb*\
- *             **->swhash** and *skb*\ **->l4hash** to 0).
+ *             associated to *skb*, at *offset*. The *flags* are a combination
+ *             of the following values:
+ *
+ *             **BPF_F_RECOMPUTE_CSUM**
+ *                     Automatically update *skb*\ **->csum** after storing the
+ *                     bytes.
+ *             **BPF_F_INVALIDATE_HASH**
+ *                     Set *skb*\ **->hash**, *skb*\ **->swhash** and *skb*\
+ *                     **->l4hash** to 0.
  *
  *             A call to this helper is susceptible to change the underlying
  *             packet buffer. Therefore, at load time, all checks on pointers
@@ -2046,7 +2087,8 @@ union bpf_attr {
  *             untouched (unless **BPF_F_MARK_ENFORCE** is added as well), and
  *             for updates resulting in a null checksum the value is set to
  *             **CSUM_MANGLED_0** instead. Flag **BPF_F_PSEUDO_HDR** indicates
- *             the checksum is to be computed against a pseudo-header.
+ *             that the modified header field is part of the pseudo-header.
+ *             Flag **BPF_F_IPV6** should be set for IPv6 packets.
  *
  *             This helper works in combination with **bpf_csum_diff**\ (),
  *             which does not update the checksum in-place, but offers more
@@ -2393,7 +2435,7 @@ union bpf_attr {
  *             into it. An example is available in file
  *             *samples/bpf/trace_output_user.c* in the Linux kernel source
  *             tree (the eBPF program counterpart is in
- *             *samples/bpf/trace_output_kern.c*).
+ *             *samples/bpf/trace_output.bpf.c*).
  *
  *             **bpf_perf_event_output**\ () achieves better performance
  *             than **bpf_trace_printk**\ () for sharing data with user
@@ -4963,6 +5005,9 @@ union bpf_attr {
  *             the netns switch takes place from ingress to ingress without
  *             going through the CPU's backlog queue.
  *
+ *             *skb*\ **->mark** and *skb*\ **->tstamp** are not cleared during
+ *             the netns switch.
+ *
  *             The *flags* argument is reserved and must be 0. The helper is
  *             currently only supported for tc BPF program types at the
  *             ingress hook and for veth and netkit target device types. The
@@ -6019,7 +6064,10 @@ union bpf_attr {
        FN(user_ringbuf_drain, 209, ##ctx)              \
        FN(cgrp_storage_get, 210, ##ctx)                \
        FN(cgrp_storage_delete, 211, ##ctx)             \
-       /* */
+       /* This helper list is effectively frozen. If you are trying to \
+        * add a new helper, you should add a kfunc instead which has   \
+        * less stability guarantees. See Documentation/bpf/kfuncs.rst  \
+        */
 
 /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't
  * know or care about integer value that is now passed as second argument
@@ -6057,6 +6105,7 @@ enum {
        BPF_F_PSEUDO_HDR                = (1ULL << 4),
        BPF_F_MARK_MANGLED_0            = (1ULL << 5),
        BPF_F_MARK_ENFORCE              = (1ULL << 6),
+       BPF_F_IPV6                      = (1ULL << 7),
 };
 
 /* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */
@@ -6636,11 +6685,15 @@ struct bpf_link_info {
                struct {
                        __aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
                        __u32 tp_name_len;     /* in/out: tp_name buffer len */
+                       __u32 :32;
+                       __u64 cookie;
                } raw_tracepoint;
                struct {
                        __u32 attach_type;
                        __u32 target_obj_id; /* prog_id for PROG_EXT, otherwise 
btf object id */
                        __u32 target_btf_id; /* BTF type id inside the object */
+                       __u32 :32;
+                       __u64 cookie;
                } tracing;
                struct {
                        __u64 cgroup_id;
@@ -6712,6 +6765,7 @@ struct bpf_link_info {
                                        __u32 name_len;
                                        __u32 offset; /* offset from file_name 
*/
                                        __u64 cookie;
+                                       __u64 ref_ctr_offset;
                                } uprobe; /* BPF_PERF_EVENT_UPROBE, 
BPF_PERF_EVENT_URETPROBE */
                                struct {
                                        __aligned_u64 func_name; /* in/out */
@@ -6750,6 +6804,13 @@ struct bpf_link_info {
        };
 } __attribute__((aligned(8)));
 
+struct bpf_token_info {
+       __u64 allowed_cmds;
+       __u64 allowed_maps;
+       __u64 allowed_progs;
+       __u64 allowed_attachs;
+} __attribute__((aligned(8)));
+
 /* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
  * by user and intended to be used by socket (e.g. to bind to, depends on
  * attach type).
@@ -6913,6 +6974,12 @@ enum {
        BPF_SOCK_OPS_ALL_CB_FLAGS       = 0x7F,
 };
 
+enum {
+       SK_BPF_CB_TX_TIMESTAMPING       = 1<<0,
+       SK_BPF_CB_MASK                  = (SK_BPF_CB_TX_TIMESTAMPING - 1) |
+                                          SK_BPF_CB_TX_TIMESTAMPING
+};
+
 /* List of known BPF sock_ops operators.
  * New entries can only be added at the end
  */
@@ -7025,6 +7092,29 @@ enum {
                                         * by the kernel or the
                                         * earlier bpf-progs.
                                         */
+       BPF_SOCK_OPS_TSTAMP_SCHED_CB,   /* Called when skb is passing
+                                        * through dev layer when
+                                        * SK_BPF_CB_TX_TIMESTAMPING
+                                        * feature is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_SND_SW_CB,  /* Called when skb is about to send
+                                        * to the nic when 
SK_BPF_CB_TX_TIMESTAMPING
+                                        * feature is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_SND_HW_CB,  /* Called in hardware phase when
+                                        * SK_BPF_CB_TX_TIMESTAMPING feature
+                                        * is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_ACK_CB,     /* Called when all the skbs in the
+                                        * same sendmsg call are acked
+                                        * when SK_BPF_CB_TX_TIMESTAMPING
+                                        * feature is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_SENDMSG_CB, /* Called when every sendmsg syscall
+                                        * is triggered. It's used to correlate
+                                        * sendmsg timestamp with corresponding
+                                        * tskey.
+                                        */
 };
 
 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -7091,6 +7181,7 @@ enum {
        TCP_BPF_SYN_IP          = 1006, /* Copy the IP[46] and TCP header */
        TCP_BPF_SYN_MAC         = 1007, /* Copy the MAC, IP[46], and TCP header 
*/
        TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */
+       SK_BPF_CB_FLAGS         = 1009, /* Get or set sock ops flags in socket 
*/
 };
 
 enum {
diff --git a/include/linux/cec-funcs.h b/include/linux/cec-funcs.h
index b0fe9b2e6f81..ab3400f05e76 100644
--- a/include/linux/cec-funcs.h
+++ b/include/linux/cec-funcs.h
@@ -14,7 +14,7 @@
 static __inline__ void cec_msg_active_source(struct cec_msg *msg, __u16 
phys_addr)
 {
        msg->len = 4;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_ACTIVE_SOURCE;
        msg->msg[2] = phys_addr >> 8;
        msg->msg[3] = phys_addr & 0xff;
@@ -59,7 +59,7 @@ static __inline__ void cec_msg_request_active_source(struct 
cec_msg *msg,
                                                 int reply)
 {
        msg->len = 2;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_REQUEST_ACTIVE_SOURCE;
        msg->reply = reply ? CEC_MSG_ACTIVE_SOURCE : 0;
 }
@@ -68,7 +68,7 @@ static __inline__ void cec_msg_routing_information(struct 
cec_msg *msg,
                                               __u16 phys_addr)
 {
        msg->len = 4;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_ROUTING_INFORMATION;
        msg->msg[2] = phys_addr >> 8;
        msg->msg[3] = phys_addr & 0xff;
@@ -86,7 +86,7 @@ static __inline__ void cec_msg_routing_change(struct cec_msg 
*msg,
                                          __u16 new_phys_addr)
 {
        msg->len = 6;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_ROUTING_CHANGE;
        msg->msg[2] = orig_phys_addr >> 8;
        msg->msg[3] = orig_phys_addr & 0xff;
@@ -106,7 +106,7 @@ static __inline__ void cec_ops_routing_change(const struct 
cec_msg *msg,
 static __inline__ void cec_msg_set_stream_path(struct cec_msg *msg, __u16 
phys_addr)
 {
        msg->len = 4;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_SET_STREAM_PATH;
        msg->msg[2] = phys_addr >> 8;
        msg->msg[3] = phys_addr & 0xff;
@@ -791,7 +791,7 @@ static __inline__ void cec_msg_report_physical_addr(struct 
cec_msg *msg,
                                        __u16 phys_addr, __u8 prim_devtype)
 {
        msg->len = 5;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_REPORT_PHYSICAL_ADDR;
        msg->msg[2] = phys_addr >> 8;
        msg->msg[3] = phys_addr & 0xff;
@@ -817,7 +817,7 @@ static __inline__ void cec_msg_set_menu_language(struct 
cec_msg *msg,
                                             const char *language)
 {
        msg->len = 5;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_SET_MENU_LANGUAGE;
        memcpy(msg->msg + 2, language, 3);
 }
@@ -850,7 +850,7 @@ static __inline__ void cec_msg_report_features(struct 
cec_msg *msg,
                                __u8 rc_profile, __u8 dev_features)
 {
        msg->len = 6;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_REPORT_FEATURES;
        msg->msg[2] = cec_version;
        msg->msg[3] = all_device_types;
@@ -1092,7 +1092,7 @@ static __inline__ void 
cec_msg_tuner_step_increment(struct cec_msg *msg)
 static __inline__ void cec_msg_device_vendor_id(struct cec_msg *msg, __u32 
vendor_id)
 {
        msg->len = 5;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_DEVICE_VENDOR_ID;
        msg->msg[2] = vendor_id >> 16;
        msg->msg[3] = (vendor_id >> 8) & 0xff;
@@ -1655,7 +1655,7 @@ static __inline__ void 
cec_msg_report_current_latency(struct cec_msg *msg,
                                                  __u8 audio_out_delay)
 {
        msg->len = 6;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_REPORT_CURRENT_LATENCY;
        msg->msg[2] = phys_addr >> 8;
        msg->msg[3] = phys_addr & 0xff;
@@ -1687,7 +1687,7 @@ static __inline__ void 
cec_msg_request_current_latency(struct cec_msg *msg,
                                                   __u16 phys_addr)
 {
        msg->len = 4;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_REQUEST_CURRENT_LATENCY;
        msg->msg[2] = phys_addr >> 8;
        msg->msg[3] = phys_addr & 0xff;
@@ -1707,7 +1707,7 @@ static __inline__ void 
cec_msg_cdc_hec_inquire_state(struct cec_msg *msg,
                                                 __u16 phys_addr2)
 {
        msg->len = 9;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_INQUIRE_STATE;
@@ -1737,7 +1737,7 @@ static __inline__ void 
cec_msg_cdc_hec_report_state(struct cec_msg *msg,
                                                __u16 hec_field)
 {
        msg->len = has_field ? 10 : 8;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_REPORT_STATE;
@@ -1782,7 +1782,7 @@ static __inline__ void cec_msg_cdc_hec_set_state(struct 
cec_msg *msg,
                                             __u16 phys_addr5)
 {
        msg->len = 10;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_INQUIRE_STATE;
@@ -1832,7 +1832,7 @@ static __inline__ void 
cec_msg_cdc_hec_set_state_adjacent(struct cec_msg *msg,
                                                      __u8 hec_set_state)
 {
        msg->len = 8;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_SET_STATE_ADJACENT;
@@ -1857,7 +1857,7 @@ static __inline__ void 
cec_msg_cdc_hec_request_deactivation(struct cec_msg *msg,
                                                        __u16 phys_addr3)
 {
        msg->len = 11;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_REQUEST_DEACTIVATION;
@@ -1884,7 +1884,7 @@ static __inline__ void 
cec_ops_cdc_hec_request_deactivation(const struct cec_msg
 static __inline__ void cec_msg_cdc_hec_notify_alive(struct cec_msg *msg)
 {
        msg->len = 5;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_NOTIFY_ALIVE;
@@ -1899,7 +1899,7 @@ static __inline__ void cec_ops_cdc_hec_notify_alive(const 
struct cec_msg *msg,
 static __inline__ void cec_msg_cdc_hec_discover(struct cec_msg *msg)
 {
        msg->len = 5;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HEC_DISCOVER;
@@ -1916,7 +1916,7 @@ static __inline__ void cec_msg_cdc_hpd_set_state(struct 
cec_msg *msg,
                                             __u8 hpd_state)
 {
        msg->len = 6;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HPD_SET_STATE;
@@ -1938,7 +1938,7 @@ static __inline__ void 
cec_msg_cdc_hpd_report_state(struct cec_msg *msg,
                                                __u8 hpd_error)
 {
        msg->len = 6;
-       msg->msg[0] |= 0xf; /* broadcast */
+       msg->msg[0] |= CEC_LOG_ADDR_BROADCAST;
        msg->msg[1] = CEC_MSG_CDC_MESSAGE;
        /* msg[2] and msg[3] (phys_addr) are filled in by the CEC framework */
        msg->msg[4] = CEC_MSG_CDC_HPD_REPORT_STATE;
diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h
index 8c06b28a4b70..3c57491d8e4a 100644
--- a/include/linux/v4l2-controls.h
+++ b/include/linux/v4l2-controls.h
@@ -224,6 +224,12 @@ enum v4l2_colorfx {
  */
 #define V4L2_CID_USER_UVC_BASE                 (V4L2_CID_USER_BASE + 0x11e0)
 
+/*
+ * The base for Rockchip ISP1 driver controls.
+ * We reserve 16 controls for this driver.
+ */
+#define V4L2_CID_USER_RKISP1_BASE              (V4L2_CID_USER_BASE + 0x1220)
+
 /* MPEG-class control IDs */
 /* The MPEG controls are applicable to all codec controls
  * and the 'MPEG' part of the define is historical */
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index f5f872948de9..6a9ea7600739 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -151,10 +151,18 @@ enum v4l2_buf_type {
        V4L2_BUF_TYPE_SDR_OUTPUT           = 12,
        V4L2_BUF_TYPE_META_CAPTURE         = 13,
        V4L2_BUF_TYPE_META_OUTPUT          = 14,
+       /*
+        * Note: V4L2_TYPE_IS_VALID and V4L2_TYPE_IS_OUTPUT must
+        * be updated if a new type is added.
+        */
        /* Deprecated, do not use */
        V4L2_BUF_TYPE_PRIVATE              = 0x80,
 };
 
+#define V4L2_TYPE_IS_VALID(type)                \
+       ((type) >= V4L2_BUF_TYPE_VIDEO_CAPTURE &&\
+        (type) <= V4L2_BUF_TYPE_META_OUTPUT)
+
 #define V4L2_TYPE_IS_MULTIPLANAR(type)                 \
        ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE   \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
@@ -162,14 +170,14 @@ enum v4l2_buf_type {
 #define V4L2_TYPE_IS_OUTPUT(type)                              \
        ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE         \
-        || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY               \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY        \
         || (type) == V4L2_BUF_TYPE_VBI_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT           \
         || (type) == V4L2_BUF_TYPE_SDR_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_META_OUTPUT)
 
-#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
+#define V4L2_TYPE_IS_CAPTURE(type)     \
+       (V4L2_TYPE_IS_VALID(type) && !V4L2_TYPE_IS_OUTPUT(type))
 
 enum v4l2_tuner_type {
        V4L2_TUNER_RADIO             = 1,
@@ -616,8 +624,10 @@ struct v4l2_pix_format {
 /* two planes -- one Y, one Cr + Cb interleaved  */
 #define V4L2_PIX_FMT_NV12    v4l2_fourcc('N', 'V', '1', '2') /* 12  Y/CbCr 
4:2:0  */
 #define V4L2_PIX_FMT_NV21    v4l2_fourcc('N', 'V', '2', '1') /* 12  Y/CrCb 
4:2:0  */
+#define V4L2_PIX_FMT_NV15    v4l2_fourcc('N', 'V', '1', '5') /* 15  Y/CbCr 
4:2:0 10-bit packed */
 #define V4L2_PIX_FMT_NV16    v4l2_fourcc('N', 'V', '1', '6') /* 16  Y/CbCr 
4:2:2  */
 #define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 
4:2:2  */
+#define V4L2_PIX_FMT_NV20    v4l2_fourcc('N', 'V', '2', '0') /* 20  Y/CbCr 
4:2:2 10-bit packed */
 #define V4L2_PIX_FMT_NV24    v4l2_fourcc('N', 'V', '2', '4') /* 24  Y/CbCr 
4:4:4  */
 #define V4L2_PIX_FMT_NV42    v4l2_fourcc('N', 'V', '4', '2') /* 24  Y/CrCb 
4:4:4  */
 #define V4L2_PIX_FMT_P010    v4l2_fourcc('P', '0', '1', '0') /* 24  Y/CbCr 
4:2:0 10-bit per component */
@@ -689,7 +699,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12  GBGB.. 
RGRG.. */
 #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12  GRGR.. 
BGBG.. */
 #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12  RGRG.. 
GBGB.. */
-       /* 12bit raw bayer packed, 6 bytes for every 4 pixels */
+       /* 12bit raw bayer packed, 3 bytes for every 2 pixels */
 #define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
 #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
 #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
@@ -803,6 +813,12 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_PISP_COMP2_BGGR   v4l2_fourcc('P', 'C', '2', 'B') /* PiSP 
8-bit mode 2 compressed BGGR bayer */
 #define V4L2_PIX_FMT_PISP_COMP2_MONO   v4l2_fourcc('P', 'C', '2', 'M') /* PiSP 
8-bit mode 2 compressed monochrome */
 
+/* Renesas RZ/V2H CRU packed formats. 64-bit units with contiguous pixels */
+#define V4L2_PIX_FMT_RAW_CRU10 v4l2_fourcc('C', 'R', '1', '0')
+#define V4L2_PIX_FMT_RAW_CRU12 v4l2_fourcc('C', 'R', '1', '2')
+#define V4L2_PIX_FMT_RAW_CRU14 v4l2_fourcc('C', 'R', '1', '4')
+#define V4L2_PIX_FMT_RAW_CRU20 v4l2_fourcc('C', 'R', '2', '0')
+
 /* SDR formats - used only for Software Defined Radio devices */
 #define V4L2_SDR_FMT_CU8          v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
 #define V4L2_SDR_FMT_CU16LE       v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le 
*/
@@ -824,6 +840,7 @@ struct v4l2_pix_format {
 #define V4L2_META_FMT_VSP1_HGT    v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car 
VSP1 2-D Histogram */
 #define V4L2_META_FMT_UVC         v4l2_fourcc('U', 'V', 'C', 'H') /* UVC 
Payload Header metadata */
 #define V4L2_META_FMT_D4XX        v4l2_fourcc('D', '4', 'X', 'X') /* D4XX 
Payload Header metadata */
+#define V4L2_META_FMT_UVC_MSXU_1_5  v4l2_fourcc('U', 'V', 'C', 'M') /* UVC 
MSXU metadata */
 #define V4L2_META_FMT_VIVID      v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid 
Metadata */
 
 /* Vendor specific - used for RK_ISP1 camera sub-system */
@@ -831,6 +848,10 @@ struct v4l2_pix_format {
 #define V4L2_META_FMT_RK_ISP1_STAT_3A  v4l2_fourcc('R', 'K', '1', 'S') /* 
Rockchip ISP1 3A Statistics */
 #define V4L2_META_FMT_RK_ISP1_EXT_PARAMS       v4l2_fourcc('R', 'K', '1', 'E') 
/* Rockchip ISP1 3a Extensible Parameters */
 
+/* Vendor specific - used for C3_ISP */
+#define V4L2_META_FMT_C3ISP_PARAMS     v4l2_fourcc('C', '3', 'P', 'M') /* 
Amlogic C3 ISP Parameters */
+#define V4L2_META_FMT_C3ISP_STATS      v4l2_fourcc('C', '3', 'S', 'T') /* 
Amlogic C3 ISP Statistics */
+
 /* Vendor specific - used for RaspberryPi PiSP */
 #define V4L2_META_FMT_RPI_BE_CFG       v4l2_fourcc('R', 'P', 'B', 'C') /* PiSP 
BE configuration */
 #define V4L2_META_FMT_RPI_FE_CFG       v4l2_fourcc('R', 'P', 'F', 'C') /* PiSP 
FE configuration */
diff --git a/utils/common/v4l2-pix-formats.h b/utils/common/v4l2-pix-formats.h
index 9d2dac5508ee..b0a7fe10bd5d 100644
--- a/utils/common/v4l2-pix-formats.h
+++ b/utils/common/v4l2-pix-formats.h
@@ -92,8 +92,10 @@
        case V4L2_PIX_FMT_YUV48_12: return "12-bit YUV 4:4:4 Packed";
        case V4L2_PIX_FMT_NV12: return "Y/UV 4:2:0";
        case V4L2_PIX_FMT_NV21: return "Y/VU 4:2:0";
+       case V4L2_PIX_FMT_NV15: return "10-bit Y/UV 4:2:0 (Packed)";
        case V4L2_PIX_FMT_NV16: return "Y/UV 4:2:2";
        case V4L2_PIX_FMT_NV61: return "Y/VU 4:2:2";
+       case V4L2_PIX_FMT_NV20: return "10-bit Y/UV 4:2:2 (Packed)";
        case V4L2_PIX_FMT_NV24: return "Y/UV 4:4:4";
        case V4L2_PIX_FMT_NV42: return "Y/VU 4:4:4";
        case V4L2_PIX_FMT_P010: return "10-bit Y/UV 4:2:0";
@@ -140,6 +142,7 @@
        case V4L2_PIX_FMT_SGBRG10DPCM8: return "8-bit Bayer GBGB/RGRG (DPCM)";
        case V4L2_PIX_FMT_SGRBG10DPCM8: return "8-bit Bayer GRGR/BGBG (DPCM)";
        case V4L2_PIX_FMT_SRGGB10DPCM8: return "8-bit Bayer RGRG/GBGB (DPCM)";
+       case V4L2_PIX_FMT_RAW_CRU10: return "10-bit Raw CRU Packed";
        case V4L2_PIX_FMT_SBGGR12: return "12-bit Bayer BGBG/GRGR";
        case V4L2_PIX_FMT_SGBRG12: return "12-bit Bayer GBGB/RGRG";
        case V4L2_PIX_FMT_SGRBG12: return "12-bit Bayer GRGR/BGBG";
@@ -148,6 +151,7 @@
        case V4L2_PIX_FMT_SGBRG12P: return "12-bit Bayer GBGB/RGRG Packed";
        case V4L2_PIX_FMT_SGRBG12P: return "12-bit Bayer GRGR/BGBG Packed";
        case V4L2_PIX_FMT_SRGGB12P: return "12-bit Bayer RGRG/GBGB Packed";
+       case V4L2_PIX_FMT_RAW_CRU12: return "12-bit Raw CRU Packed";
        case V4L2_PIX_FMT_SBGGR14: return "14-bit Bayer BGBG/GRGR";
        case V4L2_PIX_FMT_SGBRG14: return "14-bit Bayer GBGB/RGRG";
        case V4L2_PIX_FMT_SGRBG14: return "14-bit Bayer GRGR/BGBG";
@@ -156,10 +160,12 @@
        case V4L2_PIX_FMT_SGBRG14P: return "14-bit Bayer GBGB/RGRG Packed";
        case V4L2_PIX_FMT_SGRBG14P: return "14-bit Bayer GRGR/BGBG Packed";
        case V4L2_PIX_FMT_SRGGB14P: return "14-bit Bayer RGRG/GBGB Packed";
+       case V4L2_PIX_FMT_RAW_CRU14: return "14-bit Raw CRU Packed";
        case V4L2_PIX_FMT_SBGGR16: return "16-bit Bayer BGBG/GRGR";
        case V4L2_PIX_FMT_SGBRG16: return "16-bit Bayer GBGB/RGRG";
        case V4L2_PIX_FMT_SGRBG16: return "16-bit Bayer GRGR/BGBG";
        case V4L2_PIX_FMT_SRGGB16: return "16-bit Bayer RGRG/GBGB";
+       case V4L2_PIX_FMT_RAW_CRU20: return "14-bit Raw CRU Packed";
        case V4L2_PIX_FMT_SN9C20X_I420: return "GSPCA SN9C20X I420";
        case V4L2_PIX_FMT_SPCA501: return "GSPCA SPCA501";
        case V4L2_PIX_FMT_SPCA505: return "GSPCA SPCA505";
@@ -186,11 +192,14 @@
        case V4L2_META_FMT_VSP1_HGO: return "R-Car VSP1 1-D Histogram";
        case V4L2_META_FMT_VSP1_HGT: return "R-Car VSP1 2-D Histogram";
        case V4L2_META_FMT_UVC: return "UVC Payload Header Metadata";
+       case V4L2_META_FMT_UVC_MSXU_1_5: return "UVC MSXU Metadata";
        case V4L2_META_FMT_D4XX: return "Intel D4xx UVC Metadata";
        case V4L2_META_FMT_VIVID: return "Vivid Metadata";
        case V4L2_META_FMT_RK_ISP1_PARAMS: return "Rockchip ISP1 3A Parameters";
        case V4L2_META_FMT_RK_ISP1_STAT_3A: return "Rockchip ISP1 3A 
Statistics";
        case V4L2_META_FMT_RK_ISP1_EXT_PARAMS: return "Rockchip ISP1 Ext 3A 
Params";
+       case V4L2_META_FMT_C3ISP_PARAMS: return "Amlogic C3 ISP Parameters";
+       case V4L2_META_FMT_C3ISP_STATS: return "Amlogic C3 ISP Statistics";
        case V4L2_PIX_FMT_NV12_8L128: return "NV12 (8x128 Linear)";
        case V4L2_PIX_FMT_NV12M_8L128: return "NV12M (8x128 Linear)";
        case V4L2_PIX_FMT_NV12_10BE_8L128: return "10-bit NV12 (8x128 Linear, 
BE)";
diff --git a/utils/keytable/parse.h b/utils/keytable/parse.h
index d81a16cc5830..62a482e2a610 100644
--- a/utils/keytable/parse.h
+++ b/utils/keytable/parse.h
@@ -517,6 +517,10 @@ struct parse_event key_events[] = {
        {"BTN_DPAD_DOWN", 0x221},
        {"BTN_DPAD_LEFT", 0x222},
        {"BTN_DPAD_RIGHT", 0x223},
+       {"BTN_GRIPL", 0x224},
+       {"BTN_GRIPR", 0x225},
+       {"BTN_GRIPL2", 0x226},
+       {"BTN_GRIPR2", 0x227},
        {"KEY_ALS_TOGGLE", 0x230},
        {"KEY_ROTATE_LOCK_TOGGLE", 0x231},
        {"KEY_REFRESH_RATE_TOGGLE", 0x232},
@@ -621,6 +625,7 @@ struct parse_event key_events[] = {
        {"KEY_KBD_LCD_MENU3", 0x2ba},
        {"KEY_KBD_LCD_MENU4", 0x2bb},
        {"KEY_KBD_LCD_MENU5", 0x2bc},
+       {"KEY_PERFORMANCE", 0x2bd},
        {"BTN_TRIGGER_HAPPY", 0x2c0},
        {"BTN_TRIGGER_HAPPY1", 0x2c0},
        {"BTN_TRIGGER_HAPPY2", 0x2c1},
diff --git a/utils/keytable/rc_keymaps/hauppauge.toml 
b/utils/keytable/rc_keymaps/hauppauge.toml
index 743c82afd6a3..b28d295fc18e 100644
--- a/utils/keytable/rc_keymaps/hauppauge.toml
+++ b/utils/keytable/rc_keymaps/hauppauge.toml
@@ -177,3 +177,34 @@ variant = "rc5"
 0x001e = "KEY_RED"
 0x0000 = "KEY_NUMERIC_0"
 0x0026 = "KEY_SLEEP"
+0x190a = "KEY_LAST"
+0x192f = "KEY_MENU"
+0x1910 = "KEY_CHANNELUP"
+0x192e = "KEY_CHANNELDOWN"
+0x192c = "KEY_OK"
+0x1911 = "KEY_TV"
+0x190c = "KEY_POWER"
+0x1900 = "KEY_NUMERIC_0"
+0x1938 = "KEY_NUMERIC_1"
+0x1920 = "KEY_NUMERIC_2"
+0x1901 = "KEY_NUMERIC_3"
+0x1902 = "KEY_NUMERIC_4"
+0x1904 = "KEY_NUMERIC_5"
+0x1905 = "KEY_NUMERIC_6"
+0x1907 = "KEY_NUMERIC_7"
+0x1908 = "KEY_NUMERIC_8"
+0x190f = "KEY_NUMERIC_9"
+0x1921 = "KEY_VOLUMEUP"
+0x1903 = "KEY_VOLUMEDOWN"
+0x1906 = "KEY_MUTE"
+0x1909 = "KEY_CAMERA"
+0x1922 = "KEY_SUBTITLE"
+0x192b = "KEY_INFO"
+0x1929 = "KEY_END"
+0x190d = "KEY_PLAYPAUSE"
+0x1926 = "KEY_STOP"
+0x192a = "KEY_RECORD"
+0x193a = "KEY_PREVIOUS"
+0x193b = "KEY_REWIND"
+0x193c = "KEY_FASTFORWARD"
+0x193d = "KEY_NEXT"
diff --git a/utils/v4l2-tracer/v4l2-tracer-info-gen.h 
b/utils/v4l2-tracer/v4l2-tracer-info-gen.h
index bcea6ddeabec..f9b5d48c6239 100644
--- a/utils/v4l2-tracer/v4l2-tracer-info-gen.h
+++ b/utils/v4l2-tracer/v4l2-tracer-info-gen.h
@@ -1319,8 +1319,10 @@ constexpr val_def v4l2_pix_fmt_val_def[] = {
        { V4L2_PIX_FMT_Y216,    "V4L2_PIX_FMT_Y216" },
        { V4L2_PIX_FMT_NV12,    "V4L2_PIX_FMT_NV12" },
        { V4L2_PIX_FMT_NV21,    "V4L2_PIX_FMT_NV21" },
+       { V4L2_PIX_FMT_NV15,    "V4L2_PIX_FMT_NV15" },
        { V4L2_PIX_FMT_NV16,    "V4L2_PIX_FMT_NV16" },
        { V4L2_PIX_FMT_NV61,    "V4L2_PIX_FMT_NV61" },
+       { V4L2_PIX_FMT_NV20,    "V4L2_PIX_FMT_NV20" },
        { V4L2_PIX_FMT_NV24,    "V4L2_PIX_FMT_NV24" },
        { V4L2_PIX_FMT_NV42,    "V4L2_PIX_FMT_NV42" },
        { V4L2_PIX_FMT_P010,    "V4L2_PIX_FMT_P010" },

Reply via email to