All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Ben Widawsky <ben@bwidawsk.net>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 04/10] drm/i915: Extract PPGTT pte encoding
Date: Thu, 25 Oct 2012 13:50:31 -0700	[thread overview]
Message-ID: <20121025135031.1cbba393@jbarnes-desktop> (raw)
In-Reply-To: <1350956055-3224-5-git-send-email-ben@bwidawsk.net>

On Mon, 22 Oct 2012 18:34:09 -0700
Ben Widawsky <ben@bwidawsk.net> wrote:

> HSW will change the PTE encoding, and laying this out now will be
> helpful when we're ready to implement that. More importantly, GGTT and
> PPGTT PTE encoding is quite similar, so moving this out into a helper
> function will enable us to lance the AGP layer.
> 
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 21 ++++++++++++++++-----
>  1 file changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index a769b3c..da9c1fa 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -31,6 +31,17 @@
>  
>  typedef uint32_t gtt_pte_t;
>  
> +static inline gtt_pte_t pte_encode(struct drm_device *dev,
> +				   dma_addr_t addr,
> +				   gtt_pte_t cache_bits)
> +{
> +	gtt_pte_t pte = GEN6_PTE_VALID;
> +	pte |= GEN6_PTE_ADDR_ENCODE(addr);
> +	pte |= cache_bits;
> +
> +	return pte;
> +}
> +
>  /* PPGTT support for Sandybdrige/Gen6 and later */
>  static void i915_ppgtt_clear_range(struct i915_hw_ppgtt *ppgtt,
>  				   unsigned first_entry,
> @@ -42,8 +53,8 @@ static void i915_ppgtt_clear_range(struct i915_hw_ppgtt *ppgtt,
>  	unsigned first_pte = first_entry % I915_PPGTT_PT_ENTRIES;
>  	unsigned last_pte, i;
>  
> -	scratch_pte = GEN6_PTE_ADDR_ENCODE(ppgtt->scratch_page_dma_addr);
> -	scratch_pte |= GEN6_PTE_VALID | GEN6_PTE_CACHE_LLC;
> +	scratch_pte = pte_encode(ppgtt->dev, ppgtt->scratch_page_dma_addr,
> +				 GEN6_PTE_CACHE_LLC);
>  
>  	while (num_entries) {
>  		last_pte = first_pte + num_entries;
> @@ -174,7 +185,7 @@ static void i915_ppgtt_insert_sg_entries(struct i915_hw_ppgtt *ppgtt,
>  					 unsigned first_entry,
>  					 gtt_pte_t pte_flags)
>  {
> -	gtt_pte_t *pt_vaddr, pte;
> +	gtt_pte_t *pt_vaddr;
>  	unsigned act_pd = first_entry / I915_PPGTT_PT_ENTRIES;
>  	unsigned first_pte = first_entry % I915_PPGTT_PT_ENTRIES;
>  	unsigned i, j, m, segment_len;
> @@ -192,8 +203,8 @@ static void i915_ppgtt_insert_sg_entries(struct i915_hw_ppgtt *ppgtt,
>  
>  		for (j = first_pte; j < I915_PPGTT_PT_ENTRIES; j++) {
>  			page_addr = sg_dma_address(sg) + (m << PAGE_SHIFT);
> -			pte = GEN6_PTE_ADDR_ENCODE(page_addr);
> -			pt_vaddr[j] = pte | pte_flags;
> +			pt_vaddr[j] = pte_encode(ppgtt->dev, page_addr,
> +						 pte_flags);
>  
>  			/* grab the next page */
>  			if (++m == segment_len) {

Does this mean we can remove the GEN6_PTE_ADDR_ENCODE macro too?

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center

  reply	other threads:[~2012-10-25 20:50 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-23  1:34 [PATCH 00/10] Kill AGP dependencies for Gen6+ Ben Widawsky
2012-10-23  1:34 ` [PATCH 01/10] drm/i915: No LLC_MLC for HSW Ben Widawsky
2012-10-23 10:15   ` Mika Kuoppala
2012-10-25 20:47   ` Jesse Barnes
2012-10-26  1:03     ` Ben Widawsky
2012-10-23  1:34 ` [PATCH 02/10] drm/i915: Add dev to ppgtt Ben Widawsky
2012-10-25 20:48   ` Jesse Barnes
2012-10-23  1:34 ` [PATCH 03/10] drm/i915: introduce gtt_pte_t Ben Widawsky
2012-10-25 20:49   ` Jesse Barnes
2012-10-23  1:34 ` [PATCH 04/10] drm/i915: Extract PPGTT pte encoding Ben Widawsky
2012-10-25 20:50   ` Jesse Barnes [this message]
2012-10-23  1:34 ` [PATCH 05/10] drm/i915: move more pte encoding to pte encode Ben Widawsky
2012-10-25 20:51   ` Jesse Barnes
2012-10-31 10:52     ` Daniel Vetter
2012-10-23  1:34 ` [PATCH 06/10] drm/i915: Stop using AGP layer for GEN6+ Ben Widawsky
2012-10-23  9:59   ` Chris Wilson
2012-10-23 14:57     ` Ben Widawsky
2012-10-23 14:58       ` Daniel Vetter
2012-10-23 19:57         ` Ben Widawsky
2012-10-23 20:03           ` Daniel Vetter
2012-10-23 20:27             ` Ben Widawsky
2012-10-25 20:55           ` Jesse Barnes
2012-10-25 20:54       ` Jesse Barnes
     [not found]   ` <878vaxwk61.fsf@gaia.fi.intel.com>
2012-10-24 17:56     ` Ben Widawsky
2012-10-26 20:54   ` [PATCH 06/10 v2] " Ben Widawsky
2012-10-29  2:08     ` [PATCH 6/9 v3] " Ben Widawsky
2012-10-31  9:57       ` Daniel Vetter
2012-10-31 15:51         ` Ben Widawsky
2012-10-31 10:37     ` [PATCH 06/10 v2] " Chris Wilson
2012-10-23  1:34 ` [PATCH 07/10] drm/i915: Calculate correct stolen size for GEN7+ Ben Widawsky
2012-10-25 21:06   ` Jesse Barnes
2012-10-25 22:15     ` Ben Widawsky
2012-10-25 22:39       ` Jesse Barnes
2012-10-23  1:34 ` [PATCH 08/10] drm/i915: Kill off now unused gen6+ AGP code Ben Widawsky
2012-10-25 21:07   ` Jesse Barnes
2012-10-23  1:34 ` [PATCH 09/10] drm/i915: flush system agent TLBs on SNB Ben Widawsky
2012-10-23 14:17   ` Jesse Barnes
2012-10-23 14:28     ` Daniel Vetter
2012-10-23 14:35       ` Jesse Barnes
2012-10-23 14:42         ` Ben Widawsky
2012-10-25 21:07   ` Jesse Barnes
2012-10-26 20:55   ` [PATCH 09/10 v2] " Ben Widawsky
2012-10-23  1:34 ` [PATCH 10/10] drm/i915: Kill off actually requiring AGP Ben Widawsky
2012-10-23  2:03   ` Ben Widawsky
2012-10-25 21:09   ` Jesse Barnes
2012-10-25 22:15     ` Ben Widawsky
2012-10-25 22:39       ` Jesse Barnes
2012-10-25 22:47         ` Daniel Vetter
2012-10-26 20:52           ` Ben Widawsky
2012-10-26 20:58 ` [PATCH 00/10] Kill AGP dependencies for Gen6+ Ben Widawsky

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=20121025135031.1cbba393@jbarnes-desktop \
    --to=jbarnes@virtuousgeek.org \
    --cc=ben@bwidawsk.net \
    --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.