[Intel-gfx] [PATCH i-g-t 24/26] mediafill/skl: Follow spec to configure FORCE_MEDIA_AWAKE in PIPELINE_SELECTION

Damien Lespiau damien.lespiau at intel.com
Fri Sep 26 16:03:22 CEST 2014


From: Zhao Yakui <yakui.zhao at intel.com>

The FORCE_MEDIA_AWAKE bit is added for the PIPELINE_SELECTION command and
some instructions requires that the media enginee is awake.

Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky at intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
---
 lib/gen8_media.h      | 7 +++++++
 lib/media_fill_gen9.c | 9 ++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/lib/gen8_media.h b/lib/gen8_media.h
index d1df8b9..f654215 100644
--- a/lib/gen8_media.h
+++ b/lib/gen8_media.h
@@ -374,4 +374,11 @@ struct gen8_surface_state
 
 #define GEN9_PIPELINE_SELECTION_MASK		(3 << 8)
 
+/*  If enabled, it will force awake media enginee and the following instructions
+ *  will require that the media enginee is awake.
+ */
+#define GEN9_FORCE_MEDIA_AWAKE_DISABLE		(0 << 5)
+#define GEN9_FORCE_MEDIA_AWAKE_ENABLE		(1 << 5)
+#define GEN9_FORCE_MEDIA_AWAKE_MASK		(1 << 13)
+
 #endif /* GEN8_MEDIA_H */
diff --git a/lib/media_fill_gen9.c b/lib/media_fill_gen9.c
index df0407d..4ecf268 100644
--- a/lib/media_fill_gen9.c
+++ b/lib/media_fill_gen9.c
@@ -363,7 +363,9 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
 	/* media pipeline */
 	batch->ptr = batch->buffer;
 	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
-			GEN9_PIPELINE_SELECTION_MASK);
+			GEN9_FORCE_MEDIA_AWAKE_ENABLE |
+			GEN9_PIPELINE_SELECTION_MASK |
+			GEN9_FORCE_MEDIA_AWAKE_MASK);
 	gen9_emit_state_base_address(batch);
 
 	gen8_emit_vfe_state(batch);
@@ -374,6 +376,11 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
 
 	gen8_emit_media_objects(batch, x, y, width, height);
 
+	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
+			GEN9_FORCE_MEDIA_AWAKE_DISABLE |
+			GEN9_PIPELINE_SELECTION_MASK |
+			GEN9_FORCE_MEDIA_AWAKE_MASK);
+
 	OUT_BATCH(MI_BATCH_BUFFER_END);
 
 	batch_end = batch_align(batch, 8);
-- 
1.8.3.1




More information about the Intel-gfx mailing list