mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 05:17:10 +09:00
firmware: adds fws for gxm.
PD#162700:
add
VIDEO_DEC_H264_MULTI_GXM
VIDEO_DEC_H264_MVC_GXM
Change-Id: I1007e9a559f3fdf7b17b43e905df5534814ccc3b
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
Change-Id: I7af64c9be2203ddc00dcfb48dad3e20d21d3eea8
This commit is contained in:
@@ -18,8 +18,10 @@ static const struct type_name_s type_name[] = {
|
||||
{VIDEO_DEC_H264_4k2K, "h264_4k2k"},
|
||||
{VIDEO_DEC_H264_4k2K_SINGLE, "h264_4k2k_single"},
|
||||
{VIDEO_DEC_H264_MVC, "h264_mvc"},
|
||||
{VIDEO_DEC_H264_MVC_GXM, "h264_mvc_gxm"},
|
||||
{VIDEO_DEC_H264_MULTI, "h264_multi"},
|
||||
{VIDEO_DEC_H264_MULTI_MMU, "h264_multi_mmu"},
|
||||
{VIDEO_DEC_H264_MULTI_GXM, "h264_multi_gxm"},
|
||||
{VIDEO_DEC_HEVC, "hevc"},
|
||||
{VIDEO_DEC_HEVC_MMU, "hevc_mmu"},
|
||||
{VIDEO_DEC_HEVC_G12A, "hevc_g12a"},
|
||||
|
||||
@@ -34,6 +34,8 @@ enum firmware_type_e {
|
||||
VIDEO_DEC_AVS2_MMU,
|
||||
VIDEO_DEC_AVS_GXM,
|
||||
VIDEO_DEC_AVS_NOCABAC,
|
||||
VIDEO_DEC_H264_MULTI_GXM,
|
||||
VIDEO_DEC_H264_MVC_GXM,
|
||||
FIRMWARE_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -1419,7 +1419,14 @@ static s32 vh264mvc_init(void)
|
||||
amvdec_enable();
|
||||
|
||||
if (tee_enabled()) {
|
||||
if (tee_load_video_fw((u32)VIDEO_DEC_H264_MVC, 0) != 0) {
|
||||
pr_info("the video fw from the teeload.\n");
|
||||
|
||||
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_GXM)
|
||||
ret = tee_load_video_fw((u32)VIDEO_DEC_H264_MVC_GXM, 0);
|
||||
else
|
||||
ret = tee_load_video_fw((u32)VIDEO_DEC_H264_MVC, 0);
|
||||
|
||||
if (ret != 0) {
|
||||
amvdec_disable();
|
||||
return -1;
|
||||
}
|
||||
@@ -1436,7 +1443,11 @@ static s32 vh264mvc_init(void)
|
||||
|
||||
WRITE_VREG(UCODE_START_ADDR, mc_dma_handle);
|
||||
|
||||
size = get_firmware_data(VIDEO_DEC_H264_MVC, buf);
|
||||
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_GXM)
|
||||
size = get_firmware_data(VIDEO_DEC_H264_MVC_GXM, buf);
|
||||
else
|
||||
size = get_firmware_data(VIDEO_DEC_H264_MVC, buf);
|
||||
|
||||
if (size < 0) {
|
||||
pr_err("get firmware fail.");
|
||||
vfree(buf);
|
||||
|
||||
@@ -5063,7 +5063,11 @@ static s32 vh264_init(struct vdec_h264_hw_s *hw)
|
||||
if (IS_ERR_OR_NULL(fw))
|
||||
return -ENOMEM;
|
||||
|
||||
size = get_firmware_data(VIDEO_DEC_H264_MULTI, fw->data);
|
||||
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_GXM)
|
||||
size = get_firmware_data(VIDEO_DEC_H264_MULTI_GXM, fw->data);
|
||||
else
|
||||
size = get_firmware_data(VIDEO_DEC_H264_MULTI, fw->data);
|
||||
|
||||
if (size < 0) {
|
||||
pr_err("get firmware fail.\n");
|
||||
vfree(fw);
|
||||
@@ -6350,8 +6354,12 @@ static void run(struct vdec_s *vdec, unsigned long mask,
|
||||
start_process_time(hw);
|
||||
|
||||
if (tee_enabled()) {
|
||||
if (tee_load_video_fw((u32)VIDEO_DEC_H264_MULTI, 0)
|
||||
!= 0) {
|
||||
unsigned int fw_type = VIDEO_DEC_H264_MULTI;
|
||||
|
||||
if (get_cpu_type() >= MESON_CPU_MAJOR_ID_GXM)
|
||||
fw_type = VIDEO_DEC_H264_MULTI_GXM;
|
||||
|
||||
if (tee_load_video_fw(fw_type, 0) != 0) {
|
||||
amvdec_enable_flag = false;
|
||||
amvdec_disable();
|
||||
pr_err("id: %d, %s: Error amvdec_vdec_loadmc fail\n",
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user