From: Deepak S <deepak.s@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 8/8] drm/i915: Enum forcewake domains and domain identifiers
Date: Fri, 12 Dec 2014 18:51:53 +0530 [thread overview]
Message-ID: <548AEBF1.2030302@linux.intel.com> (raw)
In-Reply-To: <1418125588-20072-1-git-send-email-mika.kuoppala@intel.com>
On Tuesday 09 December 2014 05:16 PM, Mika Kuoppala wrote:
> Make the domains and domain identifiers enums. To emphasize
> the difference in order to avoid mistakes.
>
> Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 41 +++++++++++++++++----------------
> drivers/gpu/drm/i915/intel_uncore.c | 45 +++++++++++++++++++------------------
> 2 files changed, 45 insertions(+), 41 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 0d47397..5c6c372 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -533,11 +533,28 @@ struct drm_i915_display_funcs {
> void (*enable_backlight)(struct intel_connector *connector);
> };
>
> +enum fw_domain_id {
> + FW_DOMAIN_ID_RENDER = 0,
> + FW_DOMAIN_ID_BLITTER,
> + FW_DOMAIN_ID_MEDIA,
> +
> + FW_DOMAIN_ID_COUNT
> +};
> +
> +enum fw_domains {
> + FORCEWAKE_RENDER = (1 << FW_DOMAIN_ID_RENDER),
> + FORCEWAKE_BLITTER = (1 << FW_DOMAIN_ID_BLITTER),
> + FORCEWAKE_MEDIA = (1 << FW_DOMAIN_ID_MEDIA),
> + FORCEWAKE_ALL = (FORCEWAKE_RENDER |
> + FORCEWAKE_BLITTER |
> + FORCEWAKE_MEDIA)
> +};
> +
> struct intel_uncore_funcs {
> void (*force_wake_get)(struct drm_i915_private *dev_priv,
> - int fw_engine);
> + enum fw_domains domains);
> void (*force_wake_put)(struct drm_i915_private *dev_priv,
> - int fw_engine);
> + enum fw_domains domains);
>
> uint8_t (*mmio_readb)(struct drm_i915_private *dev_priv, off_t offset, bool trace);
> uint16_t (*mmio_readw)(struct drm_i915_private *dev_priv, off_t offset, bool trace);
> @@ -554,25 +571,17 @@ struct intel_uncore_funcs {
> uint64_t val, bool trace);
> };
>
> -enum {
> - FW_DOMAIN_ID_RENDER = 0,
> - FW_DOMAIN_ID_BLITTER,
> - FW_DOMAIN_ID_MEDIA,
> -
> - FW_DOMAIN_ID_COUNT
> -};
> -
> struct intel_uncore {
> spinlock_t lock; /** lock is also taken in irq contexts. */
>
> struct intel_uncore_funcs funcs;
>
> unsigned fifo_count;
> - unsigned fw_domains;
> + enum fw_domains fw_domains;
>
> struct intel_uncore_forcewake_domain {
> struct drm_i915_private *i915;
> - int id;
> + enum fw_domain_id id;
> unsigned wake_count;
> struct timer_list timer;
> u32 reg_set;
> @@ -582,12 +591,6 @@ struct intel_uncore {
> u32 reg_post;
> u32 val_reset;
> } fw_domain[FW_DOMAIN_ID_COUNT];
> -#define FORCEWAKE_RENDER (1 << FW_DOMAIN_ID_RENDER)
> -#define FORCEWAKE_BLITTER (1 << FW_DOMAIN_ID_BLITTER)
> -#define FORCEWAKE_MEDIA (1 << FW_DOMAIN_ID_MEDIA)
> -#define FORCEWAKE_ALL (FORCEWAKE_RENDER | \
> - FORCEWAKE_BLITTER | \
> - FORCEWAKE_MEDIA)
> };
>
> /* Iterate over initialised fw domains */
> @@ -2449,7 +2452,7 @@ extern void intel_uncore_init(struct drm_device *dev);
> extern void intel_uncore_check_errors(struct drm_device *dev);
> extern void intel_uncore_fini(struct drm_device *dev);
> extern void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore);
> -const char *intel_uncore_forcewake_domain_to_str(const int domain_id);
> +const char *intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id);
> void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
> unsigned fw_domains);
> void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv,
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 509b9c9..e802486 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -49,7 +49,7 @@ static const char * const forcewake_domain_names[] = {
> };
>
> const char *
> -intel_uncore_forcewake_domain_to_str(const int id)
> +intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id)
> {
> BUILD_BUG_ON((sizeof(forcewake_domain_names)/sizeof(const char *)) !=
> FW_DOMAIN_ID_COUNT);
> @@ -122,10 +122,10 @@ fw_domain_posting_read(const struct intel_uncore_forcewake_domain *d)
> }
>
> static void
> -fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains)
> +fw_domains_get(struct drm_i915_private *dev_priv, enum fw_domains fw_domains)
> {
> struct intel_uncore_forcewake_domain *d;
> - int id;
> + enum fw_domain_id id;
>
> for_each_fw_domain_mask(d, fw_domains, dev_priv, id) {
> fw_domain_wait_ack_clear(d);
> @@ -136,10 +136,10 @@ fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains)
> }
>
> static void
> -fw_domains_put(struct drm_i915_private *dev_priv, int fw_domains)
> +fw_domains_put(struct drm_i915_private *dev_priv, enum fw_domains fw_domains)
> {
> struct intel_uncore_forcewake_domain *d;
> - int id;
> + enum fw_domain_id id;
>
> for_each_fw_domain_mask(d, fw_domains, dev_priv, id)
> fw_domain_put(d);
> @@ -149,7 +149,7 @@ static void
> fw_domains_posting_read(struct drm_i915_private *dev_priv)
> {
> struct intel_uncore_forcewake_domain *d;
> - int id;
> + enum fw_domain_id id;
>
> /* No need to do for all, just do for first found */
> for_each_fw_domain(d, dev_priv, id) {
> @@ -159,10 +159,10 @@ fw_domains_posting_read(struct drm_i915_private *dev_priv)
> }
>
> static void
> -fw_domains_reset(struct drm_i915_private *dev_priv, const unsigned fw_domains)
> +fw_domains_reset(struct drm_i915_private *dev_priv, enum fw_domains fw_domains)
> {
> struct intel_uncore_forcewake_domain *d;
> - int id;
> + enum fw_domain_id id;
>
> for_each_fw_domain_mask(d, fw_domains, dev_priv, id)
> fw_domain_reset(d);
> @@ -181,7 +181,7 @@ static void __gen6_gt_wait_for_thread_c0(struct drm_i915_private *dev_priv)
> }
>
> static void fw_domains_get_with_thread_status(struct drm_i915_private *dev_priv,
> - int fw_domains)
> + enum fw_domains fw_domains)
> {
> fw_domains_get(dev_priv, fw_domains);
>
> @@ -199,7 +199,7 @@ static void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv)
> }
>
> static void fw_domains_put_with_fifo(struct drm_i915_private *dev_priv,
> - int fw_domains)
> + enum fw_domains fw_domains)
> {
> fw_domains_put(dev_priv, fw_domains);
> gen6_gt_check_fifodbg(dev_priv);
> @@ -251,9 +251,10 @@ static void intel_uncore_fw_release_timer(unsigned long arg)
> void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
> - unsigned long irqflags, fw = 0;
> + unsigned long irqflags;
> struct intel_uncore_forcewake_domain *domain;
> - int id;
> + enum fw_domain_id id;
> + enum fw_domains fw = 0;
>
> /* Hold uncore.lock across reset to prevent any register access
> * with forcewake not set correctly
> @@ -329,11 +330,11 @@ void intel_uncore_sanitize(struct drm_device *dev)
> * intel_uncore_forcewake_put() at the end of the sequence.
> */
> void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
> - unsigned fw_domains)
> + enum fw_domains fw_domains)
> {
> unsigned long irqflags;
> struct intel_uncore_forcewake_domain *domain;
> - int id;
> + enum fw_domain_id id;
>
> if (!dev_priv->uncore.funcs.force_wake_get)
> return;
> @@ -358,11 +359,11 @@ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
> * see intel_uncore_forcewake_get()
> */
> void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv,
> - unsigned fw_domains)
> + enum fw_domains fw_domains)
> {
> unsigned long irqflags;
> struct intel_uncore_forcewake_domain *domain;
> - int id;
> + enum fw_domain_id id;
>
> if (!dev_priv->uncore.funcs.force_wake_put)
> return;
> @@ -386,7 +387,7 @@ void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv,
> void assert_forcewakes_inactive(struct drm_i915_private *dev_priv)
> {
> struct intel_uncore_forcewake_domain *domain;
> - int id;
> + enum fw_domain_id id;
>
> if (!dev_priv->uncore.funcs.force_wake_get)
> return;
> @@ -559,10 +560,10 @@ __gen2_read(64)
> return val
>
> static inline void __force_wake_get(struct drm_i915_private *dev_priv,
> - unsigned fw_domains)
> + enum fw_domains fw_domains)
> {
> struct intel_uncore_forcewake_domain *domain;
> - int id;
> + enum fw_domain_id id;
>
> if (WARN_ON(!fw_domains))
> return;
> @@ -626,7 +627,7 @@ chv_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \
> #define __gen9_read(x) \
> static u##x \
> gen9_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \
> - unsigned fw_engine; \
> + enum fw_domains fw_engine; \
> GEN6_READ_HEADER(x); \
> if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg))) \
> fw_engine = 0; \
> @@ -826,7 +827,7 @@ static bool is_gen9_shadowed(struct drm_i915_private *dev_priv, u32 reg)
> static void \
> gen9_write##x(struct drm_i915_private *dev_priv, off_t reg, u##x val, \
> bool trace) { \
> - unsigned fw_engine; \
> + enum fw_domains fw_engine; \
> GEN6_WRITE_HEADER; \
> if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg)) || \
> is_gen9_shadowed(dev_priv, reg)) \
> @@ -892,7 +893,7 @@ do { \
>
>
> static void fw_domain_init(struct drm_i915_private *dev_priv,
> - u32 domain_id, u32 reg_set, u32 reg_ack)
> + enum fw_domain_id domain_id, u32 reg_set, u32 reg_ack)
> {
> struct intel_uncore_forcewake_domain *d;
>
Looks fine
Reviewed-by: Deepak S<deepak.s@linux.intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2014-12-11 13:24 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-08 18:27 [PATCH 1/8] drm/i915: Rebalance runtime pm vs forcewake Mika Kuoppala
2014-12-08 18:27 ` [PATCH 2/8] drm/i915: Assert that runtime pm is active on user fw access Mika Kuoppala
2014-12-12 11:39 ` Deepak S
2014-12-11 11:53 ` Chris Wilson
2014-12-12 11:59 ` Deepak S
2014-12-08 18:27 ` [PATCH 3/8] drm/i915: Skip uncore lock on earlier gens Mika Kuoppala
2014-12-12 11:57 ` Deepak S
2014-12-08 18:27 ` [PATCH 4/8] drm/i915: Reduce duplicated forcewake logic Mika Kuoppala
2014-12-12 12:48 ` Deepak S
2014-12-16 15:26 ` Mika Kuoppala
2014-12-08 18:27 ` [PATCH 5/8] drm/i915: Consolidate forcewake code Mika Kuoppala
2014-12-12 13:13 ` Deepak S
2014-12-08 18:27 ` [PATCH 6/8] drm/i915: Make vlv and chv forcewake put generic Mika Kuoppala
2014-12-12 13:16 ` Deepak S
2014-12-08 18:27 ` [PATCH 7/8] drm/i915: Rename the forcewake get/put functions Mika Kuoppala
2014-12-12 13:19 ` Deepak S
2014-12-08 18:27 ` [PATCH 8/8] drm/i915: Follow the forcewake domains type on hw accessors Mika Kuoppala
2014-12-09 11:46 ` [PATCH 8/8] drm/i915: Enum forcewake domains and domain identifiers Mika Kuoppala
2014-12-09 13:32 ` Jani Nikula
2014-12-09 13:36 ` Daniel Vetter
2014-12-09 15:37 ` Mika Kuoppala
2014-12-12 13:21 ` Deepak S [this message]
2014-12-09 23:29 ` [PATCH 8/8] drm/i915: Follow the forcewake domains type on hw accessors shuang.he
2014-12-12 13:20 ` Deepak S
2014-12-12 10:00 ` [PATCH 1/8] drm/i915: Rebalance runtime pm vs forcewake Deepak S
2014-12-11 10:15 ` Chris Wilson
2014-12-12 11:24 ` Deepak S
2014-12-15 8:46 ` Daniel Vetter
2014-12-12 16:22 ` Paulo Zanoni
2014-12-12 16:45 ` Chris Wilson
-- strict thread matches above, loose matches on Subject: below --
2014-12-09 12:59 [PATCH 00/10] Prep work patches for GPU scheduler John.C.Harrison
2014-12-09 12:59 ` [PATCH 01/10] drm/i915: Rename 'flags' to 'dispatch_flags' for better code reading John.C.Harrison
2014-12-09 12:59 ` [PATCH 02/10] drm/i915: Add missing trace point to LRC execbuff code path John.C.Harrison
2014-12-09 12:59 ` [PATCH 03/10] drm/i915: Updating assorted register and status page definitions John.C.Harrison
2014-12-10 10:40 ` Daniel Vetter
2014-12-10 16:37 ` Dave Gordon
2014-12-09 12:59 ` [PATCH 04/10] drm/i915: FIFO space query code refactor John.C.Harrison
2014-12-10 10:41 ` Daniel Vetter
2014-12-10 18:12 ` [PATCH v2] " Dave Gordon
2015-02-20 9:34 ` Mika Kuoppala
2015-02-23 15:46 ` Daniel Vetter
2014-12-09 12:59 ` [PATCH 05/10] drm/i915: Disable 'get seqno' workaround for VLV John.C.Harrison
2014-12-10 10:42 ` Daniel Vetter
2014-12-10 17:11 ` Dave Gordon
2014-12-15 9:02 ` Daniel Vetter
2014-12-09 12:59 ` [PATCH 06/10] drm/i915: Add extra add_request calls John.C.Harrison
2014-12-10 10:55 ` Daniel Vetter
2014-12-09 12:59 ` [PATCH 07/10] drm/i915: Early alloc request John.C.Harrison
2014-12-09 12:59 ` [PATCH 08/10] drm/i915: Prelude to splitting i915_gem_do_execbuffer in two John.C.Harrison
2014-12-10 10:58 ` Daniel Vetter
2014-12-10 16:33 ` Dave Gordon
2014-12-10 17:15 ` Daniel Vetter
2014-12-16 14:26 ` Dave Gordon
2014-12-17 20:09 ` Daniel Vetter
2014-12-18 14:06 ` Dave Gordon
2014-12-09 12:59 ` [PATCH 09/10] drm/i915: Split i915_dem_do_execbuffer() in half John.C.Harrison
2014-12-09 12:59 ` [PATCH 10/10] drm/i915: Cache ringbuf pointer in request structure John.C.Harrison
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=548AEBF1.2030302@linux.intel.com \
--to=deepak.s@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.