Reviewed-by: Xiangliang Yu <Xiangliang.Yu at amd.com> Thanks! Xiangliang Yu > -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Monk Liu > Sent: Wednesday, February 08, 2017 5:27 PM > To: amd-gfx at lists.freedesktop.org > Cc: Liu, Monk <Monk.Liu at amd.com> > Subject: [PATCH 08/11] drm/amdgpu:alloc mqd backup > > this is required for restoring the mqds after GPU reset. > > Change-Id: I84f821faa657a5d942c33d30f206eb66b579c2f8 > Signed-off-by: Monk Liu <Monk.Liu at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 10 ++++++++++ > 2 files changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index acd9970..73086d0 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -781,6 +781,7 @@ struct amdgpu_mec { > u32 num_pipe; > u32 num_mec; > u32 num_queue; > + struct vi_mqd *mqd_backup[AMDGPU_MAX_COMPUTE_RINGS + > 1]; > }; > > struct amdgpu_kiq { > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > index 8f545992..b0612d1 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > @@ -7309,6 +7309,11 @@ static int gfx_v8_0_compute_mqd_soft_init(struct > amdgpu_device *adev) > dev_warn(adev->dev, "failed to create ring mqd ob > (%d)", r); > return r; > } > + > + /* prepare MQD backup */ > + adev- > >gfx.mec.mqd_backup[AMDGPU_MAX_COMPUTE_RINGS] = > kmalloc(sizeof(struct vi_mqd), GFP_KERNEL); > + if (!adev- > >gfx.mec.mqd_backup[AMDGPU_MAX_COMPUTE_RINGS]) > + dev_warn(adev->dev, "no memory to create > MQD backup for ring %s\n", ring->name); > } > > /* create MQD for each KCQ */ > @@ -7323,6 +7328,11 @@ static int gfx_v8_0_compute_mqd_soft_init(struct > amdgpu_device *adev) > dev_warn(adev->dev, "failed to create ring > mqd ob (%d)", r); > return r; > } > + > + /* prepare MQD backup */ > + adev->gfx.mec.mqd_backup[i] = > kmalloc(sizeof(struct vi_mqd), GFP_KERNEL); > + if (!adev->gfx.mec.mqd_backup[i]) > + dev_warn(adev->dev, "no memory to create > MQD backup for ring %s\n", ring->name); > } > } > > -- > 2.7.4 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx