[PATCH] drm/amdgpu: fix vega10 graphic hang issue in S3 test
Deucher, Alexander
Alexander.Deucher at amd.com
Thu Aug 17 12:41:56 UTC 2017
> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of ken.wang at amd.com
> Sent: Thursday, August 17, 2017 1:43 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Wang, Ken
> Subject: [PATCH] drm/amdgpu: fix vega10 graphic hang issue in S3 test
>
Please include a better description. E.g.,
mmVGT_INDEX_TYPE has no default value, need to make sure it's initialized when gfx is initialized.
With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> From: Ken Wang <Ken.Wang at amd.com>
>
> Change-Id: If01e32baa903c8c35991b1517c6d8bde98f5dae2
> Signed-off-by: Ken Wang <Ken.Wang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 10 ++++++++--
> drivers/gpu/drm/amd/amdgpu/soc15d.h | 1 +
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index 1f6a34b..e183b50 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -1615,7 +1615,7 @@ static int gfx_v9_0_cp_gfx_start(struct
> amdgpu_device *adev)
> struct amdgpu_ring *ring = &adev->gfx.gfx_ring[0];
> const struct cs_section_def *sect = NULL;
> const struct cs_extent_def *ext = NULL;
> - int r, i;
> + int r, i, tmp;
>
> /* init the CP */
> WREG32_SOC15(GC, 0, mmCP_MAX_CONTEXT, adev-
> >gfx.config.max_hw_contexts - 1);
> @@ -1623,7 +1623,7 @@ static int gfx_v9_0_cp_gfx_start(struct
> amdgpu_device *adev)
>
> gfx_v9_0_cp_gfx_enable(adev, true);
>
> - r = amdgpu_ring_alloc(ring, gfx_v9_0_get_csb_size(adev) + 4);
> + r = amdgpu_ring_alloc(ring, gfx_v9_0_get_csb_size(adev) + 4 + 3);
> if (r) {
> DRM_ERROR("amdgpu: cp failed to lock ring (%d).\n", r);
> return r;
> @@ -1661,6 +1661,12 @@ static int gfx_v9_0_cp_gfx_start(struct
> amdgpu_device *adev)
> amdgpu_ring_write(ring, 0x8000);
> amdgpu_ring_write(ring, 0x8000);
>
> + amdgpu_ring_write(ring,
> PACKET3(PACKET3_SET_UCONFIG_REG,1));
> + tmp = (PACKET3_SET_UCONFIG_REG_INDEX_TYPE |
> + (SOC15_REG_OFFSET(GC, 0, mmVGT_INDEX_TYPE) -
> PACKET3_SET_UCONFIG_REG_START));
> + amdgpu_ring_write(ring, tmp);
> + amdgpu_ring_write(ring, 0);
> +
> amdgpu_ring_commit(ring);
>
> return 0;
> diff --git a/drivers/gpu/drm/amd/amdgpu/soc15d.h
> b/drivers/gpu/drm/amd/amdgpu/soc15d.h
> index ab94201..3b29827 100644
> --- a/drivers/gpu/drm/amd/amdgpu/soc15d.h
> +++ b/drivers/gpu/drm/amd/amdgpu/soc15d.h
> @@ -250,6 +250,7 @@
> #define PACKET3_SET_UCONFIG_REG 0x79
> #define PACKET3_SET_UCONFIG_REG_START
> 0x0000c000
> #define PACKET3_SET_UCONFIG_REG_END
> 0x0000c400
> +#define PACKET3_SET_UCONFIG_REG_INDEX_TYPE
> (2 << 28)
> #define PACKET3_SCRATCH_RAM_WRITE 0x7D
> #define PACKET3_SCRATCH_RAM_READ 0x7E
> #define PACKET3_LOAD_CONST_RAM 0x80
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list