media_modules: sec firmload extend with vdec type

PD#159071
	1.change tee load call with vdec type
        2. fixed h264 mmu crashed bug.

Change-Id: I4114a2d0d8c5837a6c51457472bfc0ceca17a99d
Signed-off-by: Yvonne Chen <yvonne.chen@amlogic.com>
This commit is contained in:
Yvonne Chen
2018-01-18 16:37:56 +08:00
committed by Dongjin Kim
parent 3f36210b0b
commit dc28161f64
5 changed files with 36 additions and 27 deletions

View File

@@ -77,7 +77,7 @@ int get_firmware_data(enum firmware_type_e type, char *buf)
if (tee_enabled()) {
pr_info ("tee load firmware type= %d\n",(u32)type);
ret = tee_load_video_fw((u32)type);
ret = tee_load_video_fw((u32)type, 0);
if (ret == 0)
ret = 1;
else

View File

@@ -2567,7 +2567,7 @@ static s32 vh264_init(void)
amvdec_enable();
if (!firmwareloaded && tee_enabled()) {
if (tee_load_video_fw((u32)VIDEO_DEC_H264) != 0) {
if (tee_load_video_fw((u32)VIDEO_DEC_H264, 0) != 0) {
amvdec_disable();
return -1;
}

View File

@@ -1419,7 +1419,7 @@ static s32 vh264mvc_init(void)
amvdec_enable();
if (tee_enabled()) {
if (tee_load_video_fw((u32)VIDEO_DEC_H264_MVC) != 0) {
if (tee_load_video_fw((u32)VIDEO_DEC_H264_MVC, 0) != 0) {
amvdec_disable();
return -1;
}

View File

@@ -4549,7 +4549,16 @@ static s32 vh264_init(struct vdec_h264_hw_s *hw)
}
}
if (tee_enabled() && !firmwareloaded) {
pr_info("VMH264 start load sec firmware ...\n");
pr_info("VMH264 start tee load sec firmware ...\n");
if (mmu_enable &&
tee_load_video_fw((u32)VIDEO_DEC_H264_MULTI_MMU, 2)
!= 0) {
amvdec_enable_flag = false;
amvdec_disable();
pr_info("%s: Error amvdec_mmu_loadmc fail\n",
__func__);
return -1;
}
} else {
/* -- ucode loading (amrisc and swap code) */
hw->mc_cpu_addr =
@@ -5194,7 +5203,7 @@ static void run(struct vdec_s *vdec,
start_process_time(hw);
if (tee_enabled()) {
if (tee_load_video_fw((u32)VIDEO_DEC_H264_MULTI)
if (tee_load_video_fw((u32)VIDEO_DEC_H264_MULTI, 0)
!= 0) {
amvdec_enable_flag = false;
amvdec_disable();

View File

@@ -378,68 +378,68 @@ s32 optee_load_fw(enum vformat_e type, const char *name)
s32 ret = 0;
switch ((u32)type) {
case VFORMAT_VC1:
ret = tee_load_video_fw((u32)VIDEO_DEC_VC1);
ret = tee_load_video_fw((u32)VIDEO_DEC_VC1, 0);
break;
case VFORMAT_AVS:
ret = tee_load_video_fw((u32)VIDEO_DEC_AVS);
ret = tee_load_video_fw((u32)VIDEO_DEC_AVS, 0);
break;
case VFORMAT_MPEG12:
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG12);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG12, 0);
break;
case VFORMAT_MJPEG:
ret = tee_load_video_fw((u32)VIDEO_DEC_MJPEG);
ret = tee_load_video_fw((u32)VIDEO_DEC_MJPEG, 0);
break;
case VFORMAT_VP9:
ret = tee_load_video_fw((u32)VIDEO_DEC_VP9_MMU);
ret = tee_load_video_fw((u32)VIDEO_DEC_VP9_MMU, 0);
break;
case VFORMAT_HEVC:
if (!strcmp(name, "vh265_mc"))
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC);
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC, 0);
else if (!strcmp(name, "vh265_mc_mmu"))
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC_MMU);
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC_MMU, 0);
break;
case VFORMAT_REAL:
if (!strcmp(name, "vreal_mc_8"))
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V8);
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V8, 0);
else if (!strcmp(name, "vreal_mc_9"))
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V9);
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V9, 0);
break;
case VFORMAT_MPEG4:
if (!strcmp(name, "vmpeg4_mc_311"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_3);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_3, 0);
else if (!strcmp(name, "vmpeg4_mc_4"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_4);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_4, 0);
else if (!strcmp(name, "vmpeg4_mc_5"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_5);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_5, 0);
else if (!strcmp(name, "h263_mc"))
ret = tee_load_video_fw((u32)VIDEO_DEC_FORMAT_H263);
ret = tee_load_video_fw((u32)VIDEO_DEC_FORMAT_H263, 0);
break;
default:
if (!strcmp(name, "vh265_mc"))
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC);
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC, 0);
else if (!strcmp(name, "vh265_mc_mmu"))
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC_MMU);
ret = tee_load_video_fw((u32)VIDEO_DEC_HEVC_MMU, 0);
else if (!strcmp(name, "vmpeg4_mc_311"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_3);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_3, 0);
else if (!strcmp(name, "vmpeg4_mc_4"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_4);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_4, 0);
else if (!strcmp(name, "vmpeg4_mc_5"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_5);
ret = tee_load_video_fw((u32)VIDEO_DEC_MPEG4_5, 0);
else if (!strcmp(name, "h263_mc"))
ret = tee_load_video_fw((u32)VIDEO_DEC_FORMAT_H263);
ret = tee_load_video_fw((u32)VIDEO_DEC_FORMAT_H263, 0);
else if (!strcmp(name, "vreal_mc_8"))
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V8);
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V8, 0);
else if (!strcmp(name, "vreal_mc_9"))
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V9);
ret = tee_load_video_fw((u32)VIDEO_DEC_REAL_V9, 0);
else if (!strcmp(name, "vmmjpeg_mc"))
ret = tee_load_video_fw((u32)VIDEO_DEC_MJPEG_MULTI);
ret = tee_load_video_fw((u32)VIDEO_DEC_MJPEG_MULTI, 0);
else
pr_info("unknow dec format\n");
break;