video: driver: initial state machine changes

- hierarchical state model which comprises of
  top level states and sub states
- top level states include OPEN, CLOSE, ERROR,
  INPUT_STREAMING, OUTPUT_STREAMING, STREAMING.
- sub states include DRAIN, DRC, DRAIN_LAST_BUFFER,
  DRC_LAST_BUFFER, INPUT_PAUSE, OUTPUT_PAUSE.
- follows deterministic approach for key sequences
  like DRC, DRAIN and last flag handling i.e none
  of these events are ignored or discarded.
- removal of auto start of firmware input port as
  part of ipsc handling.
- introduction of hfi commands for host controlled
  PAUSE and RESUME of firmware ports.
- introduction of information last flag packets
  for DRC and DRAIN when FW has insufficient
  output buffers.

Change-Id: Ie8c8f44af464d06f5a7bb76822f749c9874f869a
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
Этот коммит содержится в:
Darshana Patil
2022-06-02 10:42:56 -07:00
родитель df3fd88dac
Коммит 10794c2968
17 изменённых файлов: 966 добавлений и 738 удалений

Просмотреть файл

@@ -268,6 +268,9 @@ enum v4l2_h264_encode_delivery_mode {
#define V4L2_CID_MPEG_VIDC_CLIENT_ID \
(V4L2_CID_MPEG_VIDC_BASE + 0x41)
#define V4L2_CID_MPEG_VIDC_LAST_FLAG_EVENT_ENABLE \
(V4L2_CID_MPEG_VIDC_BASE + 0x42)
/* add new controls above this line */
/* Deprecate below controls once availble in gki and gsi bionic header */
#ifndef V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID
@@ -461,6 +464,19 @@ struct v4l2_event_vidc_metadata {
__u32 offset;
__u8 reserved[44];
};
#define V4L2_EVENT_VIDC_LAST_FLAG \
(V4L2_EVENT_PRIVATE_START + 0x2)
enum v4l2_event_last_flag {
LAST_FLAG_DRC = (1 << 0),
LAST_FLAG_DRAIN = (1 << 1),
};
struct v4l2_event_vidc_last_flag {
enum v4l2_event_last_flag flag_type;
};
/* vendor events end */
/* Default metadata size (align to 4KB) */