The bspec was just updated with a couple corrections to the TGL MOCS
table.  Entries 16 and 17 are marked as reserved (overriding the value
we inherit from GEN11_MOCS_ENTRIES) and entry 61 shouldn't have the
LE_SCF bit applied.

Note that since we're intentionally/explicitly overriding table entries
from GEN11_MOCS_ENTRIES we should suppress the 'override-init' compiler
warnings for the TGL table.

v2:
 - Add a MOCS_ENTRY_UNUSED() and use it to declare the
   explicitly-reserved MOCS entries. (Lucas)
 - Move the warning suppression from the Makefile to a #pragma that only
   affects the TGL table. (Lucas)

Bspec: 45101
Fixes: 2ddf992179c4 ("drm/i915/tgl: Define MOCS entries for Tigerlake")
Cc: Tomasz Lis <[email protected]>
Cc: Lucas De Marchi <[email protected]>
Signed-off-by: Matt Roper <[email protected]>
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c 
b/drivers/gpu/drm/i915/gt/intel_mocs.c
index 6e881c735b20..4ae07650bfcb 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -91,6 +91,9 @@ struct drm_i915_mocs_table {
                .used = 1, \
        }
 
+#define MOCS_ENTRY_UNUSED(__idx) \
+       [__idx] = { .used = 0 }
+
 /*
  * MOCS tables
  *
@@ -241,14 +244,20 @@ static const struct drm_i915_mocs_entry 
broxton_mocs_table[] = {
                   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
                   L3_1_UC)
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Woverride-init"
 static const struct drm_i915_mocs_entry tigerlake_mocs_table[] = {
        /* Base - Error (Reserved for Non-Use) */
-       MOCS_ENTRY(0, 0x0, 0x0),
+       MOCS_ENTRY_UNUSED(0),
        /* Base - Reserved */
-       MOCS_ENTRY(1, 0x0, 0x0),
+       MOCS_ENTRY_UNUSED(1),
 
        GEN11_MOCS_ENTRIES,
 
+       /* Reserved (overrides values from GEN11_MOCS_ENTRIES) */
+       MOCS_ENTRY_UNUSED(16),
+       MOCS_ENTRY_UNUSED(17),
+
        /* Implicitly enable L1 - HDC:L1 + L3 + LLC */
        MOCS_ENTRY(48,
                   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3),
@@ -271,9 +280,10 @@ static const struct drm_i915_mocs_entry 
tigerlake_mocs_table[] = {
                   L3_1_UC),
        /* HW Special Case (Displayable) */
        MOCS_ENTRY(61,
-                  LE_1_UC | LE_TC_1_LLC | LE_SCF(1),
+                  LE_1_UC | LE_TC_1_LLC,
                   L3_3_WB),
 };
+#pragma GCC diagnostic pop
 
 static const struct drm_i915_mocs_entry icelake_mocs_table[] = {
        /* Base - Uncached (Deprecated) */
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to