[igt-dev] [PATCH i-g-t] lib/instdone: GEN12 INSTDONE initialization

janga.rahul.kumar at intel.com janga.rahul.kumar at intel.com
Wed May 17 08:58:17 UTC 2023


From: Janga Rahul Kumar <janga.rahul.kumar at intel.com>

Add GEN12 INSTDONE initialization as per spec.

Cc: Matt Roper <matthew.d.roper at intel.com>
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
---
 lib/instdone.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 68 insertions(+), 1 deletion(-)

diff --git a/lib/instdone.c b/lib/instdone.c
index a83f8836..d1c92793 100644
--- a/lib/instdone.c
+++ b/lib/instdone.c
@@ -274,6 +274,30 @@
 # define GEN6_VS0_DONE			(1 << 1)
 # define GEN6_VF_DONE			(1 << 0)
 
+# define GEN12_TSG1_DONE		(1 << 24)
+# define GEN12_RCCFBC_CS_DONE		(1 << 23)
+# define GEN12_SDE_DONE			(1 << 22)
+# define GEN12_CS_DONE			(1 << 21)
+# define GEN12_RS_DONE			(1 << 20)
+# define GEN12_GAFD_DONE		(1 << 19)
+# define GEN12_GAFM_DONE		(1 << 18)
+# define GEN12_TSG0_DONE		(1 << 17)
+# define GEN12_VFE_DONE			(1 << 16)
+# define GEN12_GAFS_DONE		(1 << 15)
+# define GEN12_SVG_DONE			(1 << 14)
+# define GEN12_URBM_DONE		(1 << 13)
+# define GEN12_TDG0_DONE		(1 << 12)
+# define GEN12_TDG1_DONE		(1 << 11)
+# define GEN12_SF_DONE			(1 << 9)
+# define GEN12_CL_DONE			(1 << 8)
+# define GEN12_SOL_DONE			(1 << 7)
+# define GEN12_GS_DONE			(1 << 6)
+# define GEN12_DS_DONE			(1 << 5)
+# define GEN12_TE_DONE			(1 << 4)
+# define GEN12_HS_DONE			(1 << 3)
+# define GEN12_VS_DONE			(1 << 2)
+# define GEN12_VFG_DONE			(1 << 1)
+
 struct instdone_bit instdone_bits[MAX_INSTDONE_BITS];
 int num_instdone_bits = 0;
 
@@ -425,10 +449,53 @@ init_gen11_instdone(void)
 	init_gen8_instdone();
 }
 
+static void
+init_xehp_instdone(void)
+{
+	gen6_instdone1_bit(GEN12_RCCFBC_CS_DONE, "RCCFBC CS");
+	gen6_instdone1_bit(GEN12_CS_DONE, "CS");
+	gen6_instdone1_bit(GEN12_RS_DONE, "RS");
+	gen6_instdone1_bit(GEN12_VFE_DONE, "VFE");
+	gen6_instdone1_bit(GEN12_VFG_DONE, "VFG");
+}
+
+static void
+init_gen12_instdone(uint32_t devid)
+{
+	if (intel_graphics_ver(devid) >= IP_VER(12, 50)) {
+		init_xehp_instdone();
+	} else {
+		gen6_instdone1_bit(GEN12_TSG1_DONE, "TSG1");
+		gen6_instdone1_bit(GEN12_RCCFBC_CS_DONE, "RCCFBC CS");
+		gen6_instdone1_bit(GEN12_SDE_DONE, "SDE");
+		gen6_instdone1_bit(GEN12_CS_DONE, "CS");
+		gen6_instdone1_bit(GEN12_RS_DONE, "RS");
+		gen6_instdone1_bit(GEN12_GAFD_DONE, "GAFD");
+		gen6_instdone1_bit(GEN12_GAFM_DONE, "GAFM");
+		gen6_instdone1_bit(GEN12_TSG0_DONE, "TSG0");
+		gen6_instdone1_bit(GEN12_VFE_DONE, "VFE");
+		gen6_instdone1_bit(GEN12_GAFS_DONE, "GAFS");
+		gen6_instdone1_bit(GEN12_SVG_DONE, "SVG");
+		gen6_instdone1_bit(GEN12_URBM_DONE, "URBM");
+		gen6_instdone1_bit(GEN12_TDG0_DONE, "TDG0");
+		gen6_instdone1_bit(GEN12_TDG1_DONE, "TDG1");
+		gen6_instdone1_bit(GEN12_SF_DONE, "SF");
+		gen6_instdone1_bit(GEN12_CL_DONE, "CL");
+		gen6_instdone1_bit(GEN12_SOL_DONE, "SOL");
+		gen6_instdone1_bit(GEN12_GS_DONE, "GS");
+		gen6_instdone1_bit(GEN12_DS_DONE, "DS");
+		gen6_instdone1_bit(GEN12_TE_DONE, "TE");
+		gen6_instdone1_bit(GEN12_HS_DONE, "HS");
+		gen6_instdone1_bit(GEN12_VS_DONE, "VS");
+		gen6_instdone1_bit(GEN12_VFG_DONE, "VFG");
+	}
+}
 bool
 init_instdone_definitions(uint32_t devid)
 {
-	if (IS_GEN11(devid)) {
+	if (IS_GEN12(devid)) {
+		init_gen12_instdone(devid);
+	} else if (IS_GEN11(devid)) {
 		init_gen11_instdone();
 	} else if (IS_GEN8(devid) || IS_GEN9(devid) || IS_GEN10(devid)) {
 		init_gen8_instdone();
-- 
2.25.1



More information about the igt-dev mailing list