drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 3 Aug 2017 16:58:09 +0000 (17:58 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 3 Aug 2017 17:18:44 +0000 (18:18 +0100)
There will be a need for userspaces configurations to set this
register. We can apply the same model inside the kernel for test
configs.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170803165812.2373-4-lionel.g.landwerlin@intel.com
drivers/gpu/drm/i915/i915_oa_bdw.c
drivers/gpu/drm/i915/i915_oa_bxt.c
drivers/gpu/drm/i915/i915_oa_chv.c
drivers/gpu/drm/i915/i915_oa_glk.c
drivers/gpu/drm/i915/i915_oa_hsw.c
drivers/gpu/drm/i915/i915_oa_kblgt2.c
drivers/gpu/drm/i915/i915_oa_kblgt3.c
drivers/gpu/drm/i915/i915_oa_sklgt2.c
drivers/gpu/drm/i915/i915_oa_sklgt3.c
drivers/gpu/drm/i915/i915_oa_sklgt4.c
drivers/gpu/drm/i915/i915_perf.c

index 187067001179017c3a6e53c8e0c80de01e41050c..abdf4d0abccebea3d128a2de45fead2344cffc1e 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x000000a0 },
        { _MMIO(0x9888), 0x198b0000 },
        { _MMIO(0x9888), 0x078b0066 },
        { _MMIO(0x9888), 0x118b0000 },
@@ -72,6 +73,7 @@ static const struct i915_oa_reg mux_config_test_oa[] = {
        { _MMIO(0x9888), 0x4f800000 },
        { _MMIO(0x9888), 0x41800000 },
        { _MMIO(0x9888), 0x31800000 },
+       { _MMIO(0x9840), 0x00000080 },
 };
 
 static ssize_t
index d52074429def7a1b06007e7c01113177a41f095f..b69b900de0fe168f4d28f1e8d84abcc3be4329d6 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x19800000 },
        { _MMIO(0x9888), 0x07800063 },
        { _MMIO(0x9888), 0x11800000 },
index b4832a0fefaaccff3c09462b80eced24ae3d660a..322a3f94cd16776140a9719b8ad74fc71e1abe32 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x000000a0 },
        { _MMIO(0x9888), 0x59800000 },
        { _MMIO(0x9888), 0x59800001 },
        { _MMIO(0x9888), 0x338b0000 },
@@ -71,6 +72,7 @@ static const struct i915_oa_reg mux_config_test_oa[] = {
        { _MMIO(0x9888), 0x57800000 },
        { _MMIO(0x1823a4), 0x00000000 },
        { _MMIO(0x9888), 0x59800000 },
+       { _MMIO(0x9840), 0x00000080 },
 };
 
 static ssize_t
index f0dbab5d19e085b3c336bf788edfc7fd037883ca..4ee527e4c926534072466b892010245cf57223fc 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x19800000 },
        { _MMIO(0x9888), 0x07800063 },
        { _MMIO(0x9888), 0x11800000 },
index 867ec16dd831a37d64088df476a9d1848a39abe4..56b03773bb9d7d3d2246cffe70f9b75a068db0a5 100644 (file)
@@ -42,6 +42,7 @@ static const struct i915_oa_reg flex_eu_config_render_basic[] = {
 };
 
 static const struct i915_oa_reg mux_config_render_basic[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x253a4), 0x01600000 },
        { _MMIO(0x25440), 0x00100000 },
        { _MMIO(0x25128), 0x00000000 },
index 2e8700c742275da25a7acf78a1058fbccc172f0a..b6e7cc77413690402fc9e898c3332633f6a8dec4 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x11810000 },
        { _MMIO(0x9888), 0x07810013 },
        { _MMIO(0x9888), 0x1f810000 },
index ea524e024c728454df51f9284901c8ea2460d964..5576afdd9a7e453e9916ccf40d44fce1a8bb40b8 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x11810000 },
        { _MMIO(0x9888), 0x07810013 },
        { _MMIO(0x9888), 0x1f810000 },
index 93267e55f1900d4d1b64fb88ebf8748d8d3774c3..890d55879946aad9287d0e012cf1971cc9e355f0 100644 (file)
@@ -59,6 +59,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x11810000 },
        { _MMIO(0x9888), 0x07810016 },
        { _MMIO(0x9888), 0x1f810000 },
index 2e342b4bc3a5628b081d1a78633692c89e4f06be..85e51addf86aaf6a936789c2784b6180a1b767e5 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x11810000 },
        { _MMIO(0x9888), 0x07810013 },
        { _MMIO(0x9888), 0x1f810000 },
index f933f497c15ae3f5879101a6dc6ca4ece86c6cef..bce031ee4445f49fd156ab6bae6b0dc75e38e648 100644 (file)
@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = {
 };
 
 static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
        { _MMIO(0x9888), 0x11810000 },
        { _MMIO(0x9888), 0x07810013 },
        { _MMIO(0x9888), 0x1f810000 },
index 7ca03351f5bc2fafa12dce46fa62933f4c34f242..f1993bbfd4fa18ed07fe6f39eccabde104a1a923 100644 (file)
@@ -1456,9 +1456,6 @@ static void config_oa_regs(struct drm_i915_private *dev_priv,
 static int hsw_enable_metric_set(struct drm_i915_private *dev_priv,
                                 const struct i915_oa_config *oa_config)
 {
-       I915_WRITE(GDT_CHICKEN_BITS, (I915_READ(GDT_CHICKEN_BITS) |
-                                     GT_NOA_ENABLE));
-
        /* PRM:
         *
         * OA unit is using “crclk” for its functionality. When trunk
@@ -1818,12 +1815,8 @@ static int gen8_enable_metric_set(struct drm_i915_private *dev_priv,
        if (ret)
                return ret;
 
-       I915_WRITE(GDT_CHICKEN_BITS, 0xA0);
-
        config_oa_regs(dev_priv, oa_config->mux_regs, oa_config->mux_regs_len);
 
-       I915_WRITE(GDT_CHICKEN_BITS, 0x80);
-
        config_oa_regs(dev_priv, oa_config->b_counter_regs,
                       oa_config->b_counter_regs_len);