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-kernel
Author:  Hans Verkuil <hverkuil-ci...@xs4all.nl>
Date:    Wed Jun 15 10:27:45 2022 +0200

Update v4l-utils to the latest kernel headers.

Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 contrib/freebsd/include/linux/input-event-codes.h  |  21 ++++
 contrib/freebsd/include/linux/input.h              |   1 +
 contrib/freebsd/include/linux/v4l2-controls.h      |   5 +
 contrib/freebsd/include/linux/videodev2.h          |   6 +-
 contrib/xc3028-firmware/firmware-tool.c            |   2 +-
 .../{tuner-xc2028-types.h => xc2028-types.h}       |   6 +-
 include/linux/bpf.h                                | 125 +++++++++++++++++++++
 include/linux/cec.h                                |  20 ++++
 include/linux/fb.h                                 |   2 +-
 include/linux/lirc.h                               |   7 ++
 include/linux/media.h                              |   2 +-
 include/linux/v4l2-controls.h                      |   5 +
 include/linux/videodev2.h                          |   6 +-
 sync-with-kernel.sh                                |   2 +-
 utils/common/v4l2-pix-formats.h                    |   4 +
 utils/common/v4l2-tpg-core.c                       |  38 +++++++
 utils/common/v4l2-tpg.h                            |  16 +++
 utils/keytable/parse.h                             |  15 +++
 18 files changed, 274 insertions(+), 9 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=0efd21a148337891a26ad3f6bb096087a8aa04f1
diff --git a/contrib/freebsd/include/linux/input-event-codes.h 
b/contrib/freebsd/include/linux/input-event-codes.h
index ae425f0a2a56..a63dcd4adee1 100644
--- a/contrib/freebsd/include/linux/input-event-codes.h
+++ b/contrib/freebsd/include/linux/input-event-codes.h
@@ -662,6 +662,27 @@
 /* Select an area of screen to be copied */
 #define KEY_SELECTIVE_SCREENSHOT       0x27a
 
+/* Move the focus to the next or previous user controllable element within a 
UI container */
+#define KEY_NEXT_ELEMENT               0x27b
+#define KEY_PREVIOUS_ELEMENT           0x27c
+
+/* Toggle Autopilot engagement */
+#define KEY_AUTOPILOT_ENGAGE_TOGGLE    0x27d
+
+/* Shortcut Keys */
+#define KEY_MARK_WAYPOINT              0x27e
+#define KEY_SOS                                0x27f
+#define KEY_NAV_CHART                  0x280
+#define KEY_FISHING_CHART              0x281
+#define KEY_SINGLE_RANGE_RADAR         0x282
+#define KEY_DUAL_RANGE_RADAR           0x283
+#define KEY_RADAR_OVERLAY              0x284
+#define KEY_TRADITIONAL_SONAR          0x285
+#define KEY_CLEARVU_SONAR              0x286
+#define KEY_SIDEVU_SONAR               0x287
+#define KEY_NAV_INFO                   0x288
+#define KEY_BRIGHTNESS_MENU            0x289
+
 /*
  * Some keyboards have keys which do not have a defined meaning, these keys
  * are intended to be programmed / bound to macros by the user. For most
diff --git a/contrib/freebsd/include/linux/input.h 
b/contrib/freebsd/include/linux/input.h
index 467fa4bfb6fd..2ff653ac1215 100644
--- a/contrib/freebsd/include/linux/input.h
+++ b/contrib/freebsd/include/linux/input.h
@@ -305,6 +305,7 @@ struct input_mask {
 #define BUS_RMI                        0x1D
 #define BUS_CEC                        0x1E
 #define BUS_INTEL_ISHTP                0x1F
+#define BUS_AMD_SFH            0x20
 
 /*
  * MT_TOOL types
diff --git a/contrib/freebsd/include/linux/v4l2-controls.h 
b/contrib/freebsd/include/linux/v4l2-controls.h
index 8e9094cd7446..5d9215667806 100644
--- a/contrib/freebsd/include/linux/v4l2-controls.h
+++ b/contrib/freebsd/include/linux/v4l2-controls.h
@@ -451,6 +451,11 @@ enum v4l2_mpeg_video_multi_slice_mode {
 #define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES             
(V4L2_CID_CODEC_BASE+234)
 #define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR          
(V4L2_CID_CODEC_BASE+235)
 #define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD       
(V4L2_CID_CODEC_BASE+236)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE  
(V4L2_CID_CODEC_BASE+237)
+enum v4l2_mpeg_video_intra_refresh_period_type {
+       V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM    = 0,
+       V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC    = 1,
+};
 
 /* CIDs for the MPEG-2 Part 2 (H.262) codec */
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL                        
(V4L2_CID_CODEC_BASE+270)
diff --git a/contrib/freebsd/include/linux/videodev2.h 
b/contrib/freebsd/include/linux/videodev2.h
index f4421f9581b0..a5e62412af73 100644
--- a/contrib/freebsd/include/linux/videodev2.h
+++ b/contrib/freebsd/include/linux/videodev2.h
@@ -597,6 +597,7 @@ struct v4l2_pix_format {
 /* Grey bit-packed formats */
 #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 */
 
 /* Palette formats */
 #define V4L2_PIX_FMT_PAL8    v4l2_fourcc('P', 'A', 'L', '8') /*  8  8-bit 
palette */
@@ -629,6 +630,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 
4:2:2  */
 #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 */
 
 /* two non contiguous planes - one Y, one Cr + Cb interleaved  */
 #define V4L2_PIX_FMT_NV12M   v4l2_fourcc('N', 'M', '1', '2') /* 12  Y/CbCr 
4:2:0  */
@@ -774,8 +776,10 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_INZI     v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar 
Greyscale 10-bit and Depth 16-bit */
 #define V4L2_PIX_FMT_CNF4     v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit 
packed depth confidence information */
 #define V4L2_PIX_FMT_HI240    v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit 
dithered RGB */
+#define V4L2_PIX_FMT_QC08C    v4l2_fourcc('Q', '0', '8', 'C') /* Qualcomm 
8-bit compressed */
+#define V4L2_PIX_FMT_QC10C    v4l2_fourcc('Q', '1', '0', 'C') /* Qualcomm 
10-bit compressed */
 
-/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits 
unused */
+/* 10bit raw packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
 #define V4L2_PIX_FMT_IPU3_SBGGR10      v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 
packed 10-bit BGGR bayer */
 #define V4L2_PIX_FMT_IPU3_SGBRG10      v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 
packed 10-bit GBRG bayer */
 #define V4L2_PIX_FMT_IPU3_SGRBG10      v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 
packed 10-bit GRBG bayer */
diff --git a/contrib/xc3028-firmware/firmware-tool.c 
b/contrib/xc3028-firmware/firmware-tool.c
index 1b9c7549a7a0..3ae59f87e45b 100644
--- a/contrib/xc3028-firmware/firmware-tool.c
+++ b/contrib/xc3028-firmware/firmware-tool.c
@@ -32,7 +32,7 @@
 #include <asm/byteorder.h>
 #include <asm/types.h>
 
-#include "tuner-xc2028-types.h"
+#include "xc2028-types.h"
 #include "linux/videodev2.h"
 
 #include "extract_head.h"
diff --git a/contrib/xc3028-firmware/tuner-xc2028-types.h 
b/contrib/xc3028-firmware/xc2028-types.h
similarity index 96%
rename from contrib/xc3028-firmware/tuner-xc2028-types.h
rename to contrib/xc3028-firmware/xc2028-types.h
index fcca39d3e006..63a03de1e97b 100644
--- a/contrib/xc3028-firmware/tuner-xc2028-types.h
+++ b/contrib/xc3028-firmware/xc2028-types.h
@@ -1,9 +1,9 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * tuner-xc2028_types
+ * xc2028_types
  *
- * This file includes internal tipes to be used inside tuner-xc2028.
- * Shouldn't be included outside tuner-xc2028
+ * This file includes internal tipes to be used inside xc2028.
+ * Shouldn't be included outside xc2028
  *
  * Copyright (c) 2007-2008 Mauro Carvalho Chehab <mche...@kernel.org>
  */
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 5889a4d30ab3..2892794fae0f 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -1013,6 +1013,7 @@ enum bpf_link_type {
        BPF_LINK_TYPE_XDP = 6,
        BPF_LINK_TYPE_PERF_EVENT = 7,
        BPF_LINK_TYPE_KPROBE_MULTI = 8,
+       BPF_LINK_TYPE_STRUCT_OPS = 9,
 
        MAX_BPF_LINK_TYPE,
 };
@@ -1489,6 +1490,15 @@ union bpf_attr {
                                __aligned_u64   addrs;
                                __aligned_u64   cookies;
                        } kprobe_multi;
+                       struct {
+                               /* this is overlaid with the target_btf_id 
above. */
+                               __u32           target_btf_id;
+                               /* black box user-provided value passed through
+                                * to BPF program at the execution time and
+                                * accessible through bpf_get_attach_cookie() 
BPF helper
+                                */
+                               __u64           cookie;
+                       } tracing;
                };
        } link_create;
 
@@ -5143,6 +5153,102 @@ union bpf_attr {
  *             The **hash_algo** is returned on success,
  *             **-EOPNOTSUP** if the hash calculation failed or **-EINVAL** if
  *             invalid arguments are passed.
+ *
+ * void *bpf_kptr_xchg(void *map_value, void *ptr)
+ *     Description
+ *             Exchange kptr at pointer *map_value* with *ptr*, and return the
+ *             old value. *ptr* can be NULL, otherwise it must be a referenced
+ *             pointer which will be released when this helper is called.
+ *     Return
+ *             The old value of kptr (which can be NULL). The returned pointer
+ *             if not NULL, is a reference which must be released using its
+ *             corresponding release function, or moved into a BPF map before
+ *             program exit.
+ *
+ * void *bpf_map_lookup_percpu_elem(struct bpf_map *map, const void *key, u32 
cpu)
+ *     Description
+ *             Perform a lookup in *percpu map* for an entry associated to
+ *             *key* on *cpu*.
+ *     Return
+ *             Map value associated to *key* on *cpu*, or **NULL** if no entry
+ *             was found or *cpu* is invalid.
+ *
+ * struct mptcp_sock *bpf_skc_to_mptcp_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *mptcp_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or **NULL** otherwise.
+ *
+ * long bpf_dynptr_from_mem(void *data, u32 size, u64 flags, struct bpf_dynptr 
*ptr)
+ *     Description
+ *             Get a dynptr to local memory *data*.
+ *
+ *             *data* must be a ptr to a map value.
+ *             The maximum *size* supported is DYNPTR_MAX_SIZE.
+ *             *flags* is currently unused.
+ *     Return
+ *             0 on success, -E2BIG if the size exceeds DYNPTR_MAX_SIZE,
+ *             -EINVAL if flags is not 0.
+ *
+ * long bpf_ringbuf_reserve_dynptr(void *ringbuf, u32 size, u64 flags, struct 
bpf_dynptr *ptr)
+ *     Description
+ *             Reserve *size* bytes of payload in a ring buffer *ringbuf*
+ *             through the dynptr interface. *flags* must be 0.
+ *
+ *             Please note that a corresponding bpf_ringbuf_submit_dynptr or
+ *             bpf_ringbuf_discard_dynptr must be called on *ptr*, even if the
+ *             reservation fails. This is enforced by the verifier.
+ *     Return
+ *             0 on success, or a negative error in case of failure.
+ *
+ * void bpf_ringbuf_submit_dynptr(struct bpf_dynptr *ptr, u64 flags)
+ *     Description
+ *             Submit reserved ring buffer sample, pointed to by *data*,
+ *             through the dynptr interface. This is a no-op if the dynptr is
+ *             invalid/null.
+ *
+ *             For more information on *flags*, please see
+ *             'bpf_ringbuf_submit'.
+ *     Return
+ *             Nothing. Always succeeds.
+ *
+ * void bpf_ringbuf_discard_dynptr(struct bpf_dynptr *ptr, u64 flags)
+ *     Description
+ *             Discard reserved ring buffer sample through the dynptr
+ *             interface. This is a no-op if the dynptr is invalid/null.
+ *
+ *             For more information on *flags*, please see
+ *             'bpf_ringbuf_discard'.
+ *     Return
+ *             Nothing. Always succeeds.
+ *
+ * long bpf_dynptr_read(void *dst, u32 len, struct bpf_dynptr *src, u32 offset)
+ *     Description
+ *             Read *len* bytes from *src* into *dst*, starting from *offset*
+ *             into *src*.
+ *     Return
+ *             0 on success, -E2BIG if *offset* + *len* exceeds the length
+ *             of *src*'s data, -EINVAL if *src* is an invalid dynptr.
+ *
+ * long bpf_dynptr_write(struct bpf_dynptr *dst, u32 offset, void *src, u32 
len)
+ *     Description
+ *             Write *len* bytes from *src* into *dst*, starting from *offset*
+ *             into *dst*.
+ *     Return
+ *             0 on success, -E2BIG if *offset* + *len* exceeds the length
+ *             of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if 
*dst*
+ *             is a read-only dynptr.
+ *
+ * void *bpf_dynptr_data(struct bpf_dynptr *ptr, u32 offset, u32 len)
+ *     Description
+ *             Get a pointer to the underlying dynptr data.
+ *
+ *             *len* must be a statically known value. The returned data slice
+ *             is invalidated whenever the dynptr is invalidated.
+ *     Return
+ *             Pointer to the underlying dynptr data, NULL if the dynptr is
+ *             read-only, if the dynptr is invalid, or if the offset and length
+ *             is out of bounds.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -5339,6 +5445,16 @@ union bpf_attr {
        FN(copy_from_user_task),        \
        FN(skb_set_tstamp),             \
        FN(ima_file_hash),              \
+       FN(kptr_xchg),                  \
+       FN(map_lookup_percpu_elem),     \
+       FN(skc_to_mptcp_sock),          \
+       FN(dynptr_from_mem),            \
+       FN(ringbuf_reserve_dynptr),     \
+       FN(ringbuf_submit_dynptr),      \
+       FN(ringbuf_discard_dynptr),     \
+       FN(dynptr_read),                \
+       FN(dynptr_write),               \
+       FN(dynptr_data),                \
        /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5592,6 +5708,10 @@ struct bpf_tunnel_key {
        __u8 tunnel_ttl;
        __u16 tunnel_ext;       /* Padding, future use. */
        __u32 tunnel_label;
+       union {
+               __u32 local_ipv4;
+               __u32 local_ipv6[4];
+       };
 };
 
 /* user accessible mirror of in-kernel xfrm_state.
@@ -6486,6 +6606,11 @@ struct bpf_timer {
        __u64 :64;
 } __attribute__((aligned(8)));
 
+struct bpf_dynptr {
+       __u64 :64;
+       __u64 :64;
+} __attribute__((aligned(8)));
+
 struct bpf_sysctl {
        __u32   write;          /* Sysctl is being read (= 0) or written (= 1).
                                 * Allows 1,2,4-byte read, but no write.
diff --git a/include/linux/cec.h b/include/linux/cec.h
index e417566b4c93..971a2ec5feac 100644
--- a/include/linux/cec.h
+++ b/include/linux/cec.h
@@ -142,6 +142,26 @@ static __inline__ void cec_msg_set_reply_to(struct cec_msg 
*msg,
        msg->reply = msg->timeout = 0;
 }
 
+/**
+ * cec_msg_recv_is_tx_result - return true if this message contains the
+ *                            result of an earlier non-blocking transmit
+ * @msg:       the message structure from CEC_RECEIVE
+ */
+static __inline__ int cec_msg_recv_is_tx_result(const struct cec_msg *msg)
+{
+       return msg->sequence && msg->tx_status && !msg->rx_status;
+}
+
+/**
+ * cec_msg_recv_is_rx_result - return true if this message contains the
+ *                            reply of an earlier non-blocking transmit
+ * @msg:       the message structure from CEC_RECEIVE
+ */
+static __inline__ int cec_msg_recv_is_rx_result(const struct cec_msg *msg)
+{
+       return msg->sequence && !msg->tx_status && msg->rx_status;
+}
+
 /* cec_msg flags field */
 #define CEC_MSG_FL_REPLY_TO_FOLLOWERS  (1 << 0)
 #define CEC_MSG_FL_RAW                 (1 << 1)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 859af96dd94b..ec7ef0e7cf0c 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -180,7 +180,7 @@ struct fb_fix_screeninfo {
  *
  * For pseudocolor: offset and length should be the same for all color
  * components. Offset specifies the position of the least significant bit
- * of the pallette index in a pixel value. Length indicates the number
+ * of the palette index in a pixel value. Length indicates the number
  * of available palette entries (i.e. # of entries = 1 << length).
  */
 struct fb_bitfield {
diff --git a/include/linux/lirc.h b/include/linux/lirc.h
index 23b0f2c8ba81..8d7ca7c6af42 100644
--- a/include/linux/lirc.h
+++ b/include/linux/lirc.h
@@ -84,6 +84,13 @@
 #define LIRC_CAN_SEND(x) ((x)&LIRC_CAN_SEND_MASK)
 #define LIRC_CAN_REC(x) ((x)&LIRC_CAN_REC_MASK)
 
+/*
+ * Unused features. These features were never implemented, in tree or
+ * out of tree. These definitions are here so not to break the lircd build.
+ */
+#define LIRC_CAN_SET_REC_FILTER                0
+#define LIRC_CAN_NOTIFY_DECODE         0
+
 /*** IOCTL commands for lirc driver ***/
 
 #define LIRC_GET_FEATURES              _IOR('i', 0x00000000, __u32)
diff --git a/include/linux/media.h b/include/linux/media.h
index 17432318a07e..e0da619eb5ec 100644
--- a/include/linux/media.h
+++ b/include/linux/media.h
@@ -20,7 +20,6 @@
 #ifndef __LINUX_MEDIA_H
 #define __LINUX_MEDIA_H
 
-#include <stdint.h>
 #include <linux/ioctl.h>
 #include <linux/types.h>
 
@@ -222,6 +221,7 @@ struct media_pad_desc {
 #define MEDIA_LNK_FL_LINK_TYPE                 (0xf << 28)
 #  define MEDIA_LNK_FL_DATA_LINK               (0 << 28)
 #  define MEDIA_LNK_FL_INTERFACE_LINK          (1 << 28)
+#  define MEDIA_LNK_FL_ANCILLARY_LINK          (2 << 28)
 
 struct media_link_desc {
        struct media_pad_desc source;
diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h
index 8e9094cd7446..5d9215667806 100644
--- a/include/linux/v4l2-controls.h
+++ b/include/linux/v4l2-controls.h
@@ -451,6 +451,11 @@ enum v4l2_mpeg_video_multi_slice_mode {
 #define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES             
(V4L2_CID_CODEC_BASE+234)
 #define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR          
(V4L2_CID_CODEC_BASE+235)
 #define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD       
(V4L2_CID_CODEC_BASE+236)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE  
(V4L2_CID_CODEC_BASE+237)
+enum v4l2_mpeg_video_intra_refresh_period_type {
+       V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM    = 0,
+       V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC    = 1,
+};
 
 /* CIDs for the MPEG-2 Part 2 (H.262) codec */
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL                        
(V4L2_CID_CODEC_BASE+270)
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 466ac50d01c2..5cf38d7c140f 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -563,6 +563,7 @@ struct v4l2_pix_format {
 /* Grey bit-packed formats */
 #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 */
 
 /* Palette formats */
 #define V4L2_PIX_FMT_PAL8    v4l2_fourcc('P', 'A', 'L', '8') /*  8  8-bit 
palette */
@@ -595,6 +596,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 
4:2:2  */
 #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 */
 
 /* two non contiguous planes - one Y, one Cr + Cb interleaved  */
 #define V4L2_PIX_FMT_NV12M   v4l2_fourcc('N', 'M', '1', '2') /* 12  Y/CbCr 
4:2:0  */
@@ -740,8 +742,10 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_INZI     v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar 
Greyscale 10-bit and Depth 16-bit */
 #define V4L2_PIX_FMT_CNF4     v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit 
packed depth confidence information */
 #define V4L2_PIX_FMT_HI240    v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit 
dithered RGB */
+#define V4L2_PIX_FMT_QC08C    v4l2_fourcc('Q', '0', '8', 'C') /* Qualcomm 
8-bit compressed */
+#define V4L2_PIX_FMT_QC10C    v4l2_fourcc('Q', '1', '0', 'C') /* Qualcomm 
10-bit compressed */
 
-/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits 
unused */
+/* 10bit raw packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
 #define V4L2_PIX_FMT_IPU3_SBGGR10      v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 
packed 10-bit BGGR bayer */
 #define V4L2_PIX_FMT_IPU3_SGBRG10      v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 
packed 10-bit GBRG bayer */
 #define V4L2_PIX_FMT_IPU3_SGRBG10      v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 
packed 10-bit GRBG bayer */
diff --git a/sync-with-kernel.sh b/sync-with-kernel.sh
index 9933f5622dd6..0e70f7b68e2e 100755
--- a/sync-with-kernel.sh
+++ b/sync-with-kernel.sh
@@ -76,7 +76,7 @@ function libdvbv5 {
 function xc3028-firmware {
        SRCDIR=${TOPSRCDIR}/contrib/xc3028-firmware
 
-       cp -a ${KERNEL_DIR}/drivers/media/tuners/tuner-xc2028-types.h ${SRCDIR}/
+       cp -a ${KERNEL_DIR}/drivers/media/tuners/xc2028-types.h ${SRCDIR}/
 }
 
 function ioctl-test {
diff --git a/utils/common/v4l2-pix-formats.h b/utils/common/v4l2-pix-formats.h
index 04e8a51760be..ea09e44a50a2 100644
--- a/utils/common/v4l2-pix-formats.h
+++ b/utils/common/v4l2-pix-formats.h
@@ -45,6 +45,7 @@
        case V4L2_PIX_FMT_Y16_BE: return "16-bit Greyscale BE";
        case V4L2_PIX_FMT_Y10BPACK: return "10-bit Greyscale (Packed)";
        case V4L2_PIX_FMT_Y10P: return "10-bit Greyscale (MIPI Packed)";
+       case V4L2_PIX_FMT_IPU3_Y10: return "10-bit greyscale (IPU3 Packed)";
        case V4L2_PIX_FMT_Y8I: return "Interleaved 8-bit Greyscale";
        case V4L2_PIX_FMT_Y12I: return "Interleaved 12-bit Greyscale";
        case V4L2_PIX_FMT_Z16: return "16-bit Depth";
@@ -81,6 +82,7 @@
        case V4L2_PIX_FMT_NV61: return "Y/CrCb 4:2:2";
        case V4L2_PIX_FMT_NV24: return "Y/CbCr 4:4:4";
        case V4L2_PIX_FMT_NV42: return "Y/CrCb 4:4:4";
+       case V4L2_PIX_FMT_P010: return "10-bit Y/CrCb 4:2:0";
        case V4L2_PIX_FMT_NV12_4L4: return "Y/CbCr 4:2:0 (4x4 Linear)";
        case V4L2_PIX_FMT_NV12_16L16: return "Y/CbCr 4:2:0 (16x16 Linear)";
        case V4L2_PIX_FMT_NV12_32L32: return "Y/CbCr 4:2:0 (32x32 Linear)";
@@ -214,3 +216,5 @@
        case V4L2_PIX_FMT_SE401: return "GSPCA SE401";
        case V4L2_PIX_FMT_S5C_UYVY_JPG: return "S5C73MX interleaved UYVY/JPEG";
        case V4L2_PIX_FMT_MT21C: return "Mediatek Compressed Format";
+       case V4L2_PIX_FMT_QC08C: return "QCOM Compressed 8-bit Format";
+       case V4L2_PIX_FMT_QC10C: return "QCOM Compressed 10-bit Format";
diff --git a/utils/common/v4l2-tpg-core.c b/utils/common/v4l2-tpg-core.c
index f0090ed673b5..bbca59d9226d 100644
--- a/utils/common/v4l2-tpg-core.c
+++ b/utils/common/v4l2-tpg-core.c
@@ -2387,6 +2387,44 @@ static void tpg_fill_plane_extras(const struct tpg_data 
*tpg,
                        ((params->sav_eav_f ^ vact) << 1) |
                        (hact ^ vact ^ params->sav_eav_f);
        }
+       if (tpg->insert_hdmi_video_guard_band) {
+               unsigned int i;
+
+               switch (tpg->fourcc) {
+               case V4L2_PIX_FMT_BGR24:
+               case V4L2_PIX_FMT_RGB24:
+                       for (i = 0; i < 3 * 4; i += 3) {
+                               vbuf[i] = 0xab;
+                               vbuf[i + 1] = 0x55;
+                               vbuf[i + 2] = 0xab;
+                       }
+                       break;
+               case V4L2_PIX_FMT_RGB32:
+               case V4L2_PIX_FMT_ARGB32:
+               case V4L2_PIX_FMT_XRGB32:
+               case V4L2_PIX_FMT_BGRX32:
+               case V4L2_PIX_FMT_BGRA32:
+                       for (i = 0; i < 4 * 4; i += 4) {
+                               vbuf[i] = 0x00;
+                               vbuf[i + 1] = 0xab;
+                               vbuf[i + 2] = 0x55;
+                               vbuf[i + 3] = 0xab;
+                       }
+                       break;
+               case V4L2_PIX_FMT_BGR32:
+               case V4L2_PIX_FMT_XBGR32:
+               case V4L2_PIX_FMT_ABGR32:
+               case V4L2_PIX_FMT_RGBX32:
+               case V4L2_PIX_FMT_RGBA32:
+                       for (i = 0; i < 4 * 4; i += 4) {
+                               vbuf[i] = 0xab;
+                               vbuf[i + 1] = 0x55;
+                               vbuf[i + 2] = 0xab;
+                               vbuf[i + 3] = 0x00;
+                       }
+                       break;
+               }
+       }
 }
 
 static void tpg_fill_plane_pattern(const struct tpg_data *tpg,
diff --git a/utils/common/v4l2-tpg.h b/utils/common/v4l2-tpg.h
index ecdb6ebaaa3c..5760854e059b 100644
--- a/utils/common/v4l2-tpg.h
+++ b/utils/common/v4l2-tpg.h
@@ -256,6 +256,7 @@ struct tpg_data {
        bool                            show_square;
        bool                            insert_sav;
        bool                            insert_eav;
+       bool                            insert_hdmi_video_guard_band;
 
        /* Test pattern movement */
        enum tpg_move_mode              mv_hor_mode;
@@ -637,6 +638,21 @@ static inline void tpg_s_insert_eav(struct tpg_data *tpg, 
bool insert_eav)
        tpg->insert_eav = insert_eav;
 }
 
+/*
+ * This inserts 4 pixels of the RGB color 0xab55ab at the left hand side of the
+ * image. This is only done for 3 or 4 byte RGB pixel formats. This pixel value
+ * equals the Video Guard Band value as defined by HDMI (see section 5.2.2.1
+ * in the HDMI 1.3 Specification) that preceeds the first actual pixel. If the
+ * HDMI receiver doesn't handle this correctly, then it might keep skipping
+ * these Video Guard Band patterns and end up with a shorter video line. So 
this
+ * is a nice pattern to test with.
+ */
+static inline void tpg_s_insert_hdmi_video_guard_band(struct tpg_data *tpg,
+                                                     bool 
insert_hdmi_video_guard_band)
+{
+       tpg->insert_hdmi_video_guard_band = insert_hdmi_video_guard_band;
+}
+
 void tpg_update_mv_step(struct tpg_data *tpg);
 
 static inline void tpg_s_mv_hor_mode(struct tpg_data *tpg,
diff --git a/utils/keytable/parse.h b/utils/keytable/parse.h
index 96a232216e45..c70664f0d4b1 100644
--- a/utils/keytable/parse.h
+++ b/utils/keytable/parse.h
@@ -558,6 +558,21 @@ struct parse_event key_events[] = {
        {"KEY_ONSCREEN_KEYBOARD", 0x278},
        {"KEY_PRIVACY_SCREEN_TOGGLE", 0x279},
        {"KEY_SELECTIVE_SCREENSHOT", 0x27a},
+       {"KEY_NEXT_ELEMENT", 0x27b},
+       {"KEY_PREVIOUS_ELEMENT", 0x27c},
+       {"KEY_AUTOPILOT_ENGAGE_TOGGLE", 0x27d},
+       {"KEY_MARK_WAYPOINT", 0x27e},
+       {"KEY_SOS", 0x27f},
+       {"KEY_NAV_CHART", 0x280},
+       {"KEY_FISHING_CHART", 0x281},
+       {"KEY_SINGLE_RANGE_RADAR", 0x282},
+       {"KEY_DUAL_RANGE_RADAR", 0x283},
+       {"KEY_RADAR_OVERLAY", 0x284},
+       {"KEY_TRADITIONAL_SONAR", 0x285},
+       {"KEY_CLEARVU_SONAR", 0x286},
+       {"KEY_SIDEVU_SONAR", 0x287},
+       {"KEY_NAV_INFO", 0x288},
+       {"KEY_BRIGHTNESS_MENU", 0x289},
        {"KEY_MACRO1", 0x290},
        {"KEY_MACRO2", 0x291},
        {"KEY_MACRO3", 0x292},

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to