media updates for v5.5-rc1

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+QmuaPwR3wnBdVwACF8+vY7k4RUFAl3dKsYACgkQCF8+vY7k
 4RWmzBAAnIL1V0Jb6vJo9AJUmntDiO/3lVGjz+6bzvlhsjbPD0/6r1AY2ZRZxO97
 U3TTnB9m1nRjtJaaZ5Lmx9kc9suB8u1s9HziTcKIQ971goSZapmrx3IKPK64jt5D
 Uw6nzfinvAgRw0Rt0t6yd+yciw5bsqmGR5iIz/A29BXHnVu5P2TcGE8IM/oloxqV
 ZQkff30jieSM3CXq9hQSoekJkipyCXN3xbKncVVHc4TEonvXSCcAQxC6tRulKpi/
 Y/MOxB3v7Vh3snVe5lI3fBYPr8Iw8xpBTMXg7s5e4Sb9aCeZioF0cb2nLJFG8tw8
 2TviW1Fktt/N1nwZreRgVMkl19fGm3IdVd+1ukWgXS4EvV3FFsx3FZMFgAebhvKZ
 1SHxhGyC5yc5yDl8f9/yo/cyKRzeDj7h6SSD2TUKRmnKXWBin9cNr3CPNJDvTk6Q
 rgb2B/Sbs00fZFihRdkt8n6SmHpARS4QBZiAKpHECZhmBKNqFLg050v0uzB1Z7D8
 r7gK8NIWQORnmLWmHCa/kCAB8syUm8cW6LibWAvCbfN0FEaYdujFtvC+v0BQSTVJ
 f9BNFwUs3mCJ6x30F2DN60f2z3G1ehuNPMxFBFJpa9sLgh2wEPVaqEakGWE2iMUP
 Rv/cz0CJQweJutdhIAHtk3nVOQZeiAcqZMeHYemX9lL62Mjprmo=
 =VN90
 -----END PGP SIGNATURE-----

Merge tag 'media/v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media updates from Mauro Carvalho Chehab:

 - uAPI documentation for stateless decoders

 - Added a new CEC ioctl together with its documentation

 - Improved IPU3 documentation

 - New i2c drivers: hi556 and imx290

 - Added support on Vivid driver for meta streams

 - Added de-interlace support for sunxi subdriver

 - Added a few new remote controler keymaps

 - Added H.265 support for Sunxi Cedrus driver

 - Another round of random driver cleanups, fixes and improvements

* tag 'media/v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (361 commits)
  media: Revert "media: mtk-vcodec: Remove extra area allocation in an input buffer on encoding"
  media: hantro: Set H264 FIELDPIC_FLAG_E flag correctly
  media: hantro: Remove now unused H264 pic_size
  media: hantro: Use output buffer width and height for H264 decoding
  media: hantro: Reduce H264 extra space for motion vectors
  media: hantro: Fix H264 motion vector buffer offset
  media: ti-vpe: vpe: fix compatible to match bindings
  media: dt-bindings: media: ti-vpe: Document VPE driver
  media: zr364xx: remove redundant assigmnent to idx, clean up code
  media: Documentation: media: *_DEFAULT targets for subdevs
  media: hantro: Fix s_fmt for dynamic resolution changes
  media: i2c: Use the correct style for SPDX License Identifier
  media: siano: Use the correct style for SPDX License Identifier
  media: vicodec: media_device_cleanup was called too early
  media: vim2m: media_device_cleanup was called too early
  media: cedrus: Increase maximum supported size
  media: cedrus: Fix H264 4k support
  media: cedrus: Properly signal size in mode register
  media: v4l2-ctrl: Lock main_hdl on operations of requests_queued.
  media: si470x-i2c: add missed operations in remove
  ...
This commit is contained in:
Linus Torvalds 2019-11-26 20:11:43 -08:00
commit 89d57dddd7
299 changed files with 12866 additions and 4740 deletions

View file

@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg,
msg->len = 3;
msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;
msg->msg[2] = status_req;
msg->reply = reply ? CEC_MSG_DECK_STATUS : 0;
msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
CEC_MSG_DECK_STATUS : 0;
}
static inline void cec_ops_give_deck_status(const struct cec_msg *msg,
@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg,
msg->len = 3;
msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
msg->msg[2] = status_req;
msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0;
msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
CEC_MSG_TUNER_DEVICE_STATUS : 0;
}
static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,
@ -1302,17 +1304,17 @@ static inline void cec_msg_user_control_pressed(struct cec_msg *msg,
if (!ui_cmd->has_opt_arg)
return;
switch (ui_cmd->ui_cmd) {
case 0x56:
case 0x57:
case 0x60:
case 0x68:
case 0x69:
case 0x6a:
case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
case CEC_OP_UI_CMD_PLAY_FUNCTION:
case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
/* The optional operand is one byte for all these ui commands */
msg->len++;
msg->msg[3] = ui_cmd->play_mode;
break;
case 0x67:
case CEC_OP_UI_CMD_TUNE_FUNCTION:
msg->len += 4;
msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) |
(ui_cmd->channel_identifier.major >> 8);
@ -1331,17 +1333,17 @@ static inline void cec_ops_user_control_pressed(const struct cec_msg *msg,
if (msg->len == 3)
return;
switch (ui_cmd->ui_cmd) {
case 0x56:
case 0x57:
case 0x60:
case 0x68:
case 0x69:
case 0x6a:
case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
case CEC_OP_UI_CMD_PLAY_FUNCTION:
case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
/* The optional operand is one byte for all these ui commands */
ui_cmd->play_mode = msg->msg[3];
ui_cmd->has_opt_arg = 1;
break;
case 0x67:
case CEC_OP_UI_CMD_TUNE_FUNCTION:
if (msg->len < 7)
break;
ui_cmd->has_opt_arg = 1;

View file

@ -317,6 +317,8 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask)
#define CEC_CAP_NEEDS_HPD (1 << 6)
/* Hardware can monitor CEC pin transitions */
#define CEC_CAP_MONITOR_PIN (1 << 7)
/* CEC_ADAP_G_CONNECTOR_INFO is available */
#define CEC_CAP_CONNECTOR_INFO (1 << 8)
/**
* struct cec_caps - CEC capabilities structure.
@ -375,6 +377,34 @@ struct cec_log_addrs {
/* CDC-Only device: supports only CDC messages */
#define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2)
/**
* struct cec_drm_connector_info - tells which drm connector is
* associated with the CEC adapter.
* @card_no: drm card number
* @connector_id: drm connector ID
*/
struct cec_drm_connector_info {
__u32 card_no;
__u32 connector_id;
};
#define CEC_CONNECTOR_TYPE_NO_CONNECTOR 0
#define CEC_CONNECTOR_TYPE_DRM 1
/**
* struct cec_connector_info - tells if and which connector is
* associated with the CEC adapter.
* @type: connector type (if any)
* @drm: drm connector info
*/
struct cec_connector_info {
__u32 type;
union {
struct cec_drm_connector_info drm;
__u32 raw[16];
};
};
/* Events */
/* Event that occurs when the adapter state changes */
@ -398,10 +428,17 @@ struct cec_log_addrs {
* struct cec_event_state_change - used when the CEC adapter changes state.
* @phys_addr: the current physical address
* @log_addr_mask: the current logical address mask
* @have_conn_info: if non-zero, then HDMI connector information is available.
* This field is only valid if CEC_CAP_CONNECTOR_INFO is set. If that
* capability is set and @have_conn_info is zero, then that indicates
* that the HDMI connector device is not instantiated, either because
* the HDMI driver is still configuring the device or because the HDMI
* device was unbound.
*/
struct cec_event_state_change {
__u16 phys_addr;
__u16 log_addr_mask;
__u16 have_conn_info;
};
/**
@ -476,6 +513,9 @@ struct cec_event {
#define CEC_G_MODE _IOR('a', 8, __u32)
#define CEC_S_MODE _IOW('a', 9, __u32)
/* Get the connector info */
#define CEC_ADAP_G_CONNECTOR_INFO _IOR('a', 10, struct cec_connector_info)
/*
* The remainder of this header defines all CEC messages and operands.
* The format matters since it the cec-ctl utility parses it to generate
@ -768,8 +808,8 @@ struct cec_event {
#define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93
#define CEC_MSG_TUNER_DEVICE_STATUS 0x07
/* Recording Flag Operand (rec_flag) */
#define CEC_OP_REC_FLAG_USED 0
#define CEC_OP_REC_FLAG_NOT_USED 1
#define CEC_OP_REC_FLAG_NOT_USED 0
#define CEC_OP_REC_FLAG_USED 1
/* Tuner Display Info Operand (tuner_display_info) */
#define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0
#define CEC_OP_TUNER_DISPLAY_INFO_NONE 1
@ -820,6 +860,95 @@ struct cec_event {
#define CEC_OP_MENU_STATE_DEACTIVATED 0x01
#define CEC_MSG_USER_CONTROL_PRESSED 0x44
/* UI Command Operand (ui_cmd) */
#define CEC_OP_UI_CMD_SELECT 0x00
#define CEC_OP_UI_CMD_UP 0x01
#define CEC_OP_UI_CMD_DOWN 0x02
#define CEC_OP_UI_CMD_LEFT 0x03
#define CEC_OP_UI_CMD_RIGHT 0x04
#define CEC_OP_UI_CMD_RIGHT_UP 0x05
#define CEC_OP_UI_CMD_RIGHT_DOWN 0x06
#define CEC_OP_UI_CMD_LEFT_UP 0x07
#define CEC_OP_UI_CMD_LEFT_DOWN 0x08
#define CEC_OP_UI_CMD_DEVICE_ROOT_MENU 0x09
#define CEC_OP_UI_CMD_DEVICE_SETUP_MENU 0x0a
#define CEC_OP_UI_CMD_CONTENTS_MENU 0x0b
#define CEC_OP_UI_CMD_FAVORITE_MENU 0x0c
#define CEC_OP_UI_CMD_BACK 0x0d
#define CEC_OP_UI_CMD_MEDIA_TOP_MENU 0x10
#define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU 0x11
#define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE 0x1d
#define CEC_OP_UI_CMD_NUMBER_11 0x1e
#define CEC_OP_UI_CMD_NUMBER_12 0x1f
#define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10 0x20
#define CEC_OP_UI_CMD_NUMBER_1 0x21
#define CEC_OP_UI_CMD_NUMBER_2 0x22
#define CEC_OP_UI_CMD_NUMBER_3 0x23
#define CEC_OP_UI_CMD_NUMBER_4 0x24
#define CEC_OP_UI_CMD_NUMBER_5 0x25
#define CEC_OP_UI_CMD_NUMBER_6 0x26
#define CEC_OP_UI_CMD_NUMBER_7 0x27
#define CEC_OP_UI_CMD_NUMBER_8 0x28
#define CEC_OP_UI_CMD_NUMBER_9 0x29
#define CEC_OP_UI_CMD_DOT 0x2a
#define CEC_OP_UI_CMD_ENTER 0x2b
#define CEC_OP_UI_CMD_CLEAR 0x2c
#define CEC_OP_UI_CMD_NEXT_FAVORITE 0x2f
#define CEC_OP_UI_CMD_CHANNEL_UP 0x30
#define CEC_OP_UI_CMD_CHANNEL_DOWN 0x31
#define CEC_OP_UI_CMD_PREVIOUS_CHANNEL 0x32
#define CEC_OP_UI_CMD_SOUND_SELECT 0x33
#define CEC_OP_UI_CMD_INPUT_SELECT 0x34
#define CEC_OP_UI_CMD_DISPLAY_INFORMATION 0x35
#define CEC_OP_UI_CMD_HELP 0x36
#define CEC_OP_UI_CMD_PAGE_UP 0x37
#define CEC_OP_UI_CMD_PAGE_DOWN 0x38
#define CEC_OP_UI_CMD_POWER 0x40
#define CEC_OP_UI_CMD_VOLUME_UP 0x41
#define CEC_OP_UI_CMD_VOLUME_DOWN 0x42
#define CEC_OP_UI_CMD_MUTE 0x43
#define CEC_OP_UI_CMD_PLAY 0x44
#define CEC_OP_UI_CMD_STOP 0x45
#define CEC_OP_UI_CMD_PAUSE 0x46
#define CEC_OP_UI_CMD_RECORD 0x47
#define CEC_OP_UI_CMD_REWIND 0x48
#define CEC_OP_UI_CMD_FAST_FORWARD 0x49
#define CEC_OP_UI_CMD_EJECT 0x4a
#define CEC_OP_UI_CMD_SKIP_FORWARD 0x4b
#define CEC_OP_UI_CMD_SKIP_BACKWARD 0x4c
#define CEC_OP_UI_CMD_STOP_RECORD 0x4d
#define CEC_OP_UI_CMD_PAUSE_RECORD 0x4e
#define CEC_OP_UI_CMD_ANGLE 0x50
#define CEC_OP_UI_CMD_SUB_PICTURE 0x51
#define CEC_OP_UI_CMD_VIDEO_ON_DEMAND 0x52
#define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE 0x53
#define CEC_OP_UI_CMD_TIMER_PROGRAMMING 0x54
#define CEC_OP_UI_CMD_INITIAL_CONFIGURATION 0x55
#define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE 0x56
#define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION 0x57
#define CEC_OP_UI_CMD_AUDIO_DESCRIPTION 0x58
#define CEC_OP_UI_CMD_INTERNET 0x59
#define CEC_OP_UI_CMD_3D_MODE 0x5a
#define CEC_OP_UI_CMD_PLAY_FUNCTION 0x60
#define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION 0x61
#define CEC_OP_UI_CMD_RECORD_FUNCTION 0x62
#define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION 0x63
#define CEC_OP_UI_CMD_STOP_FUNCTION 0x64
#define CEC_OP_UI_CMD_MUTE_FUNCTION 0x65
#define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION 0x66
#define CEC_OP_UI_CMD_TUNE_FUNCTION 0x67
#define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION 0x68
#define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION 0x69
#define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION 0x6a
#define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION 0x6b
#define CEC_OP_UI_CMD_POWER_OFF_FUNCTION 0x6c
#define CEC_OP_UI_CMD_POWER_ON_FUNCTION 0x6d
#define CEC_OP_UI_CMD_F1_BLUE 0x71
#define CEC_OP_UI_CMD_F2_RED 0x72
#define CEC_OP_UI_CMD_F3_GREEN 0x73
#define CEC_OP_UI_CMD_F4_YELLOW 0x74
#define CEC_OP_UI_CMD_F5 0x75
#define CEC_OP_UI_CMD_DATA 0x76
/* UI Broadcast Type Operand (ui_bcast_type) */
#define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00
#define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01

View file

@ -1034,6 +1034,7 @@ enum v4l2_jpeg_chroma_subsampling {
#define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
#define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
#define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
#define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
/* Image processing controls */

View file

@ -422,6 +422,11 @@ struct v4l2_fract {
__u32 denominator;
};
struct v4l2_area {
__u32 width;
__u32 height;
};
/**
* struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP
*
@ -755,6 +760,7 @@ struct v4l2_pix_format {
#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
#define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
/* priv field value to indicates that subsequent fields are valid. */
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
@ -915,11 +921,12 @@ struct v4l2_requestbuffers {
};
/* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */
#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
#define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)
#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
#define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)
#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
#define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
/**
* struct v4l2_plane - plane info for multi-planar buffers
@ -1041,6 +1048,8 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv)
#define V4L2_BUF_FLAG_IN_REQUEST 0x00000080
/* timecode field is valid */
#define V4L2_BUF_FLAG_TIMECODE 0x00000100
/* Don't return the capture buffer until OUTPUT timestamp changes */
#define V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF 0x00000200
/* Buffer is prepared for queuing */
#define V4L2_BUF_FLAG_PREPARED 0x00000400
/* Cache handling flags */
@ -1675,6 +1684,7 @@ struct v4l2_ext_control {
__u8 __user *p_u8;
__u16 __user *p_u16;
__u32 __user *p_u32;
struct v4l2_area __user *p_area;
void __user *ptr;
};
} __attribute__ ((packed));
@ -1720,6 +1730,7 @@ enum v4l2_ctrl_type {
V4L2_CTRL_TYPE_U8 = 0x0100,
V4L2_CTRL_TYPE_U16 = 0x0101,
V4L2_CTRL_TYPE_U32 = 0x0102,
V4L2_CTRL_TYPE_AREA = 0x0106,
};
/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@ -1975,6 +1986,7 @@ struct v4l2_encoder_cmd {
#define V4L2_DEC_CMD_STOP (1)
#define V4L2_DEC_CMD_PAUSE (2)
#define V4L2_DEC_CMD_RESUME (3)
#define V4L2_DEC_CMD_FLUSH (4)
/* Flags for V4L2_DEC_CMD_START */
#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0)