All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/amdgpu/vpe: remove IB end boundary requirement
@ 2023-10-07  3:24 Lang Yu
  2023-10-07  3:24 ` [PATCH 2/3] drm/amdgpu/vpe: align with mcbp changes Lang Yu
  2023-10-07  3:24 ` [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops Lang Yu
  0 siblings, 2 replies; 4+ messages in thread
From: Lang Yu @ 2023-10-07  3:24 UTC (permalink / raw)
  To: Alex Deucher, Yifan Zhang, Solomon Chiu; +Cc: Lang Yu, amd-gfx

Remove IB end boundary requirement,
VPE has no such limitions, use existing
amdgpu_ring_generic_pad_ib() instead.
This is missed in rebase.

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 20 +-------------------
 1 file changed, 1 insertion(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
index 81e5600bd545..23966221dbec 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
@@ -247,21 +247,6 @@ static void vpe_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count)
 		amdgpu_ring_write(ring, 0);
 }
 
-static void vpe_ring_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib)
-{
-	uint32_t pad_count;
-	int i;
-
-	pad_count = (-ib->length_dw) & 0x7;
-
-	ib->ptr[ib->length_dw++] = ring->funcs->nop |
-				   VPE_CMD_NOP_HEADER_COUNT(pad_count - 1);
-
-	for (i = 0; i < pad_count - 1; i++)
-		ib->ptr[ib->length_dw++] = 0;
-
-}
-
 static uint64_t vpe_get_csa_mc_addr(struct amdgpu_ring *ring, uint32_t vmid)
 {
 	struct amdgpu_device *adev = ring->adev;
@@ -285,9 +270,6 @@ static void vpe_ring_emit_ib(struct amdgpu_ring *ring,
 	uint32_t vmid = AMDGPU_JOB_GET_VMID(job);
 	uint64_t csa_mc_addr = vpe_get_csa_mc_addr(ring, vmid);
 
-	/* IB packet must end on a 8 DW boundary */
-	vpe_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
-
 	amdgpu_ring_write(ring, VPE_CMD_HEADER(VPE_CMD_OPCODE_INDIRECT, 0) |
 				VPE_CMD_INDIRECT_HEADER_VMID(vmid & 0xf));
 
@@ -636,7 +618,7 @@ static const struct amdgpu_ring_funcs vpe_ring_funcs = {
 	.emit_reg_wait = vpe_ring_emit_reg_wait,
 	.emit_reg_write_reg_wait = amdgpu_ring_emit_reg_write_reg_wait_helper,
 	.insert_nop = vpe_ring_insert_nop,
-	.pad_ib = vpe_ring_pad_ib,
+	.pad_ib = amdgpu_ring_generic_pad_ib,
 	.test_ring = vpe_ring_test_ring,
 	.test_ib = vpe_ring_test_ib,
 	.init_cond_exec = vpe_ring_init_cond_exec,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] drm/amdgpu/vpe: align with mcbp changes
  2023-10-07  3:24 [PATCH 1/3] drm/amdgpu/vpe: remove IB end boundary requirement Lang Yu
@ 2023-10-07  3:24 ` Lang Yu
  2023-10-07  3:24 ` [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops Lang Yu
  1 sibling, 0 replies; 4+ messages in thread
From: Lang Yu @ 2023-10-07  3:24 UTC (permalink / raw)
  To: Alex Deucher, Yifan Zhang, Solomon Chiu; +Cc: Lang Yu, amd-gfx

MCBP is decided by adev->gfx.mcbp now.
This is missed in rebase.

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
index 23966221dbec..bb74478098bb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
@@ -253,7 +253,7 @@ static uint64_t vpe_get_csa_mc_addr(struct amdgpu_ring *ring, uint32_t vmid)
 	uint32_t index = 0;
 	uint64_t csa_mc_addr;
 
-	if (amdgpu_sriov_vf(adev) || vmid == 0 || !amdgpu_mcbp)
+	if (amdgpu_sriov_vf(adev) || vmid == 0 || !adev->gfx.mcbp)
 		return 0;
 
 	csa_mc_addr = amdgpu_csa_vaddr(adev) + AMDGPU_CSA_VPE_OFFSET +
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops
  2023-10-07  3:24 [PATCH 1/3] drm/amdgpu/vpe: remove IB end boundary requirement Lang Yu
  2023-10-07  3:24 ` [PATCH 2/3] drm/amdgpu/vpe: align with mcbp changes Lang Yu
@ 2023-10-07  3:24 ` Lang Yu
  2023-10-07  3:40   ` Zhang, Yifan
  1 sibling, 1 reply; 4+ messages in thread
From: Lang Yu @ 2023-10-07  3:24 UTC (permalink / raw)
  To: Alex Deucher, Yifan Zhang, Solomon Chiu; +Cc: Lang Yu, amd-gfx

Avoid infinite loop when count is 0.
This is missed in rebase.

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
index bb74478098bb..e81579708e96 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
@@ -240,11 +240,12 @@ static void vpe_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count)
 {
 	int i;
 
-	amdgpu_ring_write(ring, ring->funcs->nop |
+	for (i = 0; i < count; i++)
+		if (i == 0)
+			amdgpu_ring_write(ring, ring->funcs->nop |
 				VPE_CMD_NOP_HEADER_COUNT(count - 1));
-
-	for (i = 0; i < count - 1; i++)
-		amdgpu_ring_write(ring, 0);
+		else
+			amdgpu_ring_write(ring, ring->funcs->nop);
 }
 
 static uint64_t vpe_get_csa_mc_addr(struct amdgpu_ring *ring, uint32_t vmid)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops
  2023-10-07  3:24 ` [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops Lang Yu
@ 2023-10-07  3:40   ` Zhang, Yifan
  0 siblings, 0 replies; 4+ messages in thread
From: Zhang, Yifan @ 2023-10-07  3:40 UTC (permalink / raw)
  To: Yu, Lang, Deucher, Alexander, Chiu, Solomon; +Cc: amd-gfx

[AMD Official Use Only - General]

This series is:

Reviewed-by: Yifan Zhang <yifan1.zhang@amd.com>

Best Regards,
Yifan

-----Original Message-----
From: Yu, Lang <Lang.Yu@amd.com>
Sent: Saturday, October 7, 2023 11:24 AM
To: Deucher, Alexander <Alexander.Deucher@amd.com>; Zhang, Yifan <Yifan1.Zhang@amd.com>; Chiu, Solomon <Solomon.Chiu@amd.com>
Cc: amd-gfx@lists.freedesktop.org; Yu, Lang <Lang.Yu@amd.com>
Subject: [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops

Avoid infinite loop when count is 0.
This is missed in rebase.

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
index bb74478098bb..e81579708e96 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
@@ -240,11 +240,12 @@ static void vpe_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count)  {
        int i;

-       amdgpu_ring_write(ring, ring->funcs->nop |
+       for (i = 0; i < count; i++)
+               if (i == 0)
+                       amdgpu_ring_write(ring, ring->funcs->nop |
                                VPE_CMD_NOP_HEADER_COUNT(count - 1));
-
-       for (i = 0; i < count - 1; i++)
-               amdgpu_ring_write(ring, 0);
+               else
+                       amdgpu_ring_write(ring, ring->funcs->nop);
 }

 static uint64_t vpe_get_csa_mc_addr(struct amdgpu_ring *ring, uint32_t vmid)
--
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-10-07  3:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-07  3:24 [PATCH 1/3] drm/amdgpu/vpe: remove IB end boundary requirement Lang Yu
2023-10-07  3:24 ` [PATCH 2/3] drm/amdgpu/vpe: align with mcbp changes Lang Yu
2023-10-07  3:24 ` [PATCH 3/3] drm/amdgpu/vpe: fix insert_nop ops Lang Yu
2023-10-07  3:40   ` Zhang, Yifan

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.