diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c b/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c index 74851098ba06..72e88495715a 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c @@ -41,6 +41,7 @@ #include #include #include "../utils/firmware.h" +#include #define DRIVER_NAME "amvdec_vc1" #define MODULE_NAME "amvdec_vc1" @@ -1058,12 +1059,17 @@ static s32 vvc1_init(void) if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A) fw_type = VIDEO_DEC_VC1_G12A; - size = get_firmware_data(fw_type, buf); - if (size < 0) { - amvdec_disable(); - pr_err("get firmware fail."); - vfree(buf); - return -1; + if (get_cpu_type() >= MESON_CPU_MAJOR_ID_G12A && tee_enabled()) { + ret = tee_load_video_fw((u32)fw_type, 1); + size = 1; + } else { + size = get_firmware_data(fw_type, buf); + if (size < 0) { + amvdec_disable(); + pr_err("get firmware fail."); + vfree(buf); + return -1; + } } if (size == 1)