From 7a27da957f27b0152c70d544b18fdc7579387aa0 Mon Sep 17 00:00:00 2001 From: Yu_Effie Date: Thu, 18 Jul 2024 01:46:43 +0800 Subject: [PATCH] [VP] Add LNL upstream support for cm kernel * [Media Common] [VP] Add LNL upstream support for cm kernel Add LNL upstream support for cm kernel --- .../agnostic/common/vp/cm_fc_ld/PatchInfo.h | 2 ++ .../common/vp/cm_fc_ld/PatchInfoLinker.cpp | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfo.h b/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfo.h index 0dc1e439ee..50eba8bc56 100644 --- a/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfo.h +++ b/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfo.h @@ -61,6 +61,7 @@ enum { PP_TGL = 13, ///< TigerLake LP PP_DG2 = 14, PP_PVC = 15, + PP_ELF = 16, }; /// Patch info header. @@ -92,6 +93,7 @@ struct PInfoHdr { case PP_TGL: case PP_DG2: case PP_PVC: + case PP_ELF: return true; default: break; } diff --git a/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfoLinker.cpp b/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfoLinker.cpp index 8480744f5a..b09e8c4058 100644 --- a/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfoLinker.cpp +++ b/media_softlet/agnostic/common/vp/cm_fc_ld/PatchInfoLinker.cpp @@ -300,6 +300,7 @@ unsigned PatchInfoLinker::writeNOP(unsigned N) { case cm::patch::PP_TGL: case cm::patch::PP_DG2: case cm::patch::PP_PVC: + case cm::patch::PP_ELF: regular_nop = 0x00000060U; compact_nop = 0x20000060U; break; @@ -383,6 +384,26 @@ unsigned PatchInfoLinker::writeEOT() { snd1 = 0x0000000030207f0cULL; } break; + case cm::patch::PP_ELF: + { + if (hasR127Token) + { + r127_sync0 = 0x0001000000008001ULL; + r127_sync1 = 0x0000000000000000ULL; + r127_1_sync0 = 0x000100000000A001ULL; + r127_1_sync1 = 0x0000000000000000ULL; + uint8_t* sync0Ptr = (uint8_t*)&r127_sync0; + sync0Ptr[1] |= (uint8_t)r127Token; + sync0Ptr = (uint8_t*)&r127_1_sync0; + sync0Ptr[1] |= (uint8_t)r127Token; + } + + mov0 = 0x7f050aa0800c0961ULL; + mov1 = 0x0000000000100004ULL; + snd0 = 0x00000004800c0931ULL; + snd1 = 0x0000000030207f0cULL; + } + break; default: mov0 = 0x2fe0020c00600001ULL; mov1 = 0x00000000008d0000ULL;