On Thu, Sep 26, 2024 at 4:43 AM Min, Frank <Frank.Min@xxxxxxx> wrote: > > [AMD Official Use Only - AMD Internal Distribution Only] > > From: Frank Min <Frank.Min@xxxxxxx> > > Without setting dcc bit, there is ramdon PTE copy corruption on sdma 7. > > so add this bit and update the packet format accordingly. > > Signed-off-by: Frank Min <Frank.Min@xxxxxxx> Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c > index cfd8e183ad50..a8763496aed3 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c > @@ -1080,13 +1080,16 @@ static void sdma_v7_0_vm_copy_pte(struct amdgpu_ib *ib, > unsigned bytes = count * 8; > > ib->ptr[ib->length_dw++] = SDMA_PKT_COPY_LINEAR_HEADER_OP(SDMA_OP_COPY) | > - SDMA_PKT_COPY_LINEAR_HEADER_SUB_OP(SDMA_SUBOP_COPY_LINEAR); > + SDMA_PKT_COPY_LINEAR_HEADER_SUB_OP(SDMA_SUBOP_COPY_LINEAR) | > + SDMA_PKT_COPY_LINEAR_HEADER_CPV(1); > + > ib->ptr[ib->length_dw++] = bytes - 1; > ib->ptr[ib->length_dw++] = 0; /* src/dst endian swap */ > ib->ptr[ib->length_dw++] = lower_32_bits(src); > ib->ptr[ib->length_dw++] = upper_32_bits(src); > ib->ptr[ib->length_dw++] = lower_32_bits(pe); > ib->ptr[ib->length_dw++] = upper_32_bits(pe); > + ib->ptr[ib->length_dw++] = 0; > > } > > @@ -1744,7 +1747,7 @@ static void sdma_v7_0_set_buffer_funcs(struct amdgpu_device *adev) } > > static const struct amdgpu_vm_pte_funcs sdma_v7_0_vm_pte_funcs = { > - .copy_pte_num_dw = 7, > + .copy_pte_num_dw = 8, > .copy_pte = sdma_v7_0_vm_copy_pte, > .write_pte = sdma_v7_0_vm_write_pte, > .set_pte_pde = sdma_v7_0_vm_set_pte_pde, > -- > 2.43.0 > >