driver: vidc: add support for control initialization

Add support for control initialization and set control
implementation. Modified hfi_create_header() and
hfi_create_packet() to handle offset and num_packets
within in the function itself.

Change-Id: If8560be8a884c5df2fcc91f75be90311f1003a41
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
This commit is contained in:
Akshata Sahukar
2020-08-26 23:51:04 -07:00
zatwierdzone przez Maheshwar Ajja
rodzic cd536c944c
commit 6246ad4ce9
18 zmienionych plików z 489 dodań i 275 usunięć

Wyświetl plik

@@ -10,6 +10,8 @@
#include "msm_vidc_debug.h"
#include "msm_vidc_internal.h"
#include "msm_vidc_core.h"
#include "msm_vidc_control.h"
#include "hfi_property.h"
#define DDR_TYPE_LPDDR4 0x6
#define DDR_TYPE_LPDDR4X 0x7
@@ -82,7 +84,14 @@ static struct msm_platform_core_capability core_data_waipio[] = {
};
static struct msm_platform_inst_capability instance_data_waipio[] = {
/* {type, domains, codecs, min, max, step_or_mask, value} */
/* {cap, domain, codec,
* min, max, step_or_mask, value,
* v4l2_id, hfi_id,
* flags,
* parents,
* children,
* adjust, set}
*/
{FRAME_WIDTH, ENC|DEC, CODECS_ALL, 128, 8192, 1, 1920},
{FRAME_HEIGHT, ENC|DEC, CODECS_ALL, 128, 8192, 1, 1080},
{PIX_FMTS, ENC, CODECS_ALL,
@@ -104,8 +113,45 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
/* ((1920 * 1088) / 256) * 960 fps */
{MBPS, ENC|DEC, CODECS_ALL, 64, 7833600, 1, 7833600},
{FRAME_RATE, ENC|DEC, CODECS_ALL, 1, 960, 1, 30},
{BIT_RATE, ENC|DEC, CODECS_ALL, 1, 220000000, 1, 20000000},
{BIT_RATE, ENC, HEVC, 1, 160000000, 1, 20000000},
{BIT_RATE, ENC|DEC, CODECS_ALL,
1, 220000000, 1, 20000000,
V4L2_CID_MPEG_VIDEO_BITRATE, HFI_PROP_TOTAL_BITRATE,
CAP_FLAG_DYNAMIC_ALLOWED,
/* TO DO parents */ {0},
{LAYER_BITRATE, SLICE_BYTE}},
{BIT_RATE, ENC, HEVC,
1, 160000000, 1, 20000000,
V4L2_CID_MPEG_VIDEO_BITRATE, HFI_PROP_TOTAL_BITRATE,
CAP_FLAG_DYNAMIC_ALLOWED,
/* TO DO parents */{0},
{LAYER_BITRATE, SLICE_BYTE}},
{ENTROPY_MODE, ENC, H264,
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC |
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, HFI_PROP_CABAC_SESSION,
CAP_FLAG_MENU,
{PROFILE},
{BIT_RATE}},
{PROFILE, ENC|DEC, H264,
V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10,
V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE |
V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE |
V4L2_MPEG_VIDEO_H264_PROFILE_MAIN |
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH |
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10,
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE,
CAP_FLAG_ROOT | CAP_FLAG_MENU,
{0},
{ENTROPY_MODE}},
{CABAC_BITRATE, ENC, H264, 1, 160000000, 1, 20000000},
{SCALE_X, ENC, CODECS_ALL, 8192, 65536, 1, 8192},
{SCALE_Y, ENC, CODECS_ALL, 8192, 65536, 1, 8192},