mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 05:17:10 +09:00
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:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user