drm/i915: Add support to return CNL specific reserved WOPCM size
authorJackie Li <[email protected]>
Wed, 14 Mar 2018 00:32:51 +0000 (17:32 -0700)
committerJoonas Lahtinen <[email protected]>
Wed, 14 Mar 2018 13:35:36 +0000 (15:35 +0200)
CNL has its specific reserved GuC WOPCM size for RC6 and other hardware
contexts.

This patch updates the code to return CNL specific reserved GuC WOPCM size
for RC6 and other hardware contexts so that the GuC WOPCM size can be
calculated correctly for CNL.

v9:
 - Created a new patch for these changes originally made in v8 4/6 patch of
   this series (Sagar/Michal)

v10:
 - Used if-else ladder to the returning of context sizes (Joonas)

v11:
 - Removed GUC_ prefix from context size macro (Michal)

v13:
  - Updated the ordering of s-o-b/cc/r-b tags (Sagar)

Bspec: 12690

Signed-off-by: Jackie Li <[email protected]>
Cc: Sagar Arun Kamble <[email protected]>
Cc: Michal Wajdeczko <[email protected]>
Cc: Chris Wilson <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Reviewed-by: Joonas Lahtinen <[email protected]> (v9)
Reviewed-by: Michal Wajdeczko <[email protected]> (v11)
Reviewed-by: Joonas Lahtinen <[email protected]> (v12)
Reviewed-by: Joonas Lahtinen <[email protected]>
Signed-off-by: Joonas Lahtinen <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
drivers/gpu/drm/i915/intel_wopcm.c

index 7b150d580d4a3703fcbe12dca9d57459dc478fb5..a29e0c9e60a7137d3a62d2f3d15fae4b2013f68c 100644 (file)
@@ -54,6 +54,8 @@
 
 /* 24KB at the end of WOPCM is reserved for RC6 CTX on BXT. */
 #define BXT_WOPCM_RC6_CTX_RESERVED     (24 * 1024)
+/* 36KB WOPCM reserved at the end of WOPCM on CNL. */
+#define CNL_WOPCM_HW_CTX_RESERVED      (36 * 1024)
 
 /* 128KB from GUC_WOPCM_RESERVED is reserved for FW on Gen9. */
 #define GEN9_GUC_FW_RESERVED   (128 * 1024)
@@ -76,6 +78,8 @@ static inline u32 context_reserved_size(struct drm_i915_private *i915)
 {
        if (IS_GEN9_LP(i915))
                return BXT_WOPCM_RC6_CTX_RESERVED;
+       else if (INTEL_GEN(i915) >= 10)
+               return CNL_WOPCM_HW_CTX_RESERVED;
        else
                return 0;
 }