From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Intel-gfx@lists.freedesktop.org
Subject: Re: [RFC 15/31] drm/i915: Stop using I915_READ/WRITE in intel_wopcm_init_hw
Date: Fri, 14 Jun 2019 08:52:29 -0700 [thread overview]
Message-ID: <20190614155229.GH19512@intel.com> (raw)
In-Reply-To: <20190614151731.17608-16-tvrtko.ursulin@linux.intel.com>
On Fri, Jun 14, 2019 at 04:17:15PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> More legacy mmio accessor removal. We pass in intel_gt explicitly allowing
> code to use new intel_uncore_read/write helpers.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 2 +-
> drivers/gpu/drm/i915/intel_wopcm.c | 31 ++++++++++++++++--------------
> drivers/gpu/drm/i915/intel_wopcm.h | 4 +++-
> 3 files changed, 21 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 77d9d092b2f4..b7f88e2bd7df 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1275,7 +1275,7 @@ static int init_hw(struct intel_gt *gt)
> goto out;
> }
>
> - ret = intel_wopcm_init_hw(&i915->wopcm);
> + ret = intel_wopcm_init_hw(&i915->wopcm, gt);
> if (ret) {
> DRM_ERROR("Enabling WOPCM failed (%d)\n", ret);
> goto out;
> diff --git a/drivers/gpu/drm/i915/intel_wopcm.c b/drivers/gpu/drm/i915/intel_wopcm.c
> index 7b4ba84b9fb8..931987e37241 100644
> --- a/drivers/gpu/drm/i915/intel_wopcm.c
> +++ b/drivers/gpu/drm/i915/intel_wopcm.c
> @@ -225,17 +225,18 @@ int intel_wopcm_init(struct intel_wopcm *wopcm)
> return 0;
> }
>
> -static inline int write_and_verify(struct drm_i915_private *dev_priv,
> - i915_reg_t reg, u32 val, u32 mask,
> - u32 locked_bit)
> +static int
> +write_and_verify(struct intel_gt *gt,
> + i915_reg_t reg, u32 val, u32 mask, u32 locked_bit)
> {
> + struct intel_uncore *uncore = gt->uncore;
> u32 reg_val;
>
> GEM_BUG_ON(val & ~mask);
>
> - I915_WRITE(reg, val);
> + intel_uncore_write(uncore, reg, val);
>
> - reg_val = I915_READ(reg);
> + reg_val = intel_uncore_read(uncore, reg);
>
> return (reg_val & mask) != (val | locked_bit) ? -EIO : 0;
> }
> @@ -250,29 +251,30 @@ static inline int write_and_verify(struct drm_i915_private *dev_priv,
> *
> * Return: 0 on success. -EIO if registers were locked with incorrect values.
> */
> -int intel_wopcm_init_hw(struct intel_wopcm *wopcm)
> +int intel_wopcm_init_hw(struct intel_wopcm *wopcm, struct intel_gt *gt)
> {
> - struct drm_i915_private *dev_priv = wopcm_to_i915(wopcm);
> + struct drm_i915_private *i915 = wopcm_to_i915(wopcm);
> + struct intel_uncore *uncore = gt->uncore;
> u32 huc_agent;
> u32 mask;
> int err;
>
> - if (!USES_GUC(dev_priv))
> + if (!USES_GUC(i915))
> return 0;
>
> - GEM_BUG_ON(!HAS_GUC(dev_priv));
> + GEM_BUG_ON(!HAS_GUC(i915));
> GEM_BUG_ON(!wopcm->guc.size);
> GEM_BUG_ON(!wopcm->guc.base);
>
> - err = write_and_verify(dev_priv, GUC_WOPCM_SIZE, wopcm->guc.size,
> + err = write_and_verify(gt, GUC_WOPCM_SIZE, wopcm->guc.size,
> GUC_WOPCM_SIZE_MASK | GUC_WOPCM_SIZE_LOCKED,
> GUC_WOPCM_SIZE_LOCKED);
> if (err)
> goto err_out;
>
> - huc_agent = USES_HUC(dev_priv) ? HUC_LOADING_AGENT_GUC : 0;
> + huc_agent = USES_HUC(i915) ? HUC_LOADING_AGENT_GUC : 0;
> mask = GUC_WOPCM_OFFSET_MASK | GUC_WOPCM_OFFSET_VALID | huc_agent;
> - err = write_and_verify(dev_priv, DMA_GUC_WOPCM_OFFSET,
> + err = write_and_verify(gt, DMA_GUC_WOPCM_OFFSET,
> wopcm->guc.base | huc_agent, mask,
> GUC_WOPCM_OFFSET_VALID);
> if (err)
> @@ -283,8 +285,9 @@ int intel_wopcm_init_hw(struct intel_wopcm *wopcm)
> err_out:
> DRM_ERROR("Failed to init WOPCM registers:\n");
> DRM_ERROR("DMA_GUC_WOPCM_OFFSET=%#x\n",
> - I915_READ(DMA_GUC_WOPCM_OFFSET));
> - DRM_ERROR("GUC_WOPCM_SIZE=%#x\n", I915_READ(GUC_WOPCM_SIZE));
> + intel_uncore_read(uncore, DMA_GUC_WOPCM_OFFSET));
> + DRM_ERROR("GUC_WOPCM_SIZE=%#x\n",
> + intel_uncore_read(uncore, GUC_WOPCM_SIZE));
>
> return err;
> }
> diff --git a/drivers/gpu/drm/i915/intel_wopcm.h b/drivers/gpu/drm/i915/intel_wopcm.h
> index 114401971520..56aaed4d64ff 100644
> --- a/drivers/gpu/drm/i915/intel_wopcm.h
> +++ b/drivers/gpu/drm/i915/intel_wopcm.h
> @@ -9,6 +9,8 @@
>
> #include <linux/types.h>
>
> +struct intel_gt;
> +
> /**
> * struct intel_wopcm - Overall WOPCM info and WOPCM regions.
> * @size: Size of overall WOPCM.
> @@ -41,6 +43,6 @@ static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm)
>
> void intel_wopcm_init_early(struct intel_wopcm *wopcm);
> int intel_wopcm_init(struct intel_wopcm *wopcm);
> -int intel_wopcm_init_hw(struct intel_wopcm *wopcm);
> +int intel_wopcm_init_hw(struct intel_wopcm *wopcm, struct intel_gt *gt);
>
> #endif
> --
> 2.20.1
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-06-14 15:51 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-14 15:17 [RFC v4 00/31] Implicit dev_priv removal and GT compartmentalization Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 01/31] drm/i915: Convert intel_vgt_(de)balloon to uncore Tvrtko Ursulin
2019-06-14 17:18 ` Michal Wajdeczko
2019-06-14 17:43 ` Chris Wilson
2019-06-17 8:30 ` Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 02/31] drm/i915: Introduce struct intel_gt as replacement for anonymous i915->gt Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 03/31] drm/i915: Move intel_gt initialization to a separate file Tvrtko Ursulin
2019-06-14 15:32 ` Rodrigo Vivi
2019-06-14 16:13 ` Chris Wilson
2019-06-14 16:14 ` Chris Wilson
2019-06-14 16:16 ` Chris Wilson
2019-06-14 15:17 ` [RFC 04/31] drm/i915: Store some backpointers in struct intel_gt Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 05/31] drm/i915: Make i915_check_and_clear_faults take intel_gt Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 06/31] drm/i915: Convert i915_gem_init_swizzling to intel_gt Tvrtko Ursulin
2019-06-14 15:25 ` Rodrigo Vivi
2019-06-14 15:36 ` Tvrtko Ursulin
2019-06-14 16:16 ` Rodrigo Vivi
2019-06-14 16:21 ` Tvrtko Ursulin
2019-06-14 17:20 ` Rodrigo Vivi
2019-06-14 17:05 ` Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 07/31] drm/i915: Convert init_unused_rings " Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 08/31] drm/i915: Convert gt workarounds " Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 09/31] drm/i915: Store backpointer to intel_gt in the engine Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 10/31] drm/i915: Convert intel_mocs_init_l3cc_table to intel_gt Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 11/31] drm/i915: Convert i915_ppgtt_init_hw " Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 12/31] drm/i915: Consolidate some open coded mmio rmw Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 13/31] drm/i915: Convert i915_gem_init_hw to intel_gt Tvrtko Ursulin
2019-06-14 15:50 ` Rodrigo Vivi
2019-06-14 15:17 ` [RFC 14/31] drm/i915: Move intel_engines_resume into common init Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 15/31] drm/i915: Stop using I915_READ/WRITE in intel_wopcm_init_hw Tvrtko Ursulin
2019-06-14 15:52 ` Rodrigo Vivi [this message]
2019-06-14 15:17 ` [RFC 16/31] drm/i915: Compartmentalize i915_ggtt_probe_hw Tvrtko Ursulin
2019-06-14 15:59 ` Rodrigo Vivi
2019-06-14 15:17 ` [RFC 17/31] drm/i915: Compartmentalize i915_ggtt_init_hw Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 18/31] drm/i915: Make ggtt invalidation work on ggtt Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 19/31] drm/i915: Store intel_gt backpointer in vm Tvrtko Ursulin
2019-06-14 17:34 ` Rodrigo Vivi
2019-06-14 15:17 ` [RFC 20/31] drm/i915: Compartmentalize i915_gem_suspend/restore_gtt_mappings Tvrtko Ursulin
2019-06-14 16:19 ` Chris Wilson
2019-06-14 16:22 ` Tvrtko Ursulin
2019-06-14 17:52 ` Rodrigo Vivi
2019-06-14 15:17 ` [RFC 21/31] drm/i915: Convert i915_gem_flush_ggtt_writes to intel_gt Tvrtko Ursulin
2019-06-14 16:17 ` Tvrtko Ursulin
2019-06-14 16:24 ` Chris Wilson
2019-06-14 15:17 ` [RFC 22/31] drm/i915: Move i915_gem_chipset_flush " Tvrtko Ursulin
2019-06-14 16:26 ` Chris Wilson
2019-06-14 16:30 ` Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 23/31] drm/i915: Compartmentalize timeline_init/park/fini Tvrtko Ursulin
2019-06-14 16:28 ` Chris Wilson
2019-06-14 15:17 ` [RFC 24/31] drm/i915: Compartmentalize i915_ggtt_cleanup_hw Tvrtko Ursulin
2019-06-14 16:30 ` Chris Wilson
2019-06-14 15:17 ` [RFC 25/31] drm/i915: Compartmentalize i915_gem_init_ggtt Tvrtko Ursulin
2019-06-14 16:32 ` Chris Wilson
2019-06-14 16:38 ` Tvrtko Ursulin
2019-06-14 15:17 ` [RFC 26/31] drm/i915: Store ggtt pointer in intel_gt Tvrtko Ursulin
2019-06-14 17:40 ` Rodrigo Vivi
2019-06-14 15:17 ` [RFC 27/31] drm/i915: Compartmentalize ring buffer creation Tvrtko Ursulin
2019-06-14 16:34 ` Chris Wilson
2019-06-14 15:17 ` [RFC 28/31] drm/i915: Save trip via top-level i915 in a few more places Tvrtko Ursulin
2019-06-14 16:36 ` Chris Wilson
2019-06-14 15:17 ` [RFC 29/31] drm/i915: Make timelines gt centric Tvrtko Ursulin
2019-06-14 16:37 ` Chris Wilson
2019-06-14 15:17 ` [RFC 30/31] drm/i915: Rename i915_timeline to intel_timeline and move under gt Tvrtko Ursulin
2019-06-14 16:38 ` Chris Wilson
2019-06-14 15:17 ` [RFC 31/31] drm/i915: Eliminate dual personality of i915_scratch_offset Tvrtko Ursulin
2019-06-14 16:40 ` Chris Wilson
2019-06-14 16:46 ` Tvrtko Ursulin
2019-06-14 15:29 ` [RFC v4 00/31] Implicit dev_priv removal and GT compartmentalization Rodrigo Vivi
2019-06-14 15:48 ` ✗ Fi.CI.BAT: failure for Implicit dev_priv removal and GT compartmentalization (rev6) Patchwork
2019-06-14 16:54 ` ✗ Fi.CI.BAT: failure for Implicit dev_priv removal and GT compartmentalization (rev7) Patchwork
2019-06-14 17:38 ` ✗ Fi.CI.BAT: failure for Implicit dev_priv removal and GT compartmentalization (rev8) Patchwork
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=20190614155229.GH19512@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=Intel-gfx@lists.freedesktop.org \
--cc=tvrtko.ursulin@linux.intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox