提交 3802c5cb 编写于 作者: L Lionel Landwerlin

drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs

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: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: NMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170803165812.2373-4-lionel.g.landwerlin@intel.com
上级 701f8231
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x000000a0 },
{ _MMIO(0x9888), 0x198b0000 }, { _MMIO(0x9888), 0x198b0000 },
{ _MMIO(0x9888), 0x078b0066 }, { _MMIO(0x9888), 0x078b0066 },
{ _MMIO(0x9888), 0x118b0000 }, { _MMIO(0x9888), 0x118b0000 },
...@@ -72,6 +73,7 @@ static const struct i915_oa_reg mux_config_test_oa[] = { ...@@ -72,6 +73,7 @@ static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9888), 0x4f800000 }, { _MMIO(0x9888), 0x4f800000 },
{ _MMIO(0x9888), 0x41800000 }, { _MMIO(0x9888), 0x41800000 },
{ _MMIO(0x9888), 0x31800000 }, { _MMIO(0x9888), 0x31800000 },
{ _MMIO(0x9840), 0x00000080 },
}; };
static ssize_t static ssize_t
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x19800000 }, { _MMIO(0x9888), 0x19800000 },
{ _MMIO(0x9888), 0x07800063 }, { _MMIO(0x9888), 0x07800063 },
{ _MMIO(0x9888), 0x11800000 }, { _MMIO(0x9888), 0x11800000 },
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x000000a0 },
{ _MMIO(0x9888), 0x59800000 }, { _MMIO(0x9888), 0x59800000 },
{ _MMIO(0x9888), 0x59800001 }, { _MMIO(0x9888), 0x59800001 },
{ _MMIO(0x9888), 0x338b0000 }, { _MMIO(0x9888), 0x338b0000 },
...@@ -71,6 +72,7 @@ static const struct i915_oa_reg mux_config_test_oa[] = { ...@@ -71,6 +72,7 @@ static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9888), 0x57800000 }, { _MMIO(0x9888), 0x57800000 },
{ _MMIO(0x1823a4), 0x00000000 }, { _MMIO(0x1823a4), 0x00000000 },
{ _MMIO(0x9888), 0x59800000 }, { _MMIO(0x9888), 0x59800000 },
{ _MMIO(0x9840), 0x00000080 },
}; };
static ssize_t static ssize_t
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x19800000 }, { _MMIO(0x9888), 0x19800000 },
{ _MMIO(0x9888), 0x07800063 }, { _MMIO(0x9888), 0x07800063 },
{ _MMIO(0x9888), 0x11800000 }, { _MMIO(0x9888), 0x11800000 },
......
...@@ -42,6 +42,7 @@ static const struct i915_oa_reg flex_eu_config_render_basic[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_render_basic[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x253a4), 0x01600000 }, { _MMIO(0x253a4), 0x01600000 },
{ _MMIO(0x25440), 0x00100000 }, { _MMIO(0x25440), 0x00100000 },
{ _MMIO(0x25128), 0x00000000 }, { _MMIO(0x25128), 0x00000000 },
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x11810000 }, { _MMIO(0x9888), 0x11810000 },
{ _MMIO(0x9888), 0x07810013 }, { _MMIO(0x9888), 0x07810013 },
{ _MMIO(0x9888), 0x1f810000 }, { _MMIO(0x9888), 0x1f810000 },
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x11810000 }, { _MMIO(0x9888), 0x11810000 },
{ _MMIO(0x9888), 0x07810013 }, { _MMIO(0x9888), 0x07810013 },
{ _MMIO(0x9888), 0x1f810000 }, { _MMIO(0x9888), 0x1f810000 },
......
...@@ -59,6 +59,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x11810000 }, { _MMIO(0x9888), 0x11810000 },
{ _MMIO(0x9888), 0x07810016 }, { _MMIO(0x9888), 0x07810016 },
{ _MMIO(0x9888), 0x1f810000 }, { _MMIO(0x9888), 0x1f810000 },
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x11810000 }, { _MMIO(0x9888), 0x11810000 },
{ _MMIO(0x9888), 0x07810013 }, { _MMIO(0x9888), 0x07810013 },
{ _MMIO(0x9888), 0x1f810000 }, { _MMIO(0x9888), 0x1f810000 },
......
...@@ -60,6 +60,7 @@ static const struct i915_oa_reg flex_eu_config_test_oa[] = { ...@@ -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[] = { static const struct i915_oa_reg mux_config_test_oa[] = {
{ _MMIO(0x9840), 0x00000080 },
{ _MMIO(0x9888), 0x11810000 }, { _MMIO(0x9888), 0x11810000 },
{ _MMIO(0x9888), 0x07810013 }, { _MMIO(0x9888), 0x07810013 },
{ _MMIO(0x9888), 0x1f810000 }, { _MMIO(0x9888), 0x1f810000 },
......
...@@ -1456,9 +1456,6 @@ static void config_oa_regs(struct drm_i915_private *dev_priv, ...@@ -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, static int hsw_enable_metric_set(struct drm_i915_private *dev_priv,
const struct i915_oa_config *oa_config) const struct i915_oa_config *oa_config)
{ {
I915_WRITE(GDT_CHICKEN_BITS, (I915_READ(GDT_CHICKEN_BITS) |
GT_NOA_ENABLE));
/* PRM: /* PRM:
* *
* OA unit is using “crclk” for its functionality. When trunk * 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, ...@@ -1818,12 +1815,8 @@ static int gen8_enable_metric_set(struct drm_i915_private *dev_priv,
if (ret) if (ret)
return ret; return ret;
I915_WRITE(GDT_CHICKEN_BITS, 0xA0);
config_oa_regs(dev_priv, oa_config->mux_regs, oa_config->mux_regs_len); 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, config_oa_regs(dev_priv, oa_config->b_counter_regs,
oa_config->b_counter_regs_len); oa_config->b_counter_regs_len);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册