From: Andi Shyti <andi.shyti@linux.intel.com>
To: Jonathan Cavitt <jonathan.cavitt@intel.com>,
Matt Roper <matthew.d.roper@intel.com>,
Chris Wilson <chris@chris-wilson.co.uk>,
Mika Kuoppala <mika.kuoppala@linux.intel.com>,
Nirmoy Das <nirmoy.das@intel.com>,
Andrzej Hajda <andrzej.hajda@intel.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>,
linux-stable <stable@vger.kernel.org>,
dri-evel <dri-devel@lists.freedesktop.org>,
Andi Shyti <andi.shyti@linux.intel.com>
Subject: [PATCH v8 6/9] drm/i915/gt: Refactor intel_emit_pipe_control_cs() in a single function
Date: Fri, 21 Jul 2023 18:15:11 +0200 [thread overview]
Message-ID: <20230721161514.818895-7-andi.shyti@linux.intel.com> (raw)
In-Reply-To: <20230721161514.818895-1-andi.shyti@linux.intel.com>
Just a trivial refactoring for reducing the number of code
duplicate. This will come at handy in the next commits.
Meantime, propagate the error to the above layers if we fail to
emit the pipe control.
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Cc: <stable@vger.kernel.org> # v5.8+
---
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 47 +++++++++++++-----------
1 file changed, 26 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
index 139a7e69f5c4d..5e19b45a5cabe 100644
--- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
@@ -7,6 +7,7 @@
#include "i915_drv.h"
#include "intel_engine_regs.h"
#include "intel_gpu_commands.h"
+#include "intel_gt_print.h"
#include "intel_lrc.h"
#include "intel_ring.h"
@@ -189,23 +190,30 @@ u32 *gen12_emit_aux_table_inv(struct intel_gt *gt, u32 *cs, const i915_reg_t inv
return cs;
}
+static int gen12_emit_pipe_control_cs(struct i915_request *rq, u32 bit_group_0,
+ u32 bit_group_1, u32 offset)
+{
+ u32 *cs;
+
+ cs = intel_ring_begin(rq, 6);
+ if (IS_ERR(cs))
+ return PTR_ERR(cs);
+
+ cs = gen12_emit_pipe_control(cs, bit_group_0, bit_group_1,
+ LRC_PPHWSP_SCRATCH_ADDR);
+ intel_ring_advance(rq, cs);
+
+ return 0;
+}
+
static int mtl_dummy_pipe_control(struct i915_request *rq)
{
/* Wa_14016712196 */
if (IS_MTL_GRAPHICS_STEP(rq->engine->i915, M, STEP_A0, STEP_B0) ||
- IS_MTL_GRAPHICS_STEP(rq->engine->i915, P, STEP_A0, STEP_B0)) {
- u32 *cs;
-
- /* dummy PIPE_CONTROL + depth flush */
- cs = intel_ring_begin(rq, 6);
- if (IS_ERR(cs))
- return PTR_ERR(cs);
- cs = gen12_emit_pipe_control(cs,
- 0,
- PIPE_CONTROL_DEPTH_CACHE_FLUSH,
- LRC_PPHWSP_SCRATCH_ADDR);
- intel_ring_advance(rq, cs);
- }
+ IS_MTL_GRAPHICS_STEP(rq->engine->i915, P, STEP_A0, STEP_B0))
+ return gen12_emit_pipe_control_cs(rq, 0,
+ PIPE_CONTROL_DEPTH_CACHE_FLUSH,
+ LRC_PPHWSP_SCRATCH_ADDR);
return 0;
}
@@ -222,7 +230,6 @@ int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
u32 bit_group_0 = 0;
u32 bit_group_1 = 0;
int err;
- u32 *cs;
err = mtl_dummy_pipe_control(rq);
if (err)
@@ -256,13 +263,11 @@ int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
else if (engine->class == COMPUTE_CLASS)
bit_group_1 &= ~PIPE_CONTROL_3D_ENGINE_FLAGS;
- cs = intel_ring_begin(rq, 6);
- if (IS_ERR(cs))
- return PTR_ERR(cs);
-
- cs = gen12_emit_pipe_control(cs, bit_group_0, bit_group_1,
- LRC_PPHWSP_SCRATCH_ADDR);
- intel_ring_advance(rq, cs);
+ err = gen12_emit_pipe_control_cs(rq, bit_group_0, bit_group_1,
+ LRC_PPHWSP_SCRATCH_ADDR);
+ if (err)
+ gt_warn(engine->gt,
+ "Failed to emit flush pipe control\n");
}
if (mode & EMIT_INVALIDATE) {
--
2.40.1
next prev parent reply other threads:[~2023-07-21 16:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-21 16:15 [PATCH v8 0/9] Update AUX invalidation sequence Andi Shyti
2023-07-21 16:15 ` [PATCH v8 1/9] drm/i915/gt: Cleanup aux invalidation registers Andi Shyti
2023-07-21 16:15 ` [PATCH v8 2/9] drm/i915: Add the gen12_needs_ccs_aux_inv helper Andi Shyti
2023-07-21 19:12 ` Matt Roper
2023-07-24 7:52 ` Andrzej Hajda
2023-07-24 8:38 ` [Intel-gfx] " Nirmoy Das
2023-07-21 16:15 ` [PATCH v8 3/9] drm/i915/gt: Ensure memory quiesced before invalidation Andi Shyti
2023-07-21 16:15 ` [PATCH v8 4/9] drm/i915/gt: Rename flags with bit_group_X according to the datasheet Andi Shyti
2023-07-21 16:15 ` [PATCH v8 5/9] drm/i915/gt: Enable the CCS_FLUSH bit in the pipe control Andi Shyti
2023-07-21 19:16 ` Matt Roper
2023-07-24 7:53 ` Andrzej Hajda
2023-07-24 8:47 ` [Intel-gfx] " Nirmoy Das
2023-07-21 16:15 ` Andi Shyti [this message]
2023-07-24 7:54 ` [PATCH v8 6/9] drm/i915/gt: Refactor intel_emit_pipe_control_cs() in a single function Andrzej Hajda
2023-07-24 9:07 ` Nirmoy Das
2023-07-24 9:16 ` Andi Shyti
2023-07-24 9:37 ` Nirmoy Das
2023-07-21 16:15 ` [PATCH v8 7/9] drm/i915/gt: Ensure memory quiesced before invalidation for all engines Andi Shyti
2023-07-24 8:19 ` Andrzej Hajda
2023-07-24 9:14 ` Andi Shyti
2023-07-24 9:17 ` Andrzej Hajda
2023-07-21 16:15 ` [PATCH v8 8/9] drm/i915/gt: Poll aux invalidation register bit on invalidation Andi Shyti
2023-07-21 16:15 ` [PATCH v8 9/9] drm/i915/gt: Support aux invalidation on all engines Andi Shyti
2023-07-24 9:42 ` [Intel-gfx] " Andrzej Hajda
2023-07-24 14:35 ` Andi Shyti
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=20230721161514.818895-7-andi.shyti@linux.intel.com \
--to=andi.shyti@linux.intel.com \
--cc=andrzej.hajda@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jonathan.cavitt@intel.com \
--cc=matthew.d.roper@intel.com \
--cc=mika.kuoppala@linux.intel.com \
--cc=nirmoy.das@intel.com \
--cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).