Disable LLC caching of IPU buffers on Gen12+

Change-Id: I8da9aa0dcc41f90f1f9dcfd8b116a6b0dd58fc7d
diff --git a/Source/GmmLib/CachePolicy/GmmCachePolicyConditionals.h b/Source/GmmLib/CachePolicy/GmmCachePolicyConditionals.h
index 45b1414..cc452de 100644
--- a/Source/GmmLib/CachePolicy/GmmCachePolicyConditionals.h
+++ b/Source/GmmLib/CachePolicy/GmmCachePolicyConditionals.h
@@ -32,7 +32,8 @@
 #define _L3           (pGmmGlobalContext->GetGtSysInfo()->L3CacheSizeInKb)
 #define _LLC          (pGmmGlobalContext->GetGtSysInfo()->LLCCacheSizeInKb)
 #define _ELLC         (pGmmGlobalContext->GetGtSysInfo()->EdramSizeInKb)
+#define CAM$          (SKU(FtrCameraCaptureCaching))
 
 // Units are already in KB in the system information, so these helper macros need to account for that
 #define KB(N)         (N)
-#define MB(N)         (1024 * KB(N))
\ No newline at end of file
+#define MB(N)         (1024 * KB(N))
diff --git a/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h b/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
index 7d97ff2..4e5e791 100644
--- a/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
+++ b/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
@@ -292,4 +292,6 @@
 
 // BCS usages
 DEFINE_RESOURCE_USAGE( GMM_RESOURCE_USAGE_BLT_SOURCE )
-DEFINE_RESOURCE_USAGE( GMM_RESOURCE_USAGE_BLT_DESTINATION )
\ No newline at end of file
+DEFINE_RESOURCE_USAGE( GMM_RESOURCE_USAGE_BLT_DESTINATION )
+
+DEFINE_RESOURCE_USAGE( GMM_RESOURCE_USAGE_CAMERA_CAPTURE )
diff --git a/Source/GmmLib/CachePolicy/GmmGen10CachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen10CachePolicy.h
index b623631..9ed92f5 100755
--- a/Source/GmmLib/CachePolicy/GmmGen10CachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen10CachePolicy.h
@@ -228,4 +228,6 @@
 DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_XADAPTER_SHARED_RESOURCE                             , 0   , 0    , 0  , 0  , 0 ,     0,       0,      0,   0,    0);
 /**********************************************************************************/
 
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CAMERA_CAPTURE                                        , CAM$, 0    , 0  , 0  , CAM$ ,  0,       0,      0,   0,    0);
+
 #include "GmmCachePolicyUndefineConditionals.h"
diff --git a/Source/GmmLib/CachePolicy/GmmGen11CachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen11CachePolicy.h
index b654586..111b6bf 100644
--- a/Source/GmmLib/CachePolicy/GmmGen11CachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen11CachePolicy.h
@@ -277,4 +277,6 @@
 DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_XADAPTER_SHARED_RESOURCE                             , 0   , 0    , 0  , 0  , 0 ,    0,     0,       0,      0,    0,   0);
 /**********************************************************************************/
 
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CAMERA_CAPTURE                                        , CAM$, 0    , 0  , 0  , CAM$ , 0,     0,       0,      0,    0,   0);
+
 #include "GmmCachePolicyUndefineConditionals.h"
diff --git a/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h
index 776e4ad..bf17154 100644
--- a/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h
@@ -296,5 +296,7 @@
 DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_BLT_DESTINATION                                      , 0   , 0    , 0  , 0  , 0 ,    0,     0,       0,      0,    0,   0,    0,    NA );
 /**********************************************************************************/
 
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CAMERA_CAPTURE                                        , CAM$, 0    , 0  , 0  , CAM$ , 0,     0,       0,      0,    0,   0,    0,    NA );
+
 #include "GmmCachePolicyUndefineConditionals.h"
 
diff --git a/Source/GmmLib/CachePolicy/GmmGen8CachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen8CachePolicy.h
index 6a33c59..04b5cb5 100755
--- a/Source/GmmLib/CachePolicy/GmmGen8CachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen8CachePolicy.h
@@ -195,4 +195,6 @@
 DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_XADAPTER_SHARED_RESOURCE                     , 0   , 0    , 0  , 0  , 0);
 /**********************************************************************************/
 
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CAMERA_CAPTURE                                , CAM$ , 0    , 0  , 0  , CAM$ );
+
 #include "GmmCachePolicyUndefineConditionals.h"
diff --git a/Source/GmmLib/CachePolicy/GmmGen9CachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen9CachePolicy.h
index f168721..3b69d96 100755
--- a/Source/GmmLib/CachePolicy/GmmGen9CachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen9CachePolicy.h
@@ -242,6 +242,8 @@
 DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_XADAPTER_SHARED_RESOURCE                             , 0   , 0    , 0  , 0, UC );
 /**********************************************************************************/
 
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CAMERA_CAPTURE                                        , CAM$, 0    , 0  , CAM$ , WB );
+
 #undef UC
 #undef WB
 #include "GmmCachePolicyUndefineConditionals.h"
diff --git a/Source/inc/common/sku_wa.h b/Source/inc/common/sku_wa.h
index e83c1a6..0e78b97 100644
--- a/Source/inc/common/sku_wa.h
+++ b/Source/inc/common/sku_wa.h
@@ -97,6 +97,7 @@
         unsigned int   FtrFrameBufferLLC                : 1;  // Displayable Frame buffers cached in LLC
         unsigned int   FtrDriverFLR                     : 1;  // Enable Function Level Reset (Gen11+)
         unsigned int   FtrLocalMemory                   : 1;
+        unsigned int   FtrCameraCaptureCaching          : 1;
    };