From patchwork Fri Apr 15 17:46:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 8853931 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 15F87BF29F for ; Fri, 15 Apr 2016 17:46:33 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 22DAF2021F for ; Fri, 15 Apr 2016 17:46:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C5F9520211 for ; Fri, 15 Apr 2016 17:46:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42B896ECD3; Fri, 15 Apr 2016 17:46:29 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id F19FB6E23C for ; Fri, 15 Apr 2016 17:46:14 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id a140so8006553wma.2 for ; Fri, 15 Apr 2016 10:46:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=dABOs8wZ7iBckqdNzU2ulxFED6n0avpeSmxib4f77Ko=; b=FeVi+JD5CagZJLW5Qrs+eiVIzbdSRUUybRnyhbtRgeTFqlKffL4RPAW12AYz62qt4p YlCkDG871RvFJalD64l9S6OAf4bd8Qt+nBsr7kbG2QAUNhr7J56DAFQoOtGWadeJQPVp jTP19yp1mzfSp806rTzD00clOXsQ42exZwxc+1N4qvHHa3zYyGfbxULdkI90nN700gf8 TAnlwIy2cO7ZLdXfI6ZlOYIdiiN6uQWol8IiISDt1UYiSoMoWBJzEJlDSYHFgEYinJGu NMnTUodq6lVFHJjhTriFcztqYEQz7vilUR3sLCC5QVteSi7EHcrBGhsjruTH/Sl3Ff9a cs8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=dABOs8wZ7iBckqdNzU2ulxFED6n0avpeSmxib4f77Ko=; b=KftxC0a+peH3lkpmBqqar12paOp+h9ekKRbTO7n4t6yYL+afwo7czxPjyq8hsbQSk1 PA7+H92JcL2QkW0GTbTPaV/5xJ8rNnDi5uAB2FQGLghKMqluip0F+N7lK8+BWKdfiwTC CEf3GDDqOdDX1s30sJ6NPH37iVxKXYsLJDxYLaQjCoJjZiGxNtIQUB8CdDO4DfChfuCd YCwA+Gc2sVAYULDdFzHYwNpulVyZOJiCLnlv6gBKa2j09s1nEiTSrMPxNbMzdvhU6+Rb gwZnbWKzZUDC2sDrkPzKEnrjGyPNds5iB/MFft5NRyTnGZPiHuObwBAybFaIGk2gSDQi R/Xw== X-Gm-Message-State: AOPr4FXlC9Qwxb+3Fi7ZWBpI/hmAVy1Yfg2iJ+gAz+me6jSu2ldlQedRIpfkKlZ6TiEvTQ== X-Received: by 10.28.64.197 with SMTP id n188mr5562818wma.96.1460742373596; Fri, 15 Apr 2016 10:46:13 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id q127sm12577034wmd.13.2016.04.15.10.46.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 15 Apr 2016 10:46:12 -0700 (PDT) From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Fri, 15 Apr 2016 18:46:01 +0100 Message-Id: <1460742365-3646-3-git-send-email-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.8.0.rc3 In-Reply-To: <1460742365-3646-1-git-send-email-chris@chris-wilson.co.uk> References: <1460742365-3646-1-git-send-email-chris@chris-wilson.co.uk> Subject: [Intel-gfx] [PATCH 2/6] drm/i915: Allow passing any known pointer to for_each_engine() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Rather than require the user to grab a drm_i915_private, allow them to pass anything that we know how to derive such a pointer user to_i915() Note this fixes a macro bug in for_each_engine_masked() which was not using its dev_priv__ parameter. Signed-off-by: Chris Wilson Cc: Mika Kuoppala --- drivers/gpu/drm/i915/i915_drv.h | 18 +++++++++--------- drivers/gpu/drm/i915/i915_gem_context.c | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 6569ebfe8cf1..0a62354ba53d 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -2020,24 +2020,24 @@ static inline struct drm_i915_private *guc_to_i915(struct intel_guc *guc) } /* Simple iterator over all initialised engines */ -#define for_each_engine(engine__, dev_priv__) \ - for ((engine__) = &(dev_priv__)->engine[0]; \ - (engine__) < &(dev_priv__)->engine[I915_NUM_ENGINES]; \ +#define for_each_engine(engine__, ptr__) \ + for ((engine__) = &to_i915(ptr__)->engine[0]; \ + (engine__) < &to_i915(ptr__)->engine[I915_NUM_ENGINES]; \ (engine__)++) \ for_each_if (intel_engine_initialized(engine__)) /* Iterator with engine_id */ -#define for_each_engine_id(engine__, dev_priv__, id__) \ - for ((engine__) = &(dev_priv__)->engine[0], (id__) = 0; \ - (engine__) < &(dev_priv__)->engine[I915_NUM_ENGINES]; \ +#define for_each_engine_id(engine__, ptr__, id__) \ + for ((engine__) = &to_i915(ptr__)->engine[0], (id__) = 0; \ + (engine__) < &to_i915(ptr__)->engine[I915_NUM_ENGINES]; \ (engine__)++) \ for_each_if (((id__) = (engine__)->id, \ intel_engine_initialized(engine__))) /* Iterator over subset of engines selected by mask */ -#define for_each_engine_masked(engine__, dev_priv__, mask__) \ - for ((engine__) = &(dev_priv__)->engine[0]; \ - (engine__) < &(dev_priv__)->engine[I915_NUM_ENGINES]; \ +#define for_each_engine_masked(engine__, ptr__, mask__) \ + for ((engine__) = &to_i915(ptr__)->engine[0]; \ + (engine__) < &to_i915(ptr__)->engine[I915_NUM_ENGINES]; \ (engine__)++) \ for_each_if (((mask__) & intel_engine_flag(engine__)) && \ intel_engine_initialized(engine__)) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index e5acc3916f75..b8439971c9bb 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -553,7 +553,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags) intel_ring_emit(engine, MI_LOAD_REGISTER_IMM(num_rings)); - for_each_engine(signaller, to_i915(engine->dev)) { + for_each_engine(signaller, engine->dev) { if (signaller == engine) continue; @@ -583,7 +583,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags) intel_ring_emit(engine, MI_LOAD_REGISTER_IMM(num_rings)); - for_each_engine(signaller, to_i915(engine->dev)) { + for_each_engine(signaller, engine->dev) { if (signaller == engine) continue;