From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 4/4] drm/i915: Simplify relocate_entry_gtt() and make 64-bit safe Date: Mon, 11 Aug 2014 14:16:47 +0200 Message-ID: <20140811121647.GT8727@phenom.ffwll.local> References: <1407615665-25595-1-git-send-email-chris@chris-wilson.co.uk> <1407648551-10981-1-git-send-email-chris@chris-wilson.co.uk> <1407648551-10981-4-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-we0-f179.google.com (mail-we0-f179.google.com [74.125.82.179]) by gabe.freedesktop.org (Postfix) with ESMTP id 690816E3C8 for ; Mon, 11 Aug 2014 05:16:36 -0700 (PDT) Received: by mail-we0-f179.google.com with SMTP id u57so8501706wes.10 for ; Mon, 11 Aug 2014 05:16:35 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1407648551-10981-4-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Sun, Aug 10, 2014 at 06:29:11AM +0100, Chris Wilson wrote: > Even though we should not try to use 4+GiB GTTs on 32-bit systems, by > using a local variable we can future proof the code whilst making it > easier to read. > > Signed-off-by: Chris Wilson Appeased checkpatch a bit for the long lines and pulled this in with the other patches from this series, except the likely/unlikely one. Thanks, Daniel > --- > drivers/gpu/drm/i915/i915_gem_execbuffer.c | 23 ++++++++++------------- > 1 file changed, 10 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > index e6fcd0594bd5..5c04f77f8a66 100644 > --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > @@ -302,7 +302,7 @@ relocate_entry_gtt(struct drm_i915_gem_object *obj, > struct drm_device *dev = obj->base.dev; > struct drm_i915_private *dev_priv = dev->dev_private; > uint64_t delta = reloc->delta + target_offset; > - uint32_t __iomem *reloc_entry; > + uint64_t offset; > void __iomem *reloc_page; > int ret; > > @@ -315,25 +315,22 @@ relocate_entry_gtt(struct drm_i915_gem_object *obj, > return ret; > > /* Map the page containing the relocation we're going to perform. */ > - reloc->offset += i915_gem_obj_ggtt_offset(obj); > + offset = i915_gem_obj_ggtt_offset(obj); > + offset += reloc->offset; > reloc_page = io_mapping_map_atomic_wc(dev_priv->gtt.mappable, > - reloc->offset & PAGE_MASK); > - reloc_entry = (uint32_t __iomem *) > - (reloc_page + offset_in_page(reloc->offset)); > - iowrite32(lower_32_bits(delta), reloc_entry); > + offset & PAGE_MASK); > + iowrite32(lower_32_bits(delta), reloc_page + offset_in_page(offset)); > > if (INTEL_INFO(dev)->gen >= 8) { > - reloc_entry += 1; > + offset += sizeof(uint32_t); > > - if (offset_in_page(reloc->offset + sizeof(uint32_t)) == 0) { > + if (offset_in_page(offset) == 0) { > io_mapping_unmap_atomic(reloc_page); > - reloc_page = io_mapping_map_atomic_wc( > - dev_priv->gtt.mappable, > - reloc->offset + sizeof(uint32_t)); > - reloc_entry = reloc_page; > + reloc_page = io_mapping_map_atomic_wc(dev_priv->gtt.mappable, > + offset); > } > > - iowrite32(upper_32_bits(delta), reloc_entry); > + iowrite32(upper_32_bits(delta), reloc_page + offset_in_page(offset)); > } > > io_mapping_unmap_atomic(reloc_page); > -- > 2.1.0.rc1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch