[Intel-gfx] [PATCH v7 3/3] drm/i915: Implement I915_PERF_ADD/REMOVE_CONFIG interface
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Tue Jul 25 10:52:28 UTC 2017
Hi Andrzej,
Thanks for the feedback. Can you tell me if that following changes are
correct?
Cheers,
-
Lionel
On 25/07/17 10:06, Datczuk, Andrzej wrote:
> Hi Lionel,
>
> What about the corrected whitelist I sent you before? Without allowing those registers the patch for MDAPI is basically useless.
> FYI The whitelist from the patches I sent you contained merged ranges for gen7-9 platforms.
>
> Regards,
> Andrzej
>
>
> +static bool gen8_is_valid_flex_addr(struct drm_i915_private *dev_priv,
> +u32 addr) {
> + static const i915_reg_t flex_eu_regs[] = {
> + EU_PERF_CNTL0,
> + EU_PERF_CNTL1,
> + EU_PERF_CNTL2,
> + EU_PERF_CNTL3,
> + EU_PERF_CNTL4,
> + EU_PERF_CNTL5,
> + EU_PERF_CNTL6,
> + };
> + int i;
> +
> + for (i = 0; i < ARRAY_SIZE(flex_eu_regs); i++) {
> + if (flex_eu_regs[i].reg == addr)
> + return true;
> + }
> + return false;
> +}
> +
> +static bool gen7_is_valid_b_counter_addr(struct drm_i915_private
> +*dev_priv, u32 addr) {
> + return (addr >= 0x2380 && addr <= 0x27ac); }
Here I dropped 0x2b20 because it's an interruption register. It probably
should be left to its default value and only managed by the kernel.
Though I made a mistake as this should be addr >= 0x2374 && addr <= 0x27ac.
> +
> +static bool gen7_is_valid_mux_addr(struct drm_i915_private *dev_priv,
> +u32 addr) {
> + return addr == NOA_WRITE.reg ||
> + (addr >= 0xd0c && addr <= 0xd3c) ||
Arg, missing 0xd24/0xd28 here...
> + (addr >= 0x25100 && addr <= 0x2FB9C); }
> +
> +static bool hsw_is_valid_mux_addr(struct drm_i915_private *dev_priv,
> +u32 addr) {
> + return (addr >= 0x25100 && addr <= 0x2FF90) ||
> + gen7_is_valid_mux_addr(dev_priv, addr); }
> +
> +static bool chv_is_valid_mux_addr(struct drm_i915_private *dev_priv,
> +u32 addr) {
> + return (addr >= 0x182300 && addr <= 0x1823A4) ||
> + gen7_is_valid_mux_addr(dev_priv, addr); }
> +
> +
More information about the Intel-gfx
mailing list