diff options
Diffstat (limited to 'include/uapi')
45 files changed, 1176 insertions, 285 deletions
diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index 3feeaa3f987a..3193c3c3f5c0 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -145,6 +145,14 @@ extern "C" { #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */ /* + * 2 plane 10 bit per component YCbCr + * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian + * index 1 = Cb:Cr plane, [63:0] x:Cb2:Cr2:Cb1:x:Cr1:Cb0:Cr0 2:10:10:10:2:10:10:10 little endian + */ +#define DRM_FORMAT_XV15 fourcc_code('X', 'V', '1', '5') /* 2x2 subsampled Cb:Cr plane 2:10:10:10 */ +#define DRM_FORMAT_XV20 fourcc_code('X', 'V', '2', '0') /* 2x1 subsampled Cb:Cr plane 2:10:10:10 */ + +/* * Floating point 64bpp RGB * IEEE 754-2008 binary16 half-precision float * [15:0] sign:exponent:mantissa 1:5:10 @@ -209,6 +217,13 @@ extern "C" { #define DRM_FORMAT_YUV420_8BIT fourcc_code('Y', 'U', '0', '8') #define DRM_FORMAT_YUV420_10BIT fourcc_code('Y', 'U', '1', '0') +#define DRM_FORMAT_AVUY fourcc_code('A', 'V', 'U', 'Y') /* [31:0] A:Cr:Cb:Y 8:8:8:8 little endian */ +#define DRM_FORMAT_XVUY8888 fourcc_code('X', 'V', '2', '4') /* [31:0] x:Cr:Cb:Y 8:8:8:8 little endian */ +#define DRM_FORMAT_XVUY2101010 fourcc_code('X', 'V', '3', '0') /* [31:0] x:Cr:Cb:Y 2:10:10:10 little endian */ + +/* Grey scale */ +#define DRM_FORMAT_Y8 fourcc_code('G', 'R', 'E', 'Y') /* 8 Greyscale */ +#define DRM_FORMAT_Y10 fourcc_code('Y', '1', '0', ' ') /* 10 Greyscale */ /* * 2 plane RGB + A * index 0 = RGB plane, same format as the corresponding non _A8 format has diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 735c8cfdaaa1..5254c393c9c9 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -485,6 +485,8 @@ struct drm_mode_fb_cmd { #define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */ #define DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifer[] */ +#define DRM_MODE_FB_ALTERNATE_TOP (1<<2) /* for alternate top field */ +#define DRM_MODE_FB_ALTERNATE_BOTTOM (1<<3) /* for alternate bottom field */ struct drm_mode_fb_cmd2 { __u32 fb_id; diff --git a/include/uapi/linux/affs_hardblocks.h b/include/uapi/linux/affs_hardblocks.h index 5e2fb8481252..a5aff2eb5f70 100644 --- a/include/uapi/linux/affs_hardblocks.h +++ b/include/uapi/linux/affs_hardblocks.h @@ -7,42 +7,42 @@ /* Just the needed definitions for the RDB of an Amiga HD. */ struct RigidDiskBlock { - __u32 rdb_ID; + __be32 rdb_ID; __be32 rdb_SummedLongs; - __s32 rdb_ChkSum; - __u32 rdb_HostID; + __be32 rdb_ChkSum; + __be32 rdb_HostID; __be32 rdb_BlockBytes; - __u32 rdb_Flags; - __u32 rdb_BadBlockList; + __be32 rdb_Flags; + __be32 rdb_BadBlockList; __be32 rdb_PartitionList; - __u32 rdb_FileSysHeaderList; - __u32 rdb_DriveInit; - __u32 rdb_Reserved1[6]; - __u32 rdb_Cylinders; - __u32 rdb_Sectors; - __u32 rdb_Heads; - __u32 rdb_Interleave; - __u32 rdb_Park; - __u32 rdb_Reserved2[3]; - __u32 rdb_WritePreComp; - __u32 rdb_ReducedWrite; - __u32 rdb_StepRate; - __u32 rdb_Reserved3[5]; - __u32 rdb_RDBBlocksLo; - __u32 rdb_RDBBlocksHi; - __u32 rdb_LoCylinder; - __u32 rdb_HiCylinder; - __u32 rdb_CylBlocks; - __u32 rdb_AutoParkSeconds; - __u32 rdb_HighRDSKBlock; - __u32 rdb_Reserved4; + __be32 rdb_FileSysHeaderList; + __be32 rdb_DriveInit; + __be32 rdb_Reserved1[6]; + __be32 rdb_Cylinders; + __be32 rdb_Sectors; + __be32 rdb_Heads; + __be32 rdb_Interleave; + __be32 rdb_Park; + __be32 rdb_Reserved2[3]; + __be32 rdb_WritePreComp; + __be32 rdb_ReducedWrite; + __be32 rdb_StepRate; + __be32 rdb_Reserved3[5]; + __be32 rdb_RDBBlocksLo; + __be32 rdb_RDBBlocksHi; + __be32 rdb_LoCylinder; + __be32 rdb_HiCylinder; + __be32 rdb_CylBlocks; + __be32 rdb_AutoParkSeconds; + __be32 rdb_HighRDSKBlock; + __be32 rdb_Reserved4; char rdb_DiskVendor[8]; char rdb_DiskProduct[16]; char rdb_DiskRevision[4]; char rdb_ControllerVendor[8]; char rdb_ControllerProduct[16]; char rdb_ControllerRevision[4]; - __u32 rdb_Reserved5[10]; + __be32 rdb_Reserved5[10]; }; #define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */ @@ -50,16 +50,16 @@ struct RigidDiskBlock { struct PartitionBlock { __be32 pb_ID; __be32 pb_SummedLongs; - __s32 pb_ChkSum; - __u32 pb_HostID; + __be32 pb_ChkSum; + __be32 pb_HostID; __be32 pb_Next; - __u32 pb_Flags; - __u32 pb_Reserved1[2]; - __u32 pb_DevFlags; + __be32 pb_Flags; + __be32 pb_Reserved1[2]; + __be32 pb_DevFlags; __u8 pb_DriveName[32]; - __u32 pb_Reserved2[15]; + __be32 pb_Reserved2[15]; __be32 pb_Environment[17]; - __u32 pb_EReserved[15]; + __be32 pb_EReserved[15]; }; #define IDNAME_PARTITION 0x50415254 /* "PART" */ diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index c89c6495983d..a79f8c285a10 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h @@ -179,7 +179,7 @@ #define AUDIT_MAX_KEY_LEN 256 #define AUDIT_BITMASK_SIZE 64 #define AUDIT_WORD(nr) ((__u32)((nr)/32)) -#define AUDIT_BIT(nr) (1 << ((nr) - AUDIT_WORD(nr)*32)) +#define AUDIT_BIT(nr) (1U << ((nr) - AUDIT_WORD(nr)*32)) #define AUDIT_SYSCALL_CLASSES 16 #define AUDIT_CLASS_DIR_WRITE 0 diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h index 498eec813494..94649130e3d7 100644 --- a/include/uapi/linux/blkzoned.h +++ b/include/uapi/linux/blkzoned.h @@ -51,13 +51,13 @@ enum blk_zone_type { * * The Zone Condition state machine in the ZBC/ZAC standards maps the above * deinitions as: - * - ZC1: Empty | BLK_ZONE_EMPTY + * - ZC1: Empty | BLK_ZONE_COND_EMPTY * - ZC2: Implicit Open | BLK_ZONE_COND_IMP_OPEN * - ZC3: Explicit Open | BLK_ZONE_COND_EXP_OPEN - * - ZC4: Closed | BLK_ZONE_CLOSED - * - ZC5: Full | BLK_ZONE_FULL - * - ZC6: Read Only | BLK_ZONE_READONLY - * - ZC7: Offline | BLK_ZONE_OFFLINE + * - ZC4: Closed | BLK_ZONE_COND_CLOSED + * - ZC5: Full | BLK_ZONE_COND_FULL + * - ZC6: Read Only | BLK_ZONE_COND_READONLY + * - ZC7: Offline | BLK_ZONE_COND_OFFLINE * * Conditions 0x5 to 0xC are reserved by the current ZBC/ZAC spec and should * be considered invalid. diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index cb0631098f91..e5250a9b813d 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -780,7 +780,9 @@ union bpf_attr { * performed again, if the helper is used in combination with * direct packet access. * Return - * 0 on success, or a negative error in case of failure. + * 0 on success, or a negative error in case of failure. Positive + * error indicates a potential drop or congestion in the target + * device. The particular positive error codes are not defined. * * u64 bpf_get_current_pid_tgid(void) * Return diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h index 3ee0678c0a83..140722320698 100644 --- a/include/uapi/linux/btrfs.h +++ b/include/uapi/linux/btrfs.h @@ -162,6 +162,7 @@ struct btrfs_scrub_progress { }; #define BTRFS_SCRUB_READONLY 1 +#define BTRFS_SCRUB_SUPPORTED_FLAGS (BTRFS_SCRUB_READONLY) struct btrfs_ioctl_scrub_args { __u64 devid; /* in */ __u64 start; /* in */ @@ -538,6 +539,9 @@ struct btrfs_ioctl_clone_range_args { */ #define BTRFS_DEFRAG_RANGE_COMPRESS 1 #define BTRFS_DEFRAG_RANGE_START_IO 2 +#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \ + BTRFS_DEFRAG_RANGE_START_IO) + struct btrfs_ioctl_defrag_range_args { /* start of the defrag operation */ __u64 start; diff --git a/include/uapi/linux/can/error.h b/include/uapi/linux/can/error.h index 34633283de64..a1000cb63063 100644 --- a/include/uapi/linux/can/error.h +++ b/include/uapi/linux/can/error.h @@ -120,6 +120,9 @@ #define CAN_ERR_TRX_CANL_SHORT_TO_GND 0x70 /* 0111 0000 */ #define CAN_ERR_TRX_CANL_SHORT_TO_CANH 0x80 /* 1000 0000 */ -/* controller specific additional information / data[5..7] */ +/* data[5] is reserved (do not use) */ + +/* TX error counter / data[6] */ +/* RX error counter / data[7] */ #endif /* _UAPI_CAN_ERROR_H */ diff --git a/include/uapi/linux/capability.h b/include/uapi/linux/capability.h index 240fdb9a60f6..6e0d68e841cd 100644 --- a/include/uapi/linux/capability.h +++ b/include/uapi/linux/capability.h @@ -376,7 +376,7 @@ struct vfs_ns_cap_data { */ #define CAP_TO_INDEX(x) ((x) >> 5) /* 1 << 5 == bits in __u32 */ -#define CAP_TO_MASK(x) (1 << ((x) & 31)) /* mask for indexed __u32 */ +#define CAP_TO_MASK(x) (1U << ((x) & 31)) /* mask for indexed __u32 */ #endif /* _UAPI_LINUX_CAPABILITY_H */ diff --git a/include/uapi/linux/const.h b/include/uapi/linux/const.h index af2a44c08683..a429381e7ca5 100644 --- a/include/uapi/linux/const.h +++ b/include/uapi/linux/const.h @@ -28,7 +28,7 @@ #define _BITUL(x) (_UL(1) << (x)) #define _BITULL(x) (_ULL(1) << (x)) -#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) +#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1) #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) diff --git a/include/uapi/linux/dn.h b/include/uapi/linux/dn.h deleted file mode 100644 index 36ca71bd8bbe..000000000000 --- a/include/uapi/linux/dn.h +++ /dev/null @@ -1,149 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _LINUX_DN_H -#define _LINUX_DN_H - -#include <linux/ioctl.h> -#include <linux/types.h> -#include <linux/if_ether.h> - -/* - - DECnet Data Structures and Constants - -*/ - -/* - * DNPROTO_NSP can't be the same as SOL_SOCKET, - * so increment each by one (compared to ULTRIX) - */ -#define DNPROTO_NSP 2 /* NSP protocol number */ -#define DNPROTO_ROU 3 /* Routing protocol number */ -#define DNPROTO_NML 4 /* Net mgt protocol number */ -#define DNPROTO_EVL 5 /* Evl protocol number (usr) */ -#define DNPROTO_EVR 6 /* Evl protocol number (evl) */ -#define DNPROTO_NSPT 7 /* NSP trace protocol number */ - - -#define DN_ADDL 2 -#define DN_MAXADDL 2 /* ULTRIX headers have 20 here, but pathworks has 2 */ -#define DN_MAXOPTL 16 -#define DN_MAXOBJL 16 -#define DN_MAXACCL 40 -#define DN_MAXALIASL 128 -#define DN_MAXNODEL 256 -#define DNBUFSIZE 65023 - -/* - * SET/GET Socket options - must match the DSO_ numbers below - */ -#define SO_CONDATA 1 -#define SO_CONACCESS 2 -#define SO_PROXYUSR 3 -#define SO_LINKINFO 7 - -#define DSO_CONDATA 1 /* Set/Get connect data */ -#define DSO_DISDATA 10 /* Set/Get disconnect data */ -#define DSO_CONACCESS 2 /* Set/Get connect access data */ -#define DSO_ACCEPTMODE 4 /* Set/Get accept mode */ -#define DSO_CONACCEPT 5 /* Accept deferred connection */ -#define DSO_CONREJECT 6 /* Reject deferred connection */ -#define DSO_LINKINFO 7 /* Set/Get link information */ -#define DSO_STREAM 8 /* Set socket type to stream */ -#define DSO_SEQPACKET 9 /* Set socket type to sequenced packet */ -#define DSO_MAXWINDOW 11 /* Maximum window size allowed */ -#define DSO_NODELAY 12 /* Turn off nagle */ -#define DSO_CORK 13 /* Wait for more data! */ -#define DSO_SERVICES 14 /* NSP Services field */ -#define DSO_INFO 15 /* NSP Info field */ -#define DSO_MAX 15 /* Maximum option number */ - - -/* LINK States */ -#define LL_INACTIVE 0 -#define LL_CONNECTING 1 -#define LL_RUNNING 2 -#define LL_DISCONNECTING 3 - -#define ACC_IMMED 0 -#define ACC_DEFER 1 - -#define SDF_WILD 1 /* Wild card object */ -#define SDF_PROXY 2 /* Addr eligible for proxy */ -#define SDF_UICPROXY 4 /* Use uic-based proxy */ - -/* Structures */ - - -struct dn_naddr { - __le16 a_len; - __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */ -}; - -struct sockaddr_dn { - __u16 sdn_family; - __u8 sdn_flags; - __u8 sdn_objnum; - __le16 sdn_objnamel; - __u8 sdn_objname[DN_MAXOBJL]; - struct dn_naddr sdn_add; -}; -#define sdn_nodeaddrl sdn_add.a_len /* Node address length */ -#define sdn_nodeaddr sdn_add.a_addr /* Node address */ - - - -/* - * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure - */ -struct optdata_dn { - __le16 opt_status; /* Extended status return */ -#define opt_sts opt_status - __le16 opt_optl; /* Length of user data */ - __u8 opt_data[16]; /* User data */ -}; - -struct accessdata_dn { - __u8 acc_accl; - __u8 acc_acc[DN_MAXACCL]; - __u8 acc_passl; - __u8 acc_pass[DN_MAXACCL]; - __u8 acc_userl; - __u8 acc_user[DN_MAXACCL]; -}; - -/* - * DECnet logical link information structure - */ -struct linkinfo_dn { - __u16 idn_segsize; /* Segment size for link */ - __u8 idn_linkstate; /* Logical link state */ -}; - -/* - * Ethernet address format (for DECnet) - */ -union etheraddress { - __u8 dne_addr[ETH_ALEN]; /* Full ethernet address */ - struct { - __u8 dne_hiord[4]; /* DECnet HIORD prefix */ - __u8 dne_nodeaddr[2]; /* DECnet node address */ - } dne_remote; -}; - - -/* - * DECnet physical socket address format - */ -struct dn_addr { - __le16 dna_family; /* AF_DECnet */ - union etheraddress dna_netaddr; /* DECnet ethernet address */ -}; - -#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */ - -#define SIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr) -#define SIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr) -#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int) -#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int) - -#endif /* _LINUX_DN_H */ diff --git a/include/uapi/linux/gtp.h b/include/uapi/linux/gtp.h index c7d66755d212..78bd62014efd 100644 --- a/include/uapi/linux/gtp.h +++ b/include/uapi/linux/gtp.h @@ -30,6 +30,6 @@ enum gtp_attrs { GTPA_PAD, __GTPA_MAX, }; -#define GTPA_MAX (__GTPA_MAX + 1) +#define GTPA_MAX (__GTPA_MAX - 1) #endif /* _UAPI_LINUX_GTP_H_ */ diff --git a/include/uapi/linux/if_alg.h b/include/uapi/linux/if_alg.h index 769050771423..a0f4f6e1135d 100644 --- a/include/uapi/linux/if_alg.h +++ b/include/uapi/linux/if_alg.h @@ -51,6 +51,7 @@ struct af_alg_iv { #define ALG_SET_OP 3 #define ALG_SET_AEAD_ASSOCLEN 4 #define ALG_SET_AEAD_AUTHSIZE 5 +#define ALG_SET_KEY_TYPE 6 /* Operations */ #define ALG_OP_DECRYPT 0 diff --git a/include/uapi/linux/in.h b/include/uapi/linux/in.h index 60e1241d4b77..f5ac290c2250 100644 --- a/include/uapi/linux/in.h +++ b/include/uapi/linux/in.h @@ -154,6 +154,8 @@ struct in_addr { #define MCAST_MSFILTER 48 #define IP_MULTICAST_ALL 49 #define IP_UNICAST_IF 50 +#define IP_LOCAL_PORT_RANGE 51 +#define IP_PROTOCOL 52 #define MCAST_EXCLUDE 0 #define MCAST_INCLUDE 1 diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h index 7f0ae1f411e3..bf6c2f0b26fd 100644 --- a/include/uapi/linux/input-event-codes.h +++ b/include/uapi/linux/input-event-codes.h @@ -598,6 +598,7 @@ #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 */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h index 16c1fa2d89a4..b93b3da3cc84 100644 --- a/include/uapi/linux/media-bus-format.h +++ b/include/uapi/linux/media-bus-format.h @@ -34,7 +34,7 @@ #define MEDIA_BUS_FMT_FIXED 0x0001 -/* RGB - next is 0x101d */ +/* RGB - next is 0x101b */ #define MEDIA_BUS_FMT_RGB444_1X12 0x1016 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 @@ -155,4 +155,27 @@ /* HSV - next is 0x6002 */ #define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001 +/* RGB: Xilinx Specific - next is 0x1103 */ +#define MEDIA_BUS_FMT_RBG101010_1X30 0x1100 +#define MEDIA_BUS_FMT_RBG121212_1X36 0x1101 +#define MEDIA_BUS_FMT_RBG161616_1X48 0x1102 + +/* YUV: Xilinx Specific - next is 0x2109 */ +#define MEDIA_BUS_FMT_VYYUYY8_1X24 0x2100 +#define MEDIA_BUS_FMT_VYYUYY10_4X20 0x2101 +#define MEDIA_BUS_FMT_VUY10_1X30 0x2102 +#define MEDIA_BUS_FMT_UYYVYY12_4X24 0x2103 +#define MEDIA_BUS_FMT_VUY12_1X36 0x2104 +#define MEDIA_BUS_FMT_Y16_1X16 0x2105 +#define MEDIA_BUS_FMT_UYYVYY16_4X32 0x2106 +#define MEDIA_BUS_FMT_VUY16_1X48 0x2107 +#define MEDIA_BUS_FMT_UYVY16_2X32 0x2108 +/* + * This format should be used when the same driver handles + * both sides of the link and the bus format is a fixed + * metadata format that is not configurable from userspace. + * Width and height will be set to 0 for this format. + */ +#define MEDIA_BUS_FMT_METADATA_FIXED 0x7001 + #endif /* __LINUX_MEDIA_BUS_FORMAT_H */ diff --git a/include/uapi/linux/netfilter/nf_conntrack_sctp.h b/include/uapi/linux/netfilter/nf_conntrack_sctp.h index edc6ddab0de6..2d6f80d75ae7 100644 --- a/include/uapi/linux/netfilter/nf_conntrack_sctp.h +++ b/include/uapi/linux/netfilter/nf_conntrack_sctp.h @@ -15,7 +15,7 @@ enum sctp_conntrack { SCTP_CONNTRACK_SHUTDOWN_RECD, SCTP_CONNTRACK_SHUTDOWN_ACK_SENT, SCTP_CONNTRACK_HEARTBEAT_SENT, - SCTP_CONNTRACK_HEARTBEAT_ACKED, + SCTP_CONNTRACK_HEARTBEAT_ACKED, /* no longer used */ SCTP_CONNTRACK_MAX }; diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h index 0a995403172c..bc70d580e8d6 100644 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h @@ -162,6 +162,7 @@ enum nft_hook_attributes { enum nft_table_flags { NFT_TABLE_F_DORMANT = 0x1, }; +#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT) /** * enum nft_table_attributes - nf_tables table netlink attributes @@ -242,9 +243,11 @@ enum nft_rule_attributes { /** * enum nft_rule_compat_flags - nf_tables rule compat flags * + * @NFT_RULE_COMPAT_F_UNUSED: unused * @NFT_RULE_COMPAT_F_INV: invert the check result */ enum nft_rule_compat_flags { + NFT_RULE_COMPAT_F_UNUSED = (1 << 0), NFT_RULE_COMPAT_F_INV = (1 << 1), NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV, }; diff --git a/include/uapi/linux/netfilter/nfnetlink_cttimeout.h b/include/uapi/linux/netfilter/nfnetlink_cttimeout.h index 6b20fb22717b..aa805e6d4e28 100644 --- a/include/uapi/linux/netfilter/nfnetlink_cttimeout.h +++ b/include/uapi/linux/netfilter/nfnetlink_cttimeout.h @@ -94,7 +94,7 @@ enum ctattr_timeout_sctp { CTA_TIMEOUT_SCTP_SHUTDOWN_RECD, CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, CTA_TIMEOUT_SCTP_HEARTBEAT_SENT, - CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED, + CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED, /* no longer used */ __CTA_TIMEOUT_SCTP_MAX }; #define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) diff --git a/include/uapi/linux/netfilter_decnet.h b/include/uapi/linux/netfilter_decnet.h deleted file mode 100644 index 3c77f54560f2..000000000000 --- a/include/uapi/linux/netfilter_decnet.h +++ /dev/null @@ -1,72 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef __LINUX_DECNET_NETFILTER_H -#define __LINUX_DECNET_NETFILTER_H - -/* DECnet-specific defines for netfilter. - * This file (C) Steve Whitehouse 1999 derived from the - * ipv4 netfilter header file which is - * (C)1998 Rusty Russell -- This code is GPL. - */ - -#include <linux/netfilter.h> - -/* only for userspace compatibility */ -#ifndef __KERNEL__ - -#include <limits.h> /* for INT_MIN, INT_MAX */ - -/* kernel define is in netfilter_defs.h */ -#define NF_DN_NUMHOOKS 7 -#endif /* ! __KERNEL__ */ - -/* DECnet Hooks */ -/* After promisc drops, checksum checks. */ -#define NF_DN_PRE_ROUTING 0 -/* If the packet is destined for this box. */ -#define NF_DN_LOCAL_IN 1 -/* If the packet is destined for another interface. */ -#define NF_DN_FORWARD 2 -/* Packets coming from a local process. */ -#define NF_DN_LOCAL_OUT 3 -/* Packets about to hit the wire. */ -#define NF_DN_POST_ROUTING 4 -/* Input Hello Packets */ -#define NF_DN_HELLO 5 -/* Input Routing Packets */ -#define NF_DN_ROUTE 6 - -enum nf_dn_hook_priorities { - NF_DN_PRI_FIRST = INT_MIN, - NF_DN_PRI_CONNTRACK = -200, - NF_DN_PRI_MANGLE = -150, - NF_DN_PRI_NAT_DST = -100, - NF_DN_PRI_FILTER = 0, - NF_DN_PRI_NAT_SRC = 100, - NF_DN_PRI_DNRTMSG = 200, - NF_DN_PRI_LAST = INT_MAX, -}; - -struct nf_dn_rtmsg { - int nfdn_ifindex; -}; - -#define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg))) - -#ifndef __KERNEL__ -/* backwards compatibility for userspace */ -#define DNRMG_L1_GROUP 0x01 -#define DNRMG_L2_GROUP 0x02 -#endif - -enum { - DNRNG_NLGRP_NONE, -#define DNRNG_NLGRP_NONE DNRNG_NLGRP_NONE - DNRNG_NLGRP_L1, -#define DNRNG_NLGRP_L1 DNRNG_NLGRP_L1 - DNRNG_NLGRP_L2, -#define DNRNG_NLGRP_L2 DNRNG_NLGRP_L2 - __DNRNG_NLGRP_MAX -}; -#define DNRNG_NLGRP_MAX (__DNRNG_NLGRP_MAX - 1) - -#endif /*__LINUX_DECNET_NETFILTER_H*/ diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h index 622c78c821aa..cf4e4836338f 100644 --- a/include/uapi/linux/netlink.h +++ b/include/uapi/linux/netlink.h @@ -20,7 +20,7 @@ #define NETLINK_CONNECTOR 11 #define NETLINK_NETFILTER 12 /* netfilter subsystem */ #define NETLINK_IP6_FW 13 -#define NETLINK_DNRTMSG 14 /* DECnet routing messages */ +#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */ #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ #define NETLINK_GENERIC 16 /* leave room for NETLINK_DM (DM Events) */ diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h index b485d8b0d5a7..5d830a95daf2 100644 --- a/include/uapi/linux/pci_regs.h +++ b/include/uapi/linux/pci_regs.h @@ -679,6 +679,8 @@ #define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */ #define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */ #define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */ +#define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */ +#define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */ #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index ceccd980ffcf..19c143a293be 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -273,6 +273,7 @@ enum { * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING * { u64 id; } && PERF_FORMAT_ID + * { u64 lost; } && PERF_FORMAT_LOST * } && !PERF_FORMAT_GROUP * * { u64 nr; @@ -280,6 +281,7 @@ enum { * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING * { u64 value; * { u64 id; } && PERF_FORMAT_ID + * { u64 lost; } && PERF_FORMAT_LOST * } cntr[nr]; * } && PERF_FORMAT_GROUP * }; @@ -289,8 +291,9 @@ enum perf_event_read_format { PERF_FORMAT_TOTAL_TIME_RUNNING = 1U << 1, PERF_FORMAT_ID = 1U << 2, PERF_FORMAT_GROUP = 1U << 3, + PERF_FORMAT_LOST = 1U << 4, - PERF_FORMAT_MAX = 1U << 4, /* non-ABI */ + PERF_FORMAT_MAX = 1U << 5, /* non-ABI */ }; #define PERF_ATTR_SIZE_VER0 64 /* sizeof first published struct */ diff --git a/include/uapi/linux/resource.h b/include/uapi/linux/resource.h index cc00fd079631..74ef57b38f9f 100644 --- a/include/uapi/linux/resource.h +++ b/include/uapi/linux/resource.h @@ -22,8 +22,8 @@ #define RUSAGE_THREAD 1 /* only the calling thread */ struct rusage { - struct timeval ru_utime; /* user time used */ - struct timeval ru_stime; /* system time used */ + struct __kernel_old_timeval ru_utime; /* user time used */ + struct __kernel_old_timeval ru_stime; /* system time used */ __kernel_long_t ru_maxrss; /* maximum resident set size */ __kernel_long_t ru_ixrss; /* integral shared memory size */ __kernel_long_t ru_idrss; /* integral unshared data size */ diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h index 7272f85d6d6a..3736f2fe1541 100644 --- a/include/uapi/linux/swab.h +++ b/include/uapi/linux/swab.h @@ -3,7 +3,7 @@ #define _UAPI_LINUX_SWAB_H #include <linux/types.h> -#include <linux/compiler.h> +#include <linux/stddef.h> #include <asm/bitsperlong.h> #include <asm/swab.h> diff --git a/include/uapi/linux/sync_file.h b/include/uapi/linux/sync_file.h index ee2dcfb3d660..d7f7c04a6e0c 100644 --- a/include/uapi/linux/sync_file.h +++ b/include/uapi/linux/sync_file.h @@ -52,7 +52,7 @@ struct sync_fence_info { * @name: name of fence * @status: status of fence. 1: signaled 0:active <0:error * @flags: sync_file_info flags - * @num_fences number of fences in the sync_file + * @num_fences: number of fences in the sync_file * @pad: padding for 64-bit alignment, should always be zero * @sync_fence_info: pointer to array of structs sync_fence_info with all * fences in the sync_file diff --git a/include/uapi/linux/uio/uio.h b/include/uapi/linux/uio/uio.h new file mode 100644 index 000000000000..db92d311c85f --- /dev/null +++ b/include/uapi/linux/uio/uio.h @@ -0,0 +1,65 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * The header for UIO driver + * + * Copyright (C) 2019 Xilinx, Inc. + * + * Author: Hyun Woo Kwon <hyun.kwon@xilinx.com> + */ + +#ifndef _UAPI_UIO_UIO_H_ +#define _UAPI_UIO_UIO_H_ + +#include <linux/ioctl.h> +#include <linux/types.h> + +/** + * enum uio_dmabuf_dir - list of dma directions for mapping management + * @UIO_DMABUF_DIR_BIDIR: Bidirectional DMA. To and from device + * @UIO_DMABUF_DIR_TO_DEV: DMA to device + * @UIO_DMABUF_DIR_FROM_DEV: DMA from device + * @UIO_DMABUF_DIR_NONE: Direction not specified + */ +enum uio_dmabuf_dir { + UIO_DMABUF_DIR_BIDIR = 1, + UIO_DMABUF_DIR_TO_DEV = 2, + UIO_DMABUF_DIR_FROM_DEV = 3, + UIO_DMABUF_DIR_NONE = 4, +}; + +/** + * struct uio_dmabuf_args - arguments from userspace to map / unmap dmabuf + * @dbuf_fd: The fd or dma buf + * @dma_addr: The dma address of dmabuf @dbuf_fd + * @size: The size of dmabuf @dbuf_fd + * @dir: direction of dma transfer of dmabuf @dbuf_fd + */ +struct uio_dmabuf_args { + __s32 dbuf_fd; + __u64 dma_addr; + __u64 size; + __u8 dir; +}; + +#define UIO_IOC_BASE 'U' + +/** + * DOC: UIO_IOC_MAP_DMABUF - Map the dma buf to userspace uio application + * + * This takes uio_dmabuf_args, and maps the given dmabuf @dbuf_fd and returns + * information to userspace. + * FIXME: This is experimental and may change at any time. Don't consider this + * as stable ABI. + */ +#define UIO_IOC_MAP_DMABUF _IOWR(UIO_IOC_BASE, 0x1, struct uio_dmabuf_args) + +/** + * DOC: UIO_IOC_UNMAP_DMABUF - Unmap the dma buf + * + * This takes uio_dmabuf_args, and unmaps the previous mapped dmabuf @dbuf_fd. + * FIXME: This is experimental and may change at any time. Don't consider this + * as stable ABI. + */ +#define UIO_IOC_UNMAP_DMABUF _IOWR(UIO_IOC_BASE, 0x2, struct uio_dmabuf_args) + +#endif diff --git a/include/uapi/linux/usb/video.h b/include/uapi/linux/usb/video.h index bfdae12cdacf..c58854fb7d94 100644 --- a/include/uapi/linux/usb/video.h +++ b/include/uapi/linux/usb/video.h @@ -179,6 +179,36 @@ #define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3) #define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4) +/* 3.9.2.6 Color Matching Descriptor Values */ +enum uvc_color_primaries_values { + UVC_COLOR_PRIMARIES_UNSPECIFIED, + UVC_COLOR_PRIMARIES_BT_709_SRGB, + UVC_COLOR_PRIMARIES_BT_470_2_M, + UVC_COLOR_PRIMARIES_BT_470_2_B_G, + UVC_COLOR_PRIMARIES_SMPTE_170M, + UVC_COLOR_PRIMARIES_SMPTE_240M, +}; + +enum uvc_transfer_characteristics_values { + UVC_TRANSFER_CHARACTERISTICS_UNSPECIFIED, + UVC_TRANSFER_CHARACTERISTICS_BT_709, + UVC_TRANSFER_CHARACTERISTICS_BT_470_2_M, + UVC_TRANSFER_CHARACTERISTICS_BT_470_2_B_G, + UVC_TRANSFER_CHARACTERISTICS_SMPTE_170M, + UVC_TRANSFER_CHARACTERISTICS_SMPTE_240M, + UVC_TRANSFER_CHARACTERISTICS_LINEAR, + UVC_TRANSFER_CHARACTERISTICS_SRGB, +}; + +enum uvc_matrix_coefficients { + UVC_MATRIX_COEFFICIENTS_UNSPECIFIED, + UVC_MATRIX_COEFFICIENTS_BT_709, + UVC_MATRIX_COEFFICIENTS_FCC, + UVC_MATRIX_COEFFICIENTS_BT_470_2_B_G, + UVC_MATRIX_COEFFICIENTS_SMPTE_170M, + UVC_MATRIX_COEFFICIENTS_SMPTE_240M, +}; + /* ------------------------------------------------------------------------ * UVC structures */ diff --git a/include/uapi/linux/uvcvideo.h b/include/uapi/linux/uvcvideo.h index f80f05b3c423..214092366193 100644 --- a/include/uapi/linux/uvcvideo.h +++ b/include/uapi/linux/uvcvideo.h @@ -86,7 +86,7 @@ struct uvc_xu_control_query { * struct. The first two fields are added by the driver, they can be used for * clock synchronisation. The rest is an exact copy of a UVC payload header. * Only complete objects with complete buffers are included. Therefore it's - * always sizeof(meta->ts) + sizeof(meta->sof) + meta->length bytes large. + * always sizeof(meta->ns) + sizeof(meta->sof) + meta->length bytes large. */ struct uvc_meta_buf { __u64 ns; diff --git a/include/uapi/linux/v4l2-mediabus.h b/include/uapi/linux/v4l2-mediabus.h index 123a231001a8..325c985ed06f 100644 --- a/include/uapi/linux/v4l2-mediabus.h +++ b/include/uapi/linux/v4l2-mediabus.h @@ -68,6 +68,8 @@ enum v4l2_mbus_pixelcode { V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE), V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE), V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32), + V4L2_MBUS_FROM_MEDIA_BUS_FMT(RBG888_1X24), + V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X32_PADHI), V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8), V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8), @@ -104,6 +106,7 @@ enum v4l2_mbus_pixelcode { V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24), V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24), V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24), + V4L2_MBUS_FROM_MEDIA_BUS_FMT(VUY8_1X24), V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8), V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8), diff --git a/include/uapi/linux/v4l2-subdev.h b/include/uapi/linux/v4l2-subdev.h index 03970ce30741..b76f9b4afe05 100644 --- a/include/uapi/linux/v4l2-subdev.h +++ b/include/uapi/linux/v4l2-subdev.h @@ -155,6 +155,27 @@ struct v4l2_subdev_selection { __u32 reserved[8]; }; + +/** + * struct v4l2_subdev_route - A signal route inside a subdev + * @sink: the sink pad + * @source: the source pad + */ +struct v4l2_subdev_route { + __u32 sink; + __u32 source; +}; + +/** + * struct v4l2_subdev_routing - Routing information + * @num_routes: the total number of routes in the routes array + * @routes: the routes array + */ +struct v4l2_subdev_routing { + __u32 num_routes; + struct v4l2_subdev_route *routes; +}; + /* Backwards compatibility define --- to be removed */ #define v4l2_subdev_edid v4l2_edid @@ -181,5 +202,7 @@ struct v4l2_subdev_selection { #define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) #define VIDIOC_SUBDEV_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings) #define VIDIOC_SUBDEV_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) +#define VIDIOC_SUBDEV_G_ROUTING _IOWR('V', 38, struct v4l2_subdev_routing) +#define VIDIOC_SUBDEV_S_ROUTING _IOWR('V', 39, struct v4l2_subdev_routing) #endif diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 3210b3c82a4a..581f2d39505a 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -545,20 +545,25 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ #define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4') /* 32 BGRA-8-8-8-8 */ #define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') /* 32 BGRX-8-8-8-8 */ -#define V4L2_PIX_FMT_BGRA32 v4l2_fourcc('R', 'A', '2', '4') /* 32 ABGR-8-8-8-8 */ -#define V4L2_PIX_FMT_BGRX32 v4l2_fourcc('R', 'X', '2', '4') /* 32 XBGR-8-8-8-8 */ #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ #define V4L2_PIX_FMT_RGBA32 v4l2_fourcc('A', 'B', '2', '4') /* 32 RGBA-8-8-8-8 */ #define V4L2_PIX_FMT_RGBX32 v4l2_fourcc('X', 'B', '2', '4') /* 32 RGBX-8-8-8-8 */ #define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') /* 32 ARGB-8-8-8-8 */ +#define V4L2_PIX_FMT_BGRA32 v4l2_fourcc('A', 'B', 'G', 'R') /* 32 ABGR-8-8-8-8 */ #define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') /* 32 XRGB-8-8-8-8 */ +#define V4L2_PIX_FMT_BGRX32 v4l2_fourcc('X', 'B', 'G', 'R') /* 32 XBGR-8-8-8-8 */ +#define V4L2_PIX_FMT_XBGR30 v4l2_fourcc('R', 'X', '3', '0') /* 32 XBGR-2-10-10-10 */ +#define V4L2_PIX_FMT_XBGR40 v4l2_fourcc('R', 'X', '4', '0') /* 40 XBGR-4-12-12-12 */ +#define V4L2_PIX_FMT_BGR48 v4l2_fourcc('R', 'G', '4', '8') /* 32 BGR-16-16-16 */ /* Grey formats */ #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ #define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */ #define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ +#define V4L2_PIX_FMT_XY10 v4l2_fourcc('X', 'Y', '1', '0') /* 10 Greyscale 2-10-10-10 */ #define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ +#define V4L2_PIX_FMT_XY12 v4l2_fourcc('X', 'Y', '1', '2') /* 12 Greyscale 4-12-12-12 */ #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */ @@ -580,6 +585,9 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ +#define V4L2_PIX_FMT_XVUY32 v4l2_fourcc('X', 'V', '3', '2') /* 32 XVUY 8:8:8:8 */ +#define V4L2_PIX_FMT_AVUY32 v4l2_fourcc('A', 'V', '3', '2') /* 32 AVUY 8:8:8:8 */ +#define V4L2_PIX_FMT_VUY24 v4l2_fourcc('V', 'U', '2', '4') /* 24 VUY 8:8:8 */ #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */ #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ @@ -590,6 +598,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ #define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ #define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ +#define V4L2_PIX_FMT_XVUY10 v4l2_fourcc('X', '4', '1', '0') /* 32 XVUY 2-10-10-10 */ /* 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 */ @@ -598,6 +607,14 @@ 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_XV20 v4l2_fourcc('X', 'V', '2', '0') /* 32 XY/UV 4:2:2 10-bit */ +#define V4L2_PIX_FMT_XV15 v4l2_fourcc('X', 'V', '1', '5') /* 32 XY/UV 4:2:0 10-bit */ +#define V4L2_PIX_FMT_X012 v4l2_fourcc('X', '0', '1', '2') /* 40 XY/UV 4:2:0 12-bit 4-12-12-12 */ +#define V4L2_PIX_FMT_X212 v4l2_fourcc('X', '2', '1', '2') /* 40 XY/UV 4:2:2 12-bit 4-12-12-12 */ +#define V4L2_PIX_FMT_X412 v4l2_fourcc('X', '4', '1', '2') /* 40 XY/UV 4:4:4 12-bit 4-12-12-12 */ +#define V4L2_PIX_FMT_X016 v4l2_fourcc('X', '0', '1', '6') /* 32 XY/UV 4:2:0 16-bit */ +#define V4L2_PIX_FMT_X216 v4l2_fourcc('X', '2', '1', '6') /* 32 XY/UV 4:2:2 16-bit */ +#define V4L2_PIX_FMT_X416 v4l2_fourcc('X', '4', '1', '6') /* 32 XY/UV 4:4:4 16-bit */ /* 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 */ @@ -605,6 +622,14 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */ #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */ #define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ +#define V4L2_PIX_FMT_XV20M v4l2_fourcc('X', 'M', '2', '0') /* 32 XY/UV 4:2:2 10-bit */ +#define V4L2_PIX_FMT_XV15M v4l2_fourcc('X', 'M', '1', '5') /* 32 XY/UV 4:2:0 10-bit */ +#define V4L2_PIX_FMT_X012M v4l2_fourcc('M', '0', '1', '2') /* 40 XY/UV 4:2:0 12-bit 4-12-12-12 */ +#define V4L2_PIX_FMT_X212M v4l2_fourcc('M', '2', '1', '2') /* 40 XY/UV 4:2:2 12-bit 4-12-12-12 */ +#define V4L2_PIX_FMT_X412M v4l2_fourcc('M', '4', '1', '2') /* 40 XY/UV 4:4:4 12-bit 4-12-12-12 */ +#define V4L2_PIX_FMT_X016M v4l2_fourcc('M', '0', '1', '6') /* 32 XY/UV 4:2:0 16-bit */ +#define V4L2_PIX_FMT_X216M v4l2_fourcc('M', '2', '1', '6') /* 32 XY/UV 4:2:2 16-bit */ +#define V4L2_PIX_FMT_X416M v4l2_fourcc('M', '4', '1', '6') /* 32 XY/UV 4:4:4 16-bit */ #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */ /* three planes - Y Cb, Cr */ @@ -1496,7 +1521,8 @@ struct v4l2_bt_timings { ((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ ((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \ - (bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) + ((bt)->interlaced ? \ + ((bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) : 0)) #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ ((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) @@ -1587,7 +1613,7 @@ struct v4l2_input { __u8 name[32]; /* Label */ __u32 type; /* Type of input */ __u32 audioset; /* Associated audios (bitfield) */ - __u32 tuner; /* enum v4l2_tuner_type */ + __u32 tuner; /* Tuner index */ v4l2_std_id std; __u32 status; __u32 capabilities; diff --git a/include/uapi/linux/virtio_crypto.h b/include/uapi/linux/virtio_crypto.h index 50cdc8aebfcf..05330284eb59 100644 --- a/include/uapi/linux/virtio_crypto.h +++ b/include/uapi/linux/virtio_crypto.h @@ -408,6 +408,7 @@ struct virtio_crypto_op_data_req { #define VIRTIO_CRYPTO_BADMSG 2 #define VIRTIO_CRYPTO_NOTSUPP 3 #define VIRTIO_CRYPTO_INVSESS 4 /* Invalid session id */ +#define VIRTIO_CRYPTO_NOSPC 5 /* no free session ID */ /* The accelerator hardware is ready */ #define VIRTIO_CRYPTO_S_HW_READY (1 << 0) diff --git a/include/uapi/linux/watch_queue.h b/include/uapi/linux/watch_queue.h new file mode 100644 index 000000000000..5f3d21e8a34b --- /dev/null +++ b/include/uapi/linux/watch_queue.h @@ -0,0 +1,55 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_LINUX_WATCH_QUEUE_H +#define _UAPI_LINUX_WATCH_QUEUE_H + +#include <linux/types.h> + +enum watch_notification_type { + WATCH_TYPE_META = 0, /* Special record */ + WATCH_TYPE__NR = 1 +}; + +enum watch_meta_notification_subtype { + WATCH_META_REMOVAL_NOTIFICATION = 0, /* Watched object was removed */ + WATCH_META_LOSS_NOTIFICATION = 1, /* Data loss occurred */ +}; + +/* + * Notification record header. This is aligned to 64-bits so that subclasses + * can contain __u64 fields. + */ +struct watch_notification { + __u32 type:24; /* enum watch_notification_type */ + __u32 subtype:8; /* Type-specific subtype (filterable) */ + __u32 info; +#define WATCH_INFO_LENGTH 0x0000007f /* Length of record */ +#define WATCH_INFO_LENGTH__SHIFT 0 +#define WATCH_INFO_ID 0x0000ff00 /* ID of watchpoint */ +#define WATCH_INFO_ID__SHIFT 8 +#define WATCH_INFO_TYPE_INFO 0xffff0000 /* Type-specific info */ +#define WATCH_INFO_TYPE_INFO__SHIFT 16 +#define WATCH_INFO_FLAG_0 0x00010000 /* Type-specific info, flag bit 0 */ +#define WATCH_INFO_FLAG_1 0x00020000 /* ... */ +#define WATCH_INFO_FLAG_2 0x00040000 +#define WATCH_INFO_FLAG_3 0x00080000 +#define WATCH_INFO_FLAG_4 0x00100000 +#define WATCH_INFO_FLAG_5 0x00200000 +#define WATCH_INFO_FLAG_6 0x00400000 +#define WATCH_INFO_FLAG_7 0x00800000 +}; + + +/* + * Extended watch removal notification. This is used optionally if the type + * wants to indicate an identifier for the object being watched, if there is + * such. This can be distinguished by the length. + * + * type -> WATCH_TYPE_META + * subtype -> WATCH_META_REMOVAL_NOTIFICATION + */ +struct watch_notification_removal { + struct watch_notification watch; + __u64 id; /* Type-dependent identifier */ +}; + +#endif /* _UAPI_LINUX_WATCH_QUEUE_H */ diff --git a/include/uapi/linux/xilinx-csi2rxss.h b/include/uapi/linux/xilinx-csi2rxss.h new file mode 100644 index 000000000000..df64ddc5eed4 --- /dev/null +++ b/include/uapi/linux/xilinx-csi2rxss.h @@ -0,0 +1,18 @@ +#ifndef __UAPI_XILINX_CSI2RXSS_H__ +#define __UAPI_XILINX_CSI2RXSS_H__ + +#include <linux/videodev2.h> + +/* + * Events + * + * V4L2_EVENT_XLNXCSIRX_SPKT: Short packet received + * V4L2_EVENT_XLNXCSIRX_SPKT_OVF: Short packet FIFO overflow + * V4L2_EVENT_XLNXCSIRX_SLBF: Stream line buffer full + */ +#define V4L2_EVENT_XLNXCSIRX_CLASS (V4L2_EVENT_PRIVATE_START | 0x100) +#define V4L2_EVENT_XLNXCSIRX_SPKT (V4L2_EVENT_XLNXCSIRX_CLASS | 0x1) +#define V4L2_EVENT_XLNXCSIRX_SPKT_OVF (V4L2_EVENT_XLNXCSIRX_CLASS | 0x2) +#define V4L2_EVENT_XLNXCSIRX_SLBF (V4L2_EVENT_XLNXCSIRX_CLASS | 0x3) + +#endif /* __UAPI_XILINX_CSI2RXSS_H__ */ diff --git a/include/uapi/linux/xilinx-hls.h b/include/uapi/linux/xilinx-hls.h new file mode 100644 index 000000000000..a7f6447927e0 --- /dev/null +++ b/include/uapi/linux/xilinx-hls.h @@ -0,0 +1,21 @@ +#ifndef __UAPI_XILINX_HLS_H__ +#define __UAPI_XILINX_HLS_H__ + +#include <linux/ioctl.h> +#include <linux/types.h> +#include <linux/videodev2.h> + +struct xilinx_axi_hls_register { + __u32 offset; + __u32 value; +}; + +struct xilinx_axi_hls_registers { + __u32 num_regs; + struct xilinx_axi_hls_register __user *regs; +}; + +#define XILINX_AXI_HLS_READ _IOWR('V', BASE_VIDIOC_PRIVATE+0, struct xilinx_axi_hls_registers) +#define XILINX_AXI_HLS_WRITE _IOW('V', BASE_VIDIOC_PRIVATE+1, struct xilinx_axi_hls_registers) + +#endif /* __UAPI_XILINX_HLS_H__ */ diff --git a/include/uapi/linux/xilinx-sdirxss.h b/include/uapi/linux/xilinx-sdirxss.h new file mode 100644 index 000000000000..1731f8b71fe8 --- /dev/null +++ b/include/uapi/linux/xilinx-sdirxss.h @@ -0,0 +1,64 @@ +#ifndef __UAPI_XILINX_SDIRXSS_H__ +#define __UAPI_XILINX_SDIRXSS_H__ + +#include <linux/types.h> +#include <linux/videodev2.h> + +/* + * Events + * + * V4L2_EVENT_XLNXSDIRX_UNDERFLOW: Video in to AXI4 Stream core underflowed + * V4L2_EVENT_XLNXSDIRX_OVERFLOW: Video in to AXI4 Stream core overflowed + */ +#define V4L2_EVENT_XLNXSDIRX_CLASS (V4L2_EVENT_PRIVATE_START | 0x200) +#define V4L2_EVENT_XLNXSDIRX_UNDERFLOW (V4L2_EVENT_XLNXSDIRX_CLASS | 0x1) +#define V4L2_EVENT_XLNXSDIRX_OVERFLOW (V4L2_EVENT_XLNXSDIRX_CLASS | 0x2) + +/* + * This enum is used to prepare the bitmask + * of modes to be detected + */ +enum { + XSDIRX_MODE_SD_OFFSET = 0, + XSDIRX_MODE_HD_OFFSET, + XSDIRX_MODE_3G_OFFSET, + XSDIRX_MODE_6G_OFFSET, + XSDIRX_MODE_12GI_OFFSET, + XSDIRX_MODE_12GF_OFFSET, + XSDIRX_MODE_NUM_SUPPORTED, +}; + +#define XSDIRX_DETECT_ALL_MODES (BIT(XSDIRX_MODE_SD_OFFSET) | \ + BIT(XSDIRX_MODE_HD_OFFSET) | \ + BIT(XSDIRX_MODE_3G_OFFSET) | \ + BIT(XSDIRX_MODE_6G_OFFSET) | \ + BIT(XSDIRX_MODE_12GI_OFFSET) | \ + BIT(XSDIRX_MODE_12GF_OFFSET)) + +/* + * EDH Error Types + * ANC - Ancillary Data Packet Errors + * FF - Full Field Errors + * AP - Active Portion Errors + */ + +#define XSDIRX_EDH_ERRCNT_ANC_EDH_ERR BIT(0) +#define XSDIRX_EDH_ERRCNT_ANC_EDA_ERR BIT(1) +#define XSDIRX_EDH_ERRCNT_ANC_IDH_ERR BIT(2) +#define XSDIRX_EDH_ERRCNT_ANC_IDA_ERR BIT(3) +#define XSDIRX_EDH_ERRCNT_ANC_UES_ERR BIT(4) +#define XSDIRX_EDH_ERRCNT_FF_EDH_ERR BIT(5) +#define XSDIRX_EDH_ERRCNT_FF_EDA_ERR BIT(6) +#define XSDIRX_EDH_ERRCNT_FF_IDH_ERR BIT(7) +#define XSDIRX_EDH_ERRCNT_FF_IDA_ERR BIT(8) +#define XSDIRX_EDH_ERRCNT_FF_UES_ERR BIT(9) +#define XSDIRX_EDH_ERRCNT_AP_EDH_ERR BIT(10) +#define XSDIRX_EDH_ERRCNT_AP_EDA_ERR BIT(11) +#define XSDIRX_EDH_ERRCNT_AP_IDH_ERR BIT(12) +#define XSDIRX_EDH_ERRCNT_AP_IDA_ERR BIT(13) +#define XSDIRX_EDH_ERRCNT_AP_UES_ERR BIT(14) +#define XSDIRX_EDH_ERRCNT_PKT_CHKSUM_ERR BIT(15) + +#define XSDIRX_EDH_ALLERR_MASK 0xFFFF + +#endif /* __UAPI_XILINX_SDIRXSS_H__ */ diff --git a/include/uapi/linux/xilinx-v4l2-controls.h b/include/uapi/linux/xilinx-v4l2-controls.h index b6441fe705c5..23d1574c6d55 100644 --- a/include/uapi/linux/xilinx-v4l2-controls.h +++ b/include/uapi/linux/xilinx-v4l2-controls.h @@ -70,5 +70,166 @@ #define V4L2_CID_XILINX_TPG_STUCK_PIXEL_THRESH (V4L2_CID_XILINX_TPG + 16) /* Noise level */ #define V4L2_CID_XILINX_TPG_NOISE_GAIN (V4L2_CID_XILINX_TPG + 17) +/* Foreground pattern (HLS)*/ +#define V4L2_CID_XILINX_TPG_HLS_FG_PATTERN (V4L2_CID_XILINX_TPG + 18) +/* + * Xilinx CRESAMPLE Video IP + */ + +#define V4L2_CID_XILINX_CRESAMPLE (V4L2_CID_USER_BASE + 0xc020) + +/* The field parity for interlaced video */ +#define V4L2_CID_XILINX_CRESAMPLE_FIELD_PARITY (V4L2_CID_XILINX_CRESAMPLE + 1) +/* Specify if the first line of video contains the Chroma information */ +#define V4L2_CID_XILINX_CRESAMPLE_CHROMA_PARITY (V4L2_CID_XILINX_CRESAMPLE + 2) + +/* + * Xilinx RGB2YUV Video IPs + */ + +#define V4L2_CID_XILINX_RGB2YUV (V4L2_CID_USER_BASE + 0xc040) + +/* Maximum Luma(Y) value */ +#define V4L2_CID_XILINX_RGB2YUV_YMAX (V4L2_CID_XILINX_RGB2YUV + 1) +/* Minimum Luma(Y) value */ +#define V4L2_CID_XILINX_RGB2YUV_YMIN (V4L2_CID_XILINX_RGB2YUV + 2) +/* Maximum Cb Chroma value */ +#define V4L2_CID_XILINX_RGB2YUV_CBMAX (V4L2_CID_XILINX_RGB2YUV + 3) +/* Minimum Cb Chroma value */ +#define V4L2_CID_XILINX_RGB2YUV_CBMIN (V4L2_CID_XILINX_RGB2YUV + 4) +/* Maximum Cr Chroma value */ +#define V4L2_CID_XILINX_RGB2YUV_CRMAX (V4L2_CID_XILINX_RGB2YUV + 5) +/* Minimum Cr Chroma value */ +#define V4L2_CID_XILINX_RGB2YUV_CRMIN (V4L2_CID_XILINX_RGB2YUV + 6) +/* The offset compensation value for Luma(Y) */ +#define V4L2_CID_XILINX_RGB2YUV_YOFFSET (V4L2_CID_XILINX_RGB2YUV + 7) +/* The offset compensation value for Cb Chroma */ +#define V4L2_CID_XILINX_RGB2YUV_CBOFFSET (V4L2_CID_XILINX_RGB2YUV + 8) +/* The offset compensation value for Cr Chroma */ +#define V4L2_CID_XILINX_RGB2YUV_CROFFSET (V4L2_CID_XILINX_RGB2YUV + 9) + +/* Y = CA * R + (1 - CA - CB) * G + CB * B */ + +/* CA coefficient */ +#define V4L2_CID_XILINX_RGB2YUV_ACOEF (V4L2_CID_XILINX_RGB2YUV + 10) +/* CB coefficient */ +#define V4L2_CID_XILINX_RGB2YUV_BCOEF (V4L2_CID_XILINX_RGB2YUV + 11) +/* CC coefficient */ +#define V4L2_CID_XILINX_RGB2YUV_CCOEF (V4L2_CID_XILINX_RGB2YUV + 12) +/* CD coefficient */ +#define V4L2_CID_XILINX_RGB2YUV_DCOEF (V4L2_CID_XILINX_RGB2YUV + 13) + +/* + * Xilinx HLS Video IP + */ + +#define V4L2_CID_XILINX_HLS (V4L2_CID_USER_BASE + 0xc060) + +/* The IP model */ +#define V4L2_CID_XILINX_HLS_MODEL (V4L2_CID_XILINX_HLS + 1) + +/* + * Xilinx MIPI CSI2 Rx Subsystem + */ + +/* Base ID */ +#define V4L2_CID_XILINX_MIPICSISS (V4L2_CID_USER_BASE + 0xc080) + +/* Active Lanes */ +#define V4L2_CID_XILINX_MIPICSISS_ACT_LANES (V4L2_CID_XILINX_MIPICSISS + 1) +/* Frames received since streaming is set */ +#define V4L2_CID_XILINX_MIPICSISS_FRAME_COUNTER (V4L2_CID_XILINX_MIPICSISS + 2) +/* Reset all event counters */ +#define V4L2_CID_XILINX_MIPICSISS_RESET_COUNTERS (V4L2_CID_XILINX_MIPICSISS + 3) + +/* + * Xilinx Gamma Correction IP + */ + +/* Base ID */ +#define V4L2_CID_XILINX_GAMMA_CORR (V4L2_CID_USER_BASE + 0xc0c0) +/* Adjust Red Gamma */ +#define V4L2_CID_XILINX_GAMMA_CORR_RED_GAMMA (V4L2_CID_XILINX_GAMMA_CORR + 1) +/* Adjust Blue Gamma */ +#define V4L2_CID_XILINX_GAMMA_CORR_BLUE_GAMMA (V4L2_CID_XILINX_GAMMA_CORR + 2) +/* Adjust Green Gamma */ +#define V4L2_CID_XILINX_GAMMA_CORR_GREEN_GAMMA (V4L2_CID_XILINX_GAMMA_CORR + 3) + +/* + * Xilinx Color Space Converter (CSC) VPSS + */ + +/* Base ID */ +#define V4L2_CID_XILINX_CSC (V4L2_CID_USER_BASE + 0xc0a0) +/* Adjust Brightness */ +#define V4L2_CID_XILINX_CSC_BRIGHTNESS (V4L2_CID_XILINX_CSC + 1) +/* Adjust Contrast */ +#define V4L2_CID_XILINX_CSC_CONTRAST (V4L2_CID_XILINX_CSC + 2) +/* Adjust Red Gain */ +#define V4L2_CID_XILINX_CSC_RED_GAIN (V4L2_CID_XILINX_CSC + 3) +/* Adjust Green Gain */ +#define V4L2_CID_XILINX_CSC_GREEN_GAIN (V4L2_CID_XILINX_CSC + 4) +/* Adjust Blue Gain */ +#define V4L2_CID_XILINX_CSC_BLUE_GAIN (V4L2_CID_XILINX_CSC + 5) + +/* + * Xilinx SDI Rx Subsystem + */ + +/* Base ID */ +#define V4L2_CID_XILINX_SDIRX (V4L2_CID_USER_BASE + 0xc100) + +/* Framer Control */ +#define V4L2_CID_XILINX_SDIRX_FRAMER (V4L2_CID_XILINX_SDIRX + 1) +/* Video Lock Window Control */ +#define V4L2_CID_XILINX_SDIRX_VIDLOCK_WINDOW (V4L2_CID_XILINX_SDIRX + 2) +/* EDH Error Mask Control */ +#define V4L2_CID_XILINX_SDIRX_EDH_ERRCNT_ENABLE (V4L2_CID_XILINX_SDIRX + 3) +/* Mode search Control */ +#define V4L2_CID_XILINX_SDIRX_SEARCH_MODES (V4L2_CID_XILINX_SDIRX + 4) +/* Get Detected Mode control */ +#define V4L2_CID_XILINX_SDIRX_MODE_DETECT (V4L2_CID_XILINX_SDIRX + 5) +/* Get CRC error status */ +#define V4L2_CID_XILINX_SDIRX_CRC (V4L2_CID_XILINX_SDIRX + 6) +/* Get EDH error count control */ +#define V4L2_CID_XILINX_SDIRX_EDH_ERRCNT (V4L2_CID_XILINX_SDIRX + 7) +/* Get EDH status control */ +#define V4L2_CID_XILINX_SDIRX_EDH_STATUS (V4L2_CID_XILINX_SDIRX + 8) +/* Get Transport Interlaced status */ +#define V4L2_CID_XILINX_SDIRX_TS_IS_INTERLACED (V4L2_CID_XILINX_SDIRX + 9) +/* Get Active Streams count */ +#define V4L2_CID_XILINX_SDIRX_ACTIVE_STREAMS (V4L2_CID_XILINX_SDIRX + 10) +/* Is Mode 3GB */ +#define V4L2_CID_XILINX_SDIRX_IS_3GB (V4L2_CID_XILINX_SDIRX + 11) + +/* + * Xilinx VIP + */ + +/* Base ID */ +#define V4L2_CID_XILINX_VIP (V4L2_CID_USER_BASE + 0xc120) + +/* Low latency mode */ +#define V4L2_CID_XILINX_LOW_LATENCY (V4L2_CID_XILINX_VIP + 1) + +/* Control values to enable/disable low latency capture mode */ +#define XVIP_LOW_LATENCY_ENABLE BIT(1) +#define XVIP_LOW_LATENCY_DISABLE BIT(2) + +/* Control value to start DMA */ +#define XVIP_START_DMA BIT(3) + +/* + * Xilinx SCD + */ + +/* Base ID */ +#define V4L2_CID_XILINX_SCD (V4L2_CID_USER_BASE + 0xc140) + +/* + * SCD Threshold + * User can pass percentage as an integer to tune threshold value + */ +#define V4L2_CID_XILINX_SCD_THRESHOLD (V4L2_CID_XILINX_SCD + 1) #endif /* __UAPI_XILINX_V4L2_CONTROLS_H__ */ diff --git a/include/uapi/linux/xilinx-v4l2-events.h b/include/uapi/linux/xilinx-v4l2-events.h new file mode 100644 index 000000000000..e31e998eba67 --- /dev/null +++ b/include/uapi/linux/xilinx-v4l2-events.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Xilinx V4L2 SCD Driver + * + * Copyright (C) 2017-2018 Xilinx, Inc. + * + * Contacts: Hyun Kwon <hyun.kwon@xilinx.com> + * + */ + +#ifndef __UAPI_XILINX_V4L2_EVENTS_H__ +#define __UAPI_XILINX_V4L2_EVENTS_H__ + +#include <linux/videodev2.h> + +/* + * Events + * + * V4L2_EVENT_XLNXSCD: Scene Change Detection + */ +#define V4L2_EVENT_XLNXSCD_CLASS (V4L2_EVENT_PRIVATE_START | 0x300) +#define V4L2_EVENT_XLNXSCD (V4L2_EVENT_XLNXSCD_CLASS | 0x1) + +#endif /* __UAPI_XILINX_V4L2_EVENTS_H__ */ diff --git a/include/uapi/linux/xlnx_ctrl.h b/include/uapi/linux/xlnx_ctrl.h new file mode 100644 index 000000000000..35ff1fdbf65b --- /dev/null +++ b/include/uapi/linux/xlnx_ctrl.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Xilinx Controls Header + * + * Copyright (C) 2019 Xilinx, Inc. + * + * Contacts: Saurabh Sengar <saurabh.singh@xilinx.com> + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __UAPI_XLNX_CTRL_H__ +#define __UAPI_XLNX_CTRL_H__ + +#define XSET_FB_CAPTURE 16 +#define XSET_FB_CONFIGURE 17 +#define XSET_FB_ENABLE 18 +#define XSET_FB_DISABLE 19 +#define XSET_FB_RELEASE 20 +#define XSET_FB_ENABLE_SNGL 21 +#define XSET_FB_POLL 22 +#define XVPSS_SET_CONFIGURE 16 +#define XVPSS_SET_ENABLE 17 +#define XVPSS_SET_DISABLE 18 + +#endif /* __UAPI_XLNX_CTRL_H__ */ + diff --git a/include/uapi/linux/xlnx_mpg2tsmux_interface.h b/include/uapi/linux/xlnx_mpg2tsmux_interface.h new file mode 100644 index 000000000000..356a627a6899 --- /dev/null +++ b/include/uapi/linux/xlnx_mpg2tsmux_interface.h @@ -0,0 +1,251 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Xilinx mpeg2 transport stream muxer ioctl calls + * + * Copyright (C) 2019 Xilinx, Inc. + * + * Author: Venkateshwar Rao G <venkateshwar.rao.gannava@xilinx.com> + */ + +#ifndef __XLNX_MPG2TSMUX_INTERFACE_H__ +#define __XLNX_MPG2TSMUX_INTERFACE_H__ + +#include <linux/ioctl.h> + +/** + * enum ts_mux_command - command for stream context + * @CREATE_TS_MISC: create misc + * @CREATE_TS_VIDEO_KEYFRAME: create video key frame + * @CREATE_TS_VIDEO_NON_KEYFRAME: create non key frame + * @CREATE_TS_AUDIO: create audio + * @WRITE_PAT: write pat + * @WRITE_PMT: write pmt + * @WRITE_SI: write si + * @INVALID: invalid + */ +enum ts_mux_command { + CREATE_TS_MISC = 0, + CREATE_TS_VIDEO_KEYFRAME, + CREATE_TS_VIDEO_NON_KEYFRAME, + CREATE_TS_AUDIO, + WRITE_PAT, + WRITE_PMT, + WRITE_SI, + INVALID +}; + +/** + * struct stream_context_in - struct to enqueue a stream context descriptor + * @command: stream context type + * @stream_id: stream identification number + * @extended_stream_id: extended stream id + * @is_pcr_stream: flag for pcr stream + * @is_valid_pts: flag for valid pts + * @is_valid_dts: flag for valid dts + * @is_dmabuf: flag to set if external src buffer is DMA allocated + * @pid: packet id number + * @size_data_in: size in bytes of input buffer + * @pts: presentation time stamp + * @dts: display time stamp + * @srcbuf_id: source buffer id after mmap + * @insert_pcr: flag for inserting pcr in stream context + * @pcr_extension: pcr extension number + * @pcr_base: pcr base number + */ +struct stream_context_in { + enum ts_mux_command command; + u8 stream_id; + u8 extended_stream_id; + u8 is_pcr_stream; + u8 is_valid_pts; + u8 is_valid_dts; + u8 is_dmabuf; + u16 pid; + u64 size_data_in; + u64 pts; + u64 dts; + u32 srcbuf_id; + u8 insert_pcr; + u16 pcr_extension; + u64 pcr_base; +}; + +/** + * struct mux_context_in - struct to enqueue a mux context descriptor + * @is_dmabuf: flag to set if external src buffer is DMA allocated + * @dstbuf_id: destination buffer id after mmap + * @dmabuf_size: size in bytes of output buffer + */ +struct muxer_context_in { + u8 is_dmabuf; + u32 dstbuf_id; + u32 dmabuf_size; +}; + +/** + * enum xlnx_tsmux_status - ip status + * @MPG2MUX_BUSY: device busy + * @MPG2MUX_READY: device ready + * @MPG2MUX_ERROR: error state + */ +enum xlnx_tsmux_status { + MPG2MUX_BUSY = 0, + MPG2MUX_READY, + MPG2MUX_ERROR +}; + +/** + * struct strc_bufs_info - struct to specify bufs requirement + * @num_buf: number of buffers + * @buf_size: size of each buffer + */ +struct strc_bufs_info { + u32 num_buf; + u32 buf_size; +}; + +/** + * struct strc_out_buf - struct to get output buffer info + * @buf_id: buf id into which output is written + * @buf_write: output bytes written in buf + */ +struct out_buffer { + u32 buf_id; + u32 buf_write; +}; + +/** + * enum strmtbl_cnxt - streamid table operation + * @NO_UPDATE: no table update + * @ADD_TO_TBL: add the entry to table + * @DEL_FR_TBL: delete the entry from table + */ +enum strmtbl_cnxt { + NO_UPDATE = 0, + ADD_TO_TBL, + DEL_FR_TBL, +}; + +/** + * struct strm_tbl_info - struct to enqueue/dequeue streamid in table + * @strmtbl_ctxt: enqueue/dequeue stream id + * @pid: stream id + */ +struct strc_strminfo { + enum strmtbl_cnxt strmtbl_ctxt; + u16 pid; +}; + +/** + * enum xlnx_tsmux_dma_dir - dma direction + * @DMA_TO_MPG2MUX: memory to device + * @DMA_FROM_MPG2MUX: device to memory + */ +enum xlnx_tsmux_dma_dir { + DMA_TO_MPG2MUX = 1, + DMA_FROM_MPG2MUX, +}; + +/** + * enum xlnx_tsmux_dmabuf_flags - dma buffer handling + * @DMABUF_ERROR: buffer error + * @DMABUF_CONTIG: contig buffer + * @DMABUF_NON_CONTIG: non contigs buffer + * @DMABUF_ATTACHED: buffer attached + */ +enum xlnx_tsmux_dmabuf_flags { + DMABUF_ERROR = 1, + DMABUF_CONTIG = 2, + DMABUF_NON_CONTIG = 4, + DMABUF_ATTACHED = 8, +}; + +/** + * struct xlnx_tsmux_dmabuf_info - struct to verify dma buf before enque + * @buf_fd: file descriptor + * @dir: direction of the dma buffer + * @flags: flags returned by the driver + */ +struct xlnx_tsmux_dmabuf_info { + int buf_fd; + enum xlnx_tsmux_dma_dir dir; + enum xlnx_tsmux_dmabuf_flags flags; +}; + +/* MPG2MUX IOCTL CALL LIST */ + +#define MPG2MUX_MAGIC 'M' + +/** + * MPG2MUX_INBUFALLOC - src buffer allocation + */ +#define MPG2MUX_INBUFALLOC _IOWR(MPG2MUX_MAGIC, 1, struct strc_bufs_info *) + +/** + * MPG2MUX_INBUFDEALLOC - deallocates the all src buffers + */ +#define MPG2MUX_INBUFDEALLOC _IO(MPG2MUX_MAGIC, 2) + +/** + * MPG2MUX_OUTBUFALLOC - allocates DMA able memory for dst + */ +#define MPG2MUX_OUTBUFALLOC _IOWR(MPG2MUX_MAGIC, 3, struct strc_bufs_info *) + +/** + * MPG2MUX_OUTBUFDEALLOC - deallocates the all dst buffers allocated + */ +#define MPG2MUX_OUTBUFDEALLOC _IO(MPG2MUX_MAGIC, 4) + +/** + * MPG2MUX_STBLALLOC - allocates DMA able memory for streamid table + */ +#define MPG2MUX_STBLALLOC _IOW(MPG2MUX_MAGIC, 5, unsigned short *) + +/** + * MPG2MUX_STBLDEALLOC - deallocates streamid table memory + */ +#define MPG2MUX_STBLDEALLOC _IO(MPG2MUX_MAGIC, 6) + +/** + * MPG2MUX_TBLUPDATE - enqueue or dequeue in streamid table + */ +#define MPG2MUX_TBLUPDATE _IOW(MPG2MUX_MAGIC, 7, struct strc_strminfo *) + +/** + * MPG2MUX_SETSTRM - enqueue a stream descriptor in stream context + * linked list along with src buf address + */ +#define MPG2MUX_SETSTRM _IOW(MPG2MUX_MAGIC, 8, struct stream_context_in *) + +/** + * MPG2MUX_START - starts muxer IP after configuring stream + * and mux context registers + */ +#define MPG2MUX_START _IO(MPG2MUX_MAGIC, 9) + +/** + * MPG2MUX_STOP - stops the muxer IP + */ +#define MPG2MUX_STOP _IO(MPG2MUX_MAGIC, 10) + +/** + * MPG2MUX_STATUS - command to get the status of IP + */ +#define MPG2MUX_STATUS _IOR(MPG2MUX_MAGIC, 11, unsigned short *) + +/** + * MPG2MUX_GETOUTBUF - get the output buffer id with size of output data + */ +#define MPG2MUX_GETOUTBUF _IOW(MPG2MUX_MAGIC, 12, struct out_buffer *) + +/** + * MPG2MUX_SETMUX - enqueue a mux descriptor with dst buf address + */ +#define MPG2MUX_SETMUX _IOW(MPG2MUX_MAGIC, 13, struct muxer_context_in *) + +/** + * MPG2MUX_VRFY_DMABUF - status of a given dma buffer fd + */ +#define MPG2MUX_VDBUF _IOWR(MPG2MUX_MAGIC, 14, struct xlnx_tsmux_dmabuf_info *) + +#endif diff --git a/include/uapi/linux/xlnxsync.h b/include/uapi/linux/xlnxsync.h new file mode 100644 index 000000000000..d5f1062f2369 --- /dev/null +++ b/include/uapi/linux/xlnxsync.h @@ -0,0 +1,149 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#ifndef __XLNXSYNC_H__ +#define __XLNXSYNC_H__ + +#define XLNXSYNC_IOCTL_HDR_VER 0x10001 + +/* + * This is set in the fb_id of struct xlnxsync_chan_config when + * configuring the channel. This makes the driver auto search for + * a free framebuffer slot. + */ +#define XLNXSYNC_AUTO_SEARCH 0xFF + +#define XLNXSYNC_MAX_ENC_CHAN 4 +#define XLNXSYNC_MAX_DEC_CHAN 2 +#define XLNXSYNC_BUF_PER_CHAN 3 + +#define XLNXSYNC_PROD 0 +#define XLNXSYNC_CONS 1 +#define XLNXSYNC_IO 2 + +#define XLNXSYNC_MAX_CORES 4 +/** + * struct xlnxsync_chan_config - Synchronizer channel configuration struct + * @hdr_ver: IOCTL header version + * @luma_start_offset: Start offset of Luma buffer + * @chroma_start_offset: Start offset of Chroma buffer + * @luma_end_offset: End offset of Luma buffer + * @chroma_end_offset: End offset of Chroma buffer + * @luma_margin: Margin for Luma buffer + * @chroma_margin: Margin for Chroma buffer + * @luma_core_offset: Array of 4 offsets for luma + * @chroma_core_offset: Array of 4 offsets for chroma + * @dma_fd: File descriptor of dma + * @fb_id: Framebuffer index. Valid values 0/1/2/XLNXSYNC_AUTO_SEARCH + * @ismono: Flag to indicate if buffer is Luma only. + * @channel_id: Channel index to be configured. + * Valid 0..3 & XLNXSYNC_AUTO_SEARCH + * + * This structure contains the configuration for monitoring a particular + * framebuffer on a particular channel. + */ +struct xlnxsync_chan_config { + u64 hdr_ver; + u64 luma_start_offset[XLNXSYNC_IO]; + u64 chroma_start_offset[XLNXSYNC_IO]; + u64 luma_end_offset[XLNXSYNC_IO]; + u64 chroma_end_offset[XLNXSYNC_IO]; + u32 luma_margin; + u32 chroma_margin; + u32 luma_core_offset[XLNXSYNC_MAX_CORES]; + u32 chroma_core_offset[XLNXSYNC_MAX_CORES]; + u32 dma_fd; + u8 fb_id[XLNXSYNC_IO]; + u8 ismono[XLNXSYNC_IO]; + u8 channel_id; +}; + +/** + * struct xlnxsync_clr_err - Clear channel error + * @hdr_ver: IOCTL header version + * @channel_id: Channel id whose error needs to be cleared + * @sync_err: Set this to clear sync error + * @wdg_err: Set this to clear watchdog error + * @ldiff_err: Set this to clear luma difference error + * @cdiff_err: Set this to clear chroma difference error + */ +struct xlnxsync_clr_err { + u64 hdr_ver; + u8 channel_id; + u8 sync_err; + u8 wdg_err; + u8 ldiff_err; + u8 cdiff_err; +}; + +/** + * struct xlnxsync_fbdone - Framebuffer Done + * @hdr_ver: IOCTL header version + * @status: Framebuffer Done status + */ +struct xlnxsync_fbdone { + u64 hdr_ver; + u8 status[XLNXSYNC_MAX_ENC_CHAN][XLNXSYNC_BUF_PER_CHAN][XLNXSYNC_IO]; +}; + +/** + * struct xlnxsync_config - Synchronizer IP configuration + * @hdr_ver: IOCTL header version + * @encode: true if encoder type, false for decoder type + * @max_channels: Maximum channels this IP supports + */ +struct xlnxsync_config { + u64 hdr_ver; + u8 encode; + u8 max_channels; +}; + +/** + * struct xlnxsync_stat - Sync IP status + * @hdr_ver: IOCTL header version + * @fbdone: for every pair of luma/chroma buffer for every producer/consumer + * @enable: channel enable + * @sync_err: Synchronization error + * @wdg_err: Watchdog error + * @ldiff_err: Luma difference > 1 for channel + * @cdiff_err: Chroma difference > 1 for channel + */ +struct xlnxsync_stat { + u64 hdr_ver; + u8 fbdone[XLNXSYNC_MAX_ENC_CHAN][XLNXSYNC_BUF_PER_CHAN][XLNXSYNC_IO]; + u8 enable[XLNXSYNC_MAX_ENC_CHAN]; + u8 sync_err[XLNXSYNC_MAX_ENC_CHAN]; + u8 wdg_err[XLNXSYNC_MAX_ENC_CHAN]; + u8 ldiff_err[XLNXSYNC_MAX_ENC_CHAN]; + u8 cdiff_err[XLNXSYNC_MAX_ENC_CHAN]; +}; + +#define XLNXSYNC_MAGIC 'X' + +/* + * This ioctl is used to get the IP config (i.e. encode / decode) + * and max number of channels + */ +#define XLNXSYNC_GET_CFG _IOR(XLNXSYNC_MAGIC, 1,\ + struct xlnxsync_config *) +/* This ioctl is used to get the channel status */ +#define XLNXSYNC_GET_CHAN_STATUS _IOR(XLNXSYNC_MAGIC, 2, u32 *) +/* This is used to set the framebuffer address for a channel */ +#define XLNXSYNC_SET_CHAN_CONFIG _IOW(XLNXSYNC_MAGIC, 3,\ + struct xlnxsync_chan_config *) +/* Enable a channel. The argument is channel number between 0 and 3 */ +#define XLNXSYNC_CHAN_ENABLE _IOR(XLNXSYNC_MAGIC, 4, u8) +/* Enable a channel. The argument is channel number between 0 and 3 */ +#define XLNXSYNC_CHAN_DISABLE _IOR(XLNXSYNC_MAGIC, 5, u8) +/* This is used to clear the Sync and Watchdog errors for a channel */ +#define XLNXSYNC_CLR_CHAN_ERR _IOW(XLNXSYNC_MAGIC, 6,\ + struct xlnxsync_clr_err *) +/* This is used to get the framebuffer done status for a channel */ +#define XLNXSYNC_GET_CHAN_FBDONE_STAT _IOR(XLNXSYNC_MAGIC, 7,\ + struct xlnxsync_fbdone *) +/* This is used to clear the framebuffer done status for a channel */ +#define XLNXSYNC_CLR_CHAN_FBDONE_STAT _IOW(XLNXSYNC_MAGIC, 8,\ + struct xlnxsync_fbdone *) +/* Reserve channel */ +#define XLNXSYNC_RESERVE_GET_CHAN_ID _IOR(XLNXSYNC_MAGIC, 9, u8 *) + +#endif diff --git a/include/uapi/linux/zocl_ioctl.h b/include/uapi/linux/zocl_ioctl.h new file mode 100644 index 000000000000..ee1f1e289cd8 --- /dev/null +++ b/include/uapi/linux/zocl_ioctl.h @@ -0,0 +1,125 @@ +/* + * A GEM style CMA backed memory manager for ZynQ based OpenCL accelerators. + * + * Copyright (C) 2016 Xilinx, Inc. All rights reserved. + * + * Authors: + * Sonal Santan <sonal.santan@xilinx.com> + * Umang Parekh <umang.parekh@xilinx.com> + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _XCL_ZOCL_IOCTL_H_ +#define _XCL_ZOCL_IOCTL_H_ + +enum { + DRM_ZOCL_CREATE_BO = 0, + DRM_ZOCL_MAP_BO, + DRM_ZOCL_SYNC_BO, + DRM_ZOCL_INFO_BO, + DRM_ZOCL_PWRITE_BO, + DRM_ZOCL_PREAD_BO, + DRM_ZOCL_NUM_IOCTLS +}; + +enum drm_zocl_sync_bo_dir { + DRM_ZOCL_SYNC_BO_TO_DEVICE, + DRM_ZOCL_SYNC_BO_FROM_DEVICE +}; + +#define DRM_ZOCL_BO_FLAGS_COHERENT 0x00000001 +#define DRM_ZOCL_BO_FLAGS_CMA 0x00000002 + +struct drm_zocl_create_bo { + uint64_t size; + uint32_t handle; + uint32_t flags; +}; + +struct drm_zocl_map_bo { + uint32_t handle; + uint32_t pad; + uint64_t offset; +}; + +/** + * struct drm_zocl_sync_bo - used for SYNQ_BO IOCTL + * @handle: GEM object handle + * @dir: DRM_ZOCL_SYNC_DIR_XXX + * @offset: Offset into the object to write to + * @size: Length of data to write + */ +struct drm_zocl_sync_bo { + uint32_t handle; + enum drm_zocl_sync_bo_dir dir; + uint64_t offset; + uint64_t size; +}; + +/** + * struct drm_zocl_info_bo - used for INFO_BO IOCTL + * @handle: GEM object handle + * @size: Size of BO + * @paddr: physical address + */ +struct drm_zocl_info_bo { + uint32_t handle; + uint64_t size; + uint64_t paddr; +}; + +/** + * struct drm_zocl_pwrite_bo - used for PWRITE_BO IOCTL + * @handle: GEM object handle + * @pad: Padding + * @offset: Offset into the object to write to + * @size: Length of data to write + * @data_ptr: Pointer to read the data from (pointers not 32/64 compatible) + */ +struct drm_zocl_pwrite_bo { + uint32_t handle; + uint32_t pad; + uint64_t offset; + uint64_t size; + uint64_t data_ptr; +}; + +/** + * struct drm_zocl_pread_bo - used for PREAD_BO IOCTL + * @handle: GEM object handle + * @pad: Padding + * @offset: Offset into the object to read from + * @size: Length of data to wrreadite + * @data_ptr: Pointer to write the data into (pointers not 32/64 compatible) + */ +struct drm_zocl_pread_bo { + uint32_t handle; + uint32_t pad; + uint64_t offset; + uint64_t size; + uint64_t data_ptr; +}; + +#define DRM_IOCTL_ZOCL_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_ZOCL_CREATE_BO, \ + struct drm_zocl_create_bo) +#define DRM_IOCTL_ZOCL_MAP_BO DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_ZOCL_MAP_BO, struct drm_zocl_map_bo) +#define DRM_IOCTL_ZOCL_SYNC_BO DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_ZOCL_SYNC_BO, struct drm_zocl_sync_bo) +#define DRM_IOCTL_ZOCL_INFO_BO DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_ZOCL_INFO_BO, struct drm_zocl_info_bo) +#define DRM_IOCTL_ZOCL_PWRITE_BO DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_ZOCL_PWRITE_BO, \ + struct drm_zocl_pwrite_bo) +#define DRM_IOCTL_ZOCL_PREAD_BO DRM_IOWR(DRM_COMMAND_BASE + \ + DRM_ZOCL_PREAD_BO, struct drm_zocl_pread_bo) +#endif diff --git a/include/uapi/sound/asequencer.h b/include/uapi/sound/asequencer.h index a75e14edc957..dbd60f48b4b0 100644 --- a/include/uapi/sound/asequencer.h +++ b/include/uapi/sound/asequencer.h @@ -344,10 +344,10 @@ typedef int __bitwise snd_seq_client_type_t; #define KERNEL_CLIENT ((__force snd_seq_client_type_t) 2) /* event filter flags */ -#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */ -#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */ -#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */ -#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */ +#define SNDRV_SEQ_FILTER_BROADCAST (1U<<0) /* accept broadcast messages */ +#define SNDRV_SEQ_FILTER_MULTICAST (1U<<1) /* accept multicast messages */ +#define SNDRV_SEQ_FILTER_BOUNCE (1U<<2) /* accept bounce event in error */ +#define SNDRV_SEQ_FILTER_USE_EVENT (1U<<31) /* use event filter */ struct snd_seq_client_info { int client; /* client number to inquire */ diff --git a/include/uapi/sound/skl-tplg-interface.h b/include/uapi/sound/skl-tplg-interface.h index a93c0decfdd5..215ce16b37d2 100644 --- a/include/uapi/sound/skl-tplg-interface.h +++ b/include/uapi/sound/skl-tplg-interface.h @@ -66,7 +66,8 @@ enum skl_ch_cfg { SKL_CH_CFG_DUAL_MONO = 9, SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10, SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11, - SKL_CH_CFG_4_CHANNEL = 12, + SKL_CH_CFG_7_1 = 12, + SKL_CH_CFG_4_CHANNEL = SKL_CH_CFG_7_1, SKL_CH_CFG_INVALID }; |