* [PATCH] drm/i915: refactor register fw read/write macros for recent GENs
@ 2017-02-04 1:23 Daniele Ceraolo Spurio
2017-02-04 1:58 ` ✗ Fi.CI.BAT: failure for " Patchwork
2017-02-06 8:51 ` [PATCH] " Tvrtko Ursulin
0 siblings, 2 replies; 4+ messages in thread
From: Daniele Ceraolo Spurio @ 2017-02-04 1:23 UTC (permalink / raw)
To: intel-gfx
The only difference for the more recent of those macros is the version
of the *_reg_<read/write>_fw_domains function. Passing the function
prefix in allows us to re-use the same macro to generate functions for
different GENs and will make it easier to add new accessors in the future
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
---
drivers/gpu/drm/i915/intel_uncore.c | 40 ++++++++++---------------------------
1 file changed, 10 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 3d243fe..1ff8fd9 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -992,29 +992,19 @@ static inline void __force_wake_auto(struct drm_i915_private *dev_priv,
___force_wake_auto(dev_priv, fw_domains);
}
-#define __gen6_read(x) \
+#define __gen_read(func, x) \
static u##x \
-gen6_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
+func##_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
enum forcewake_domains fw_engine; \
GEN6_READ_HEADER(x); \
- fw_engine = __gen6_reg_read_fw_domains(offset); \
- if (fw_engine) \
- __force_wake_auto(dev_priv, fw_engine); \
- val = __raw_i915_read##x(dev_priv, reg); \
- GEN6_READ_FOOTER; \
-}
-
-#define __fwtable_read(x) \
-static u##x \
-fwtable_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
- enum forcewake_domains fw_engine; \
- GEN6_READ_HEADER(x); \
- fw_engine = __fwtable_reg_read_fw_domains(offset); \
+ fw_engine = __##func##_reg_read_fw_domains(offset); \
if (fw_engine) \
__force_wake_auto(dev_priv, fw_engine); \
val = __raw_i915_read##x(dev_priv, reg); \
GEN6_READ_FOOTER; \
}
+#define __gen6_read(x) __gen_read(gen6, x)
+#define __fwtable_read(x) __gen_read(fwtable, x)
#define __gen9_decoupled_read(x) \
static u##x \
@@ -1115,29 +1105,19 @@ static inline void __force_wake_auto(struct drm_i915_private *dev_priv,
GEN6_WRITE_FOOTER; \
}
-#define __gen8_write(x) \
+#define __gen_write(func, x) \
static void \
-gen8_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
+func##_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
enum forcewake_domains fw_engine; \
GEN6_WRITE_HEADER; \
- fw_engine = __gen8_reg_write_fw_domains(offset); \
- if (fw_engine) \
- __force_wake_auto(dev_priv, fw_engine); \
- __raw_i915_write##x(dev_priv, reg, val); \
- GEN6_WRITE_FOOTER; \
-}
-
-#define __fwtable_write(x) \
-static void \
-fwtable_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
- enum forcewake_domains fw_engine; \
- GEN6_WRITE_HEADER; \
- fw_engine = __fwtable_reg_write_fw_domains(offset); \
+ fw_engine = __##func##_reg_write_fw_domains(offset); \
if (fw_engine) \
__force_wake_auto(dev_priv, fw_engine); \
__raw_i915_write##x(dev_priv, reg, val); \
GEN6_WRITE_FOOTER; \
}
+#define __gen8_write(x) __gen_write(gen8, x)
+#define __fwtable_write(x) __gen_write(fwtable, x)
#define __gen9_decoupled_write(x) \
static void \
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 4+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: refactor register fw read/write macros for recent GENs
2017-02-04 1:23 [PATCH] drm/i915: refactor register fw read/write macros for recent GENs Daniele Ceraolo Spurio
@ 2017-02-04 1:58 ` Patchwork
2017-02-06 8:51 ` [PATCH] " Tvrtko Ursulin
1 sibling, 0 replies; 4+ messages in thread
From: Patchwork @ 2017-02-04 1:58 UTC (permalink / raw)
To: daniele.ceraolospurio; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: refactor register fw read/write macros for recent GENs
URL : https://patchwork.freedesktop.org/series/19094/
State : failure
== Summary ==
Series 19094v1 drm/i915: refactor register fw read/write macros for recent GENs
https://patchwork.freedesktop.org/api/1.0/series/19094/revisions/1/mbox/
Test gem_exec_fence:
Subgroup await-hang-default:
pass -> FAIL (fi-skl-6260u)
fi-bdw-5557u total:252 pass:238 dwarn:0 dfail:0 fail:0 skip:14
fi-bsw-n3050 total:252 pass:213 dwarn:0 dfail:0 fail:0 skip:39
fi-bxt-j4205 total:252 pass:230 dwarn:0 dfail:0 fail:0 skip:22
fi-bxt-t5700 total:83 pass:70 dwarn:0 dfail:0 fail:0 skip:12
fi-byt-j1900 total:252 pass:225 dwarn:0 dfail:0 fail:0 skip:27
fi-byt-n2820 total:252 pass:221 dwarn:0 dfail:0 fail:0 skip:31
fi-hsw-4770 total:252 pass:233 dwarn:0 dfail:0 fail:0 skip:19
fi-hsw-4770r total:252 pass:233 dwarn:0 dfail:0 fail:0 skip:19
fi-ilk-650 total:14 pass:13 dwarn:0 dfail:0 fail:0 skip:0
fi-ivb-3520m total:252 pass:231 dwarn:0 dfail:0 fail:0 skip:21
fi-ivb-3770 total:252 pass:231 dwarn:0 dfail:0 fail:0 skip:21
fi-kbl-7500u total:252 pass:229 dwarn:0 dfail:0 fail:2 skip:21
fi-skl-6260u total:252 pass:238 dwarn:0 dfail:0 fail:1 skip:13
fi-skl-6700hq total:252 pass:232 dwarn:0 dfail:0 fail:0 skip:20
fi-skl-6700k total:252 pass:227 dwarn:4 dfail:0 fail:0 skip:21
fi-skl-6770hq total:252 pass:239 dwarn:0 dfail:0 fail:0 skip:13
fi-snb-2520m total:252 pass:221 dwarn:0 dfail:0 fail:0 skip:31
fi-snb-2600 total:252 pass:220 dwarn:0 dfail:0 fail:0 skip:32
7d165238a46e6376f77bad1f7f54879bb414cb23 drm-tip: 2017y-02m-03d-17h-56m-24s UTC integration manifest
b1529e3 drm/i915: refactor register fw read/write macros for recent GENs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3703/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/i915: refactor register fw read/write macros for recent GENs
2017-02-04 1:23 [PATCH] drm/i915: refactor register fw read/write macros for recent GENs Daniele Ceraolo Spurio
2017-02-04 1:58 ` ✗ Fi.CI.BAT: failure for " Patchwork
@ 2017-02-06 8:51 ` Tvrtko Ursulin
2017-02-06 8:56 ` Chris Wilson
1 sibling, 1 reply; 4+ messages in thread
From: Tvrtko Ursulin @ 2017-02-06 8:51 UTC (permalink / raw)
To: Daniele Ceraolo Spurio, intel-gfx
On 04/02/2017 01:23, Daniele Ceraolo Spurio wrote:
> The only difference for the more recent of those macros is the version
> of the *_reg_<read/write>_fw_domains function. Passing the function
> prefix in allows us to re-use the same macro to generate functions for
> different GENs and will make it easier to add new accessors in the future
>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> ---
> drivers/gpu/drm/i915/intel_uncore.c | 40 ++++++++++---------------------------
> 1 file changed, 10 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 3d243fe..1ff8fd9 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -992,29 +992,19 @@ static inline void __force_wake_auto(struct drm_i915_private *dev_priv,
> ___force_wake_auto(dev_priv, fw_domains);
> }
>
> -#define __gen6_read(x) \
> +#define __gen_read(func, x) \
> static u##x \
> -gen6_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
> +func##_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
> enum forcewake_domains fw_engine; \
> GEN6_READ_HEADER(x); \
> - fw_engine = __gen6_reg_read_fw_domains(offset); \
> - if (fw_engine) \
> - __force_wake_auto(dev_priv, fw_engine); \
> - val = __raw_i915_read##x(dev_priv, reg); \
> - GEN6_READ_FOOTER; \
> -}
> -
> -#define __fwtable_read(x) \
> -static u##x \
> -fwtable_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
> - enum forcewake_domains fw_engine; \
> - GEN6_READ_HEADER(x); \
> - fw_engine = __fwtable_reg_read_fw_domains(offset); \
> + fw_engine = __##func##_reg_read_fw_domains(offset); \
> if (fw_engine) \
> __force_wake_auto(dev_priv, fw_engine); \
> val = __raw_i915_read##x(dev_priv, reg); \
> GEN6_READ_FOOTER; \
> }
> +#define __gen6_read(x) __gen_read(gen6, x)
> +#define __fwtable_read(x) __gen_read(fwtable, x)
>
> #define __gen9_decoupled_read(x) \
> static u##x \
> @@ -1115,29 +1105,19 @@ static inline void __force_wake_auto(struct drm_i915_private *dev_priv,
> GEN6_WRITE_FOOTER; \
> }
>
> -#define __gen8_write(x) \
> +#define __gen_write(func, x) \
> static void \
> -gen8_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
> +func##_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
> enum forcewake_domains fw_engine; \
> GEN6_WRITE_HEADER; \
> - fw_engine = __gen8_reg_write_fw_domains(offset); \
> - if (fw_engine) \
> - __force_wake_auto(dev_priv, fw_engine); \
> - __raw_i915_write##x(dev_priv, reg, val); \
> - GEN6_WRITE_FOOTER; \
> -}
> -
> -#define __fwtable_write(x) \
> -static void \
> -fwtable_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
> - enum forcewake_domains fw_engine; \
> - GEN6_WRITE_HEADER; \
> - fw_engine = __fwtable_reg_write_fw_domains(offset); \
> + fw_engine = __##func##_reg_write_fw_domains(offset); \
> if (fw_engine) \
> __force_wake_auto(dev_priv, fw_engine); \
> __raw_i915_write##x(dev_priv, reg, val); \
> GEN6_WRITE_FOOTER; \
> }
> +#define __gen8_write(x) __gen_write(gen8, x)
> +#define __fwtable_write(x) __gen_write(fwtable, x)
>
> #define __gen9_decoupled_write(x) \
> static void \
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/i915: refactor register fw read/write macros for recent GENs
2017-02-06 8:51 ` [PATCH] " Tvrtko Ursulin
@ 2017-02-06 8:56 ` Chris Wilson
0 siblings, 0 replies; 4+ messages in thread
From: Chris Wilson @ 2017-02-06 8:56 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
On Mon, Feb 06, 2017 at 08:51:36AM +0000, Tvrtko Ursulin wrote:
>
> On 04/02/2017 01:23, Daniele Ceraolo Spurio wrote:
> >The only difference for the more recent of those macros is the version
> >of the *_reg_<read/write>_fw_domains function. Passing the function
> >prefix in allows us to re-use the same macro to generate functions for
> >different GENs and will make it easier to add new accessors in the future
> >
> >Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Thanks for the patch and review, pushed.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-02-06 8:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-04 1:23 [PATCH] drm/i915: refactor register fw read/write macros for recent GENs Daniele Ceraolo Spurio
2017-02-04 1:58 ` ✗ Fi.CI.BAT: failure for " Patchwork
2017-02-06 8:51 ` [PATCH] " Tvrtko Ursulin
2017-02-06 8:56 ` Chris Wilson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.