diff --git a/msm/vidc/msm_vidc_platform.c b/msm/vidc/msm_vidc_platform.c index 76ddec62c6b4..6c0e5bf18ccd 100644 --- a/msm/vidc/msm_vidc_platform.c +++ b/msm/vidc/msm_vidc_platform.c @@ -244,12 +244,16 @@ static struct msm_vidc_codec_capability bengal_capabilities_v1[] = { static struct msm_vidc_codec_capability holi_capabilities[] = { /* {cap_type, domains, codecs, min, max, step_size, default_value} */ - {CAP_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 1920, 1, 1920}, - {CAP_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 1920, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, CODECS_ALL, 96, 1920, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 1920, 1, 1080}, + {CAP_FRAME_WIDTH, ENC, CODECS_ALL, 128, 1920, 1, 1920}, + {CAP_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 1920, 1, 1080}, /* ((1920 * 1088) / 256) */ - {CAP_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 8160, 1, 8160}, + {CAP_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 8160, 1, 8160}, + {CAP_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 8160, 1, 8160}, /* 1080@30 decode + 1080@30 encode */ - {CAP_MBS_PER_SECOND, DOMAINS_ALL, CODECS_ALL, 64, 489600, 1, 244800}, + {CAP_MBS_PER_SECOND, DEC, CODECS_ALL, 36, 489600, 1, 244800}, + {CAP_MBS_PER_SECOND, ENC, CODECS_ALL, 64, 489600, 1, 244800}, {CAP_FRAMERATE, DOMAINS_ALL, CODECS_ALL, 1, 120, 1, 30}, {CAP_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 60000000, 1, 20000000}, {CAP_CABAC_BITRATE, ENC, H264, 1, 60000000, 1, 20000000}, @@ -268,8 +272,10 @@ static struct msm_vidc_codec_capability holi_capabilities[] = { {CAP_MAX_VIDEOCORES, DOMAINS_ALL, CODECS_ALL, 0, 1, 1, 1}, /* Secure usecase specific */ - {CAP_SECURE_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 1920, 1, 1920}, - {CAP_SECURE_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 1920, 1, 1080}, + {CAP_SECURE_FRAME_WIDTH, DEC, CODECS_ALL, 96, 1920, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 1920, 1, 1080}, + {CAP_SECURE_FRAME_WIDTH, ENC, CODECS_ALL, 128, 1920, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 1920, 1, 1080}, /* (1920 * 1088) / 256 */ {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 8160, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 35000000, 1, 20000000}, @@ -407,10 +413,13 @@ static struct msm_vidc_codec_capability lahaina_capabilities[] = { static struct msm_vidc_codec_capability shima_capabilities_v0[] = { /* {cap_type, domains, codecs, min, max, step_size, default_value,} */ - {CAP_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 8192, 1, 1920}, - {CAP_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 8192, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, CODECS_ALL, 96, 8192, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 8192, 1, 1080}, + {CAP_FRAME_WIDTH, ENC, CODECS_ALL, 128, 8192, 1, 1920}, + {CAP_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 8192, 1, 1080}, /* (8192 * 4320) / 256 */ - {CAP_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 138240, 1, 138240}, + {CAP_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 138240, 1, 138240}, + {CAP_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 138240, 1, 138240}, {CAP_FRAMERATE, DOMAINS_ALL, CODECS_ALL, 1, 480, 1, 30}, /* Encode spec - 4K@60 */ @@ -419,7 +428,7 @@ static struct msm_vidc_codec_capability shima_capabilities_v0[] = { /* Decode spec - 8K@30, 4k@120*/ /* ((8192 * 4320) / 256) * 30 fps */ - {CAP_MBS_PER_SECOND, DEC, CODECS_ALL, 64, 4147200, 1, 979200}, + {CAP_MBS_PER_SECOND, DEC, CODECS_ALL, 36, 4147200, 1, 979200}, {CAP_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 160000000, 1, 20000000}, {CAP_CABAC_BITRATE, ENC, H264, 1, 160000000, 1, 20000000}, @@ -442,24 +451,27 @@ static struct msm_vidc_codec_capability shima_capabilities_v0[] = { {CAP_MAX_VIDEOCORES, DOMAINS_ALL, CODECS_ALL, 0, 1, 1, 1}, /* Mpeg2 decoder specific */ - {CAP_FRAME_WIDTH, DEC, MPEG2, 128, 1920, 1, 1920}, - {CAP_FRAME_HEIGHT, DEC, MPEG2, 128, 1920, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, MPEG2, 96, 1920, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, MPEG2, 96, 1920, 1, 1080}, /* (1920 * 1088) / 256 */ - {CAP_MBS_PER_FRAME, DEC, MPEG2, 64, 8160, 1, 8160}, + {CAP_MBS_PER_FRAME, DEC, MPEG2, 36, 8160, 1, 8160}, /* ((1920 * 1088) / 256) * 30*/ - {CAP_MBS_PER_SECOND, DEC, MPEG2, 64, 244800, 1, 244800}, + {CAP_MBS_PER_SECOND, DEC, MPEG2, 36, 244800, 1, 244800}, {CAP_FRAMERATE, DEC, MPEG2, 1, 30, 1, 30}, {CAP_BITRATE, DEC, MPEG2, 1, 40000000, 1, 20000000}, /* Secure usecase specific */ - {CAP_SECURE_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1920}, - {CAP_SECURE_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1080}, + {CAP_SECURE_FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080}, + {CAP_SECURE_FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080}, /* (3840 * 2176) / 256 */ - {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 34816, 1, 8160}, + {CAP_SECURE_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 34816, 1, 8160}, + {CAP_SECURE_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 34816, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 40000000, 1, 20000000}, /* Batch Mode Decode */ - {CAP_BATCH_MAX_MB_PER_FRAME, DEC, CODECS_ALL, 64, 8160, 1, 8160}, + {CAP_BATCH_MAX_MB_PER_FRAME, DEC, CODECS_ALL, 36, 8160, 1, 8160}, /* (1920 * 1088) / 256 */ {CAP_BATCH_MAX_FPS, DEC, CODECS_ALL, 1, 60, 1, 60}, @@ -503,12 +515,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v0[] = { static struct msm_vidc_codec_capability shima_capabilities_v1[] = { /* {cap_type, domains, codecs, min, max, step_size, default_value,} */ - {CAP_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1920}, - {CAP_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080}, + {CAP_FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920}, + {CAP_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080}, /* ((4096 * 2176) / 256) */ - {CAP_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 36, 34816, 1, 8160}, + {CAP_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 34816, 1, 8160}, + {CAP_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 34816, 1, 8160}, /* ((3840 * 2176) / 256) * 60 fps */ - {CAP_MBS_PER_SECOND, DOMAINS_ALL, CODECS_ALL, 64, 1958400, 1, 489600}, + {CAP_MBS_PER_SECOND, DEC, CODECS_ALL, 36, 1958400, 1, 489600}, + {CAP_MBS_PER_SECOND, ENC, CODECS_ALL, 64, 1958400, 1, 489600}, {CAP_FRAMERATE, DOMAINS_ALL, CODECS_ALL, 1, 480, 1, 30}, {CAP_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 100000000, 1, 20000000}, @@ -532,24 +548,27 @@ static struct msm_vidc_codec_capability shima_capabilities_v1[] = { {CAP_MAX_VIDEOCORES, DOMAINS_ALL, CODECS_ALL, 0, 1, 1, 1}, /* Mpeg2 decoder specific */ - {CAP_FRAME_WIDTH, DEC, MPEG2, 128, 1920, 1, 1920}, - {CAP_FRAME_HEIGHT, DEC, MPEG2, 128, 1920, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, MPEG2, 96, 1920, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, MPEG2, 96, 1920, 1, 1080}, /* (1920 * 1088) / 256 */ - {CAP_MBS_PER_FRAME, DEC, MPEG2, 64, 8160, 1, 8160}, + {CAP_MBS_PER_FRAME, DEC, MPEG2, 36, 8160, 1, 8160}, /* ((1920 * 1088) / 256) * 30 */ - {CAP_MBS_PER_SECOND, DEC, MPEG2, 64, 244800, 1, 244800}, + {CAP_MBS_PER_SECOND, DEC, MPEG2, 36, 244800, 1, 244800}, {CAP_FRAMERATE, DEC, MPEG2, 1, 30, 1, 30}, {CAP_BITRATE, DEC, MPEG2, 1, 40000000, 1, 20000000}, /* Secure usecase specific */ + {CAP_SECURE_FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080}, {CAP_SECURE_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1920}, {CAP_SECURE_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1080}, /* (4096 * 2176) / 256 */ - {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 34816, 1, 8160}, + {CAP_SECURE_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 34816, 1, 8160}, + {CAP_SECURE_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 34816, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 40000000, 1, 20000000}, /* Batch Mode Decode */ - {CAP_BATCH_MAX_MB_PER_FRAME, DEC, CODECS_ALL, 64, 8160, 1, 8160}, + {CAP_BATCH_MAX_MB_PER_FRAME, DEC, CODECS_ALL, 36, 8160, 1, 8160}, /* (1920 * 1088) / 256 */ {CAP_BATCH_MAX_FPS, DEC, CODECS_ALL, 1, 30, 1, 30}, @@ -593,12 +612,16 @@ static struct msm_vidc_codec_capability shima_capabilities_v1[] = { static struct msm_vidc_codec_capability shima_capabilities_v2[] = { /* {cap_type, domains, codecs, min, max, step_size, default_value,} */ - {CAP_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1920}, - {CAP_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080}, + {CAP_FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920}, + {CAP_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080}, /* (4096 * 2176) / 256 */ - {CAP_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 34816, 1, 8160}, + {CAP_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 34816, 1, 8160}, + {CAP_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 34816, 1, 8160}, /* ((3840 * 2176) / 256) * 30 fps */ - {CAP_MBS_PER_SECOND, DOMAINS_ALL, CODECS_ALL, 64, 979200, 1, 244800}, + {CAP_MBS_PER_SECOND, DEC, CODECS_ALL, 36, 979200, 1, 244800}, + {CAP_MBS_PER_SECOND, ENC, CODECS_ALL, 64, 979200, 1, 244800}, {CAP_FRAMERATE, DOMAINS_ALL, CODECS_ALL, 1, 240, 1, 30}, {CAP_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 100000000, 1, 20000000}, {CAP_CABAC_BITRATE, ENC, H264, 1, 100000000, 1, 20000000}, @@ -621,24 +644,27 @@ static struct msm_vidc_codec_capability shima_capabilities_v2[] = { {CAP_MAX_VIDEOCORES, DOMAINS_ALL, CODECS_ALL, 0, 1, 1, 1}, /* Mpeg2 decoder specific */ - {CAP_FRAME_WIDTH, DEC, MPEG2, 128, 1920, 1, 1920}, - {CAP_FRAME_HEIGHT, DEC, MPEG2, 128, 1920, 1, 1080}, + {CAP_FRAME_WIDTH, DEC, MPEG2, 96, 1920, 1, 1920}, + {CAP_FRAME_HEIGHT, DEC, MPEG2, 96, 1920, 1, 1080}, /* (1920 * 1088) / 256 */ - {CAP_MBS_PER_FRAME, DEC, MPEG2, 64, 8160, 1, 8160}, + {CAP_MBS_PER_FRAME, DEC, MPEG2, 36, 8160, 1, 8160}, /* ((1920 * 1088) / 256) * 30*/ - {CAP_MBS_PER_SECOND, DEC, MPEG2, 64, 244800, 1, 244800}, + {CAP_MBS_PER_SECOND, DEC, MPEG2, 36, 244800, 1, 244800}, {CAP_FRAMERATE, DEC, MPEG2, 1, 30, 1, 30}, {CAP_BITRATE, DEC, MPEG2, 1, 40000000, 1, 20000000}, /* Secure usecase specific */ - {CAP_SECURE_FRAME_WIDTH, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1920}, - {CAP_SECURE_FRAME_HEIGHT, DOMAINS_ALL, CODECS_ALL, 128, 4096, 1, 1080}, + {CAP_SECURE_FRAME_WIDTH, DEC, CODECS_ALL, 96, 4096, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, DEC, CODECS_ALL, 96, 4096, 1, 1080}, + {CAP_SECURE_FRAME_WIDTH, ENC, CODECS_ALL, 128, 4096, 1, 1920}, + {CAP_SECURE_FRAME_HEIGHT, ENC, CODECS_ALL, 128, 4096, 1, 1080}, /* (4096 * 2176) / 256 */ - {CAP_SECURE_MBS_PER_FRAME, DOMAINS_ALL, CODECS_ALL, 64, 34816, 1, 8160}, + {CAP_SECURE_MBS_PER_FRAME, DEC, CODECS_ALL, 36, 34816, 1, 8160}, + {CAP_SECURE_MBS_PER_FRAME, ENC, CODECS_ALL, 64, 34816, 1, 8160}, {CAP_SECURE_BITRATE, DOMAINS_ALL, CODECS_ALL, 1, 40000000, 1, 20000000}, /* Batch Mode Decode */ - {CAP_BATCH_MAX_MB_PER_FRAME, DEC, CODECS_ALL, 64, 8160, 1, 8160}, + {CAP_BATCH_MAX_MB_PER_FRAME, DEC, CODECS_ALL, 36, 8160, 1, 8160}, /* (1920 * 1088) / 256 */ {CAP_BATCH_MAX_FPS, DEC, CODECS_ALL, 1, 30, 1, 30},