From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 02/50] drm/i915: for_each_ring Date: Tue, 13 May 2014 15:25:10 +0200 Message-ID: <20140513132510.GD3908@phenom.ffwll.local> References: <1399637360-4277-1-git-send-email-oscar.mateo@intel.com> <1399637360-4277-3-git-send-email-oscar.mateo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by gabe.freedesktop.org (Postfix) with ESMTP id 33E9A6E61F for ; Tue, 13 May 2014 06:25:15 -0700 (PDT) Received: by mail-wi0-f181.google.com with SMTP id n15so585889wiw.14 for ; Tue, 13 May 2014 06:25:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1399637360-4277-3-git-send-email-oscar.mateo@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: oscar.mateo@intel.com Cc: intel-gfx@lists.freedesktop.org, Ben Widawsky , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org On Fri, May 09, 2014 at 01:08:32PM +0100, oscar.mateo@intel.com wrote: > From: Ben Widawsky > > for_each_ring() iterates over all rings supported by the hardware, not > just those which have been initialized as in for_each_active_ring() > > Signed-off-by: Ben Widawsky > Acked-by: Oscar Mateo > --- > drivers/gpu/drm/i915/i915_drv.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index a53a028..b1725c6 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1544,6 +1544,17 @@ static inline struct drm_i915_private *to_i915(const struct drm_device *dev) > return dev->dev_private; > } > > +/* NB: Typically you want to use for_each_ring in init code before ringbuffers > + * are setup, or in debug code. for_each_active_ring is more suited for code > + * which is dynamically handling active rings, ie. normal code. In most > + * (currently all cases except on pre-production hardware) for_each_ring will > + * work even if it's a bad idea to use it - so be careful. > + */ Proper kerneldoc comment would look neater imo instead of an "NB:". Bonus points if you pull it into the drm docbook (just the header files with the !I directive in the DocBook template). -Daniel > +#define for_each_ring(ring__, dev_priv__, i__) \ > + for ((i__) = 0; (i__) < I915_NUM_RINGS; (i__)++) \ > + if (((ring__) = &(dev_priv__)->ring[(i__)]), \ > + INTEL_INFO((dev_priv__)->dev)->ring_mask & (1<<(i__))) > + > /* Iterate over initialised rings */ > #define for_each_active_ring(ring__, dev_priv__, i__) \ > for ((i__) = 0; (i__) < I915_NUM_RINGS; (i__)++) \ > -- > 1.9.0 > > _______________________________________________ > 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