* [PATCH 0/2] Properly suspend/resume sub-allocator @ 2013-03-11 21:06 alexdeucher 2013-03-11 21:06 ` [PATCH 1/2] drm/radeon: fix S/R on VM systems (cayman/TN/SI) alexdeucher 2013-03-11 21:06 ` [PATCH 2/2] drm/radeon: tear down the IB pool on suspend alexdeucher 0 siblings, 2 replies; 5+ messages in thread From: alexdeucher @ 2013-03-11 21:06 UTC (permalink / raw) To: dri-devel; +Cc: Alex Deucher From: Alex Deucher <alexander.deucher@amd.com> This patch set is a bit of a heavy hammer, but I'm not sure it's worth the effort to create separate suspend functions for all sub-allocator users that basically just calls radeon_sa_bo_manager_suspend() and fix up all the sub allocator init functions to call radeon_sa_bo_manager_start() since all we are really avoiding is the allocation of sub-allocator bo. Additionally in the VM case, we have to tear down all the VMs on suspend since the physical addresses of various buffers may have changed on resume. The first patch fixes suspend and resume on cards with VM in use. The second patches doesn't fix any bugs that I know of, but the current code seems wrong to me unless I'm missing something. Alex Deucher (2): drm/radeon: fix S/R on VM systems (cayman/TN/SI) drm/radeon: tear down the IB pool on suspend drivers/gpu/drm/radeon/evergreen.c | 1 + drivers/gpu/drm/radeon/ni.c | 2 ++ drivers/gpu/drm/radeon/r100.c | 1 + drivers/gpu/drm/radeon/r300.c | 1 + drivers/gpu/drm/radeon/r420.c | 1 + drivers/gpu/drm/radeon/r600.c | 1 + drivers/gpu/drm/radeon/rs400.c | 1 + drivers/gpu/drm/radeon/rs600.c | 1 + drivers/gpu/drm/radeon/rs690.c | 1 + drivers/gpu/drm/radeon/rv515.c | 1 + drivers/gpu/drm/radeon/rv770.c | 1 + drivers/gpu/drm/radeon/si.c | 2 ++ 12 files changed, 14 insertions(+), 0 deletions(-) -- 1.7.7.5 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] drm/radeon: fix S/R on VM systems (cayman/TN/SI) 2013-03-11 21:06 [PATCH 0/2] Properly suspend/resume sub-allocator alexdeucher @ 2013-03-11 21:06 ` alexdeucher 2013-03-12 8:59 ` Christian König 2013-03-11 21:06 ` [PATCH 2/2] drm/radeon: tear down the IB pool on suspend alexdeucher 1 sibling, 1 reply; 5+ messages in thread From: alexdeucher @ 2013-03-11 21:06 UTC (permalink / raw) To: dri-devel; +Cc: Alex Deucher, stable From: Alex Deucher <alexander.deucher@amd.com> We weren't properly tearing down the VM sub-alloctor on suspend leading to bogus VM PTs on resume. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=60439 Tested-by: Dmitry Cherkasov <Dmitrii.Cherkasov@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org --- drivers/gpu/drm/radeon/ni.c | 1 + drivers/gpu/drm/radeon/si.c | 1 + 2 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c index 3d81ca7..e6f3989 100644 --- a/drivers/gpu/drm/radeon/ni.c +++ b/drivers/gpu/drm/radeon/ni.c @@ -1780,6 +1780,7 @@ int cayman_resume(struct radeon_device *rdev) int cayman_suspend(struct radeon_device *rdev) { r600_audio_fini(rdev); + radeon_vm_manager_fini(rdev); cayman_cp_enable(rdev, false); cayman_dma_stop(rdev); evergreen_irq_suspend(rdev); diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c index 9128120..bafbe32 100644 --- a/drivers/gpu/drm/radeon/si.c +++ b/drivers/gpu/drm/radeon/si.c @@ -4469,6 +4469,7 @@ int si_resume(struct radeon_device *rdev) int si_suspend(struct radeon_device *rdev) { + radeon_vm_manager_fini(rdev); si_cp_enable(rdev, false); cayman_dma_stop(rdev); si_irq_suspend(rdev); -- 1.7.7.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] drm/radeon: fix S/R on VM systems (cayman/TN/SI) 2013-03-11 21:06 ` [PATCH 1/2] drm/radeon: fix S/R on VM systems (cayman/TN/SI) alexdeucher @ 2013-03-12 8:59 ` Christian König 0 siblings, 0 replies; 5+ messages in thread From: Christian König @ 2013-03-12 8:59 UTC (permalink / raw) To: alexdeucher; +Cc: dri-devel, Alex Deucher, stable Am 11.03.2013 22:06, schrieb alexdeucher@gmail.com: > From: Alex Deucher <alexander.deucher@amd.com> > > We weren't properly tearing down the VM sub-alloctor > on suspend leading to bogus VM PTs on resume. > > Fixes: > https://bugs.freedesktop.org/show_bug.cgi?id=60439 > > Tested-by: Dmitry Cherkasov <Dmitrii.Cherkasov@amd.com> > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Cc: stable@vger.kernel.org I'm still wondering how I missed that. Anyway, I have a NAK on the other patch, but this one is: Reviewed-by: Christian König <christian.koenig@amd.com> Christian. > --- > drivers/gpu/drm/radeon/ni.c | 1 + > drivers/gpu/drm/radeon/si.c | 1 + > 2 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c > index 3d81ca7..e6f3989 100644 > --- a/drivers/gpu/drm/radeon/ni.c > +++ b/drivers/gpu/drm/radeon/ni.c > @@ -1780,6 +1780,7 @@ int cayman_resume(struct radeon_device *rdev) > int cayman_suspend(struct radeon_device *rdev) > { > r600_audio_fini(rdev); > + radeon_vm_manager_fini(rdev); > cayman_cp_enable(rdev, false); > cayman_dma_stop(rdev); > evergreen_irq_suspend(rdev); > diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c > index 9128120..bafbe32 100644 > --- a/drivers/gpu/drm/radeon/si.c > +++ b/drivers/gpu/drm/radeon/si.c > @@ -4469,6 +4469,7 @@ int si_resume(struct radeon_device *rdev) > > int si_suspend(struct radeon_device *rdev) > { > + radeon_vm_manager_fini(rdev); > si_cp_enable(rdev, false); > cayman_dma_stop(rdev); > si_irq_suspend(rdev); ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] drm/radeon: tear down the IB pool on suspend 2013-03-11 21:06 [PATCH 0/2] Properly suspend/resume sub-allocator alexdeucher 2013-03-11 21:06 ` [PATCH 1/2] drm/radeon: fix S/R on VM systems (cayman/TN/SI) alexdeucher @ 2013-03-11 21:06 ` alexdeucher 2013-03-12 8:52 ` Christian König 1 sibling, 1 reply; 5+ messages in thread From: alexdeucher @ 2013-03-11 21:06 UTC (permalink / raw) To: dri-devel; +Cc: Alex Deucher, stable From: Alex Deucher <alexander.deucher@amd.com> Otherwise we may end up with stale MC addresses after resume. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org --- drivers/gpu/drm/radeon/evergreen.c | 1 + drivers/gpu/drm/radeon/ni.c | 1 + drivers/gpu/drm/radeon/r100.c | 1 + drivers/gpu/drm/radeon/r300.c | 1 + drivers/gpu/drm/radeon/r420.c | 1 + drivers/gpu/drm/radeon/r600.c | 1 + drivers/gpu/drm/radeon/rs400.c | 1 + drivers/gpu/drm/radeon/rs600.c | 1 + drivers/gpu/drm/radeon/rs690.c | 1 + drivers/gpu/drm/radeon/rv515.c | 1 + drivers/gpu/drm/radeon/rv770.c | 1 + drivers/gpu/drm/radeon/si.c | 1 + 12 files changed, 12 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 305a657..f0e64a4 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -3720,6 +3720,7 @@ int evergreen_suspend(struct radeon_device *rdev) r600_dma_stop(rdev); evergreen_irq_suspend(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); evergreen_pcie_gart_disable(rdev); return 0; diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c index e6f3989..367b7a1 100644 --- a/drivers/gpu/drm/radeon/ni.c +++ b/drivers/gpu/drm/radeon/ni.c @@ -1785,6 +1785,7 @@ int cayman_suspend(struct radeon_device *rdev) cayman_dma_stop(rdev); evergreen_irq_suspend(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); cayman_pcie_gart_disable(rdev); return 0; } diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 9db5853..691dc93 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c @@ -3892,6 +3892,7 @@ int r100_suspend(struct radeon_device *rdev) { r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); r100_irq_disable(rdev); if (rdev->flags & RADEON_IS_PCI) r100_pci_gart_disable(rdev); diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c index c60350e..28ff068 100644 --- a/drivers/gpu/drm/radeon/r300.c +++ b/drivers/gpu/drm/radeon/r300.c @@ -1436,6 +1436,7 @@ int r300_suspend(struct radeon_device *rdev) { r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); r100_irq_disable(rdev); if (rdev->flags & RADEON_IS_PCIE) rv370_pcie_gart_disable(rdev); diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c index 6fce2eb..6edecc8 100644 --- a/drivers/gpu/drm/radeon/r420.c +++ b/drivers/gpu/drm/radeon/r420.c @@ -325,6 +325,7 @@ int r420_suspend(struct radeon_device *rdev) r420_cp_errata_fini(rdev); r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); r100_irq_disable(rdev); if (rdev->flags & RADEON_IS_PCIE) rv370_pcie_gart_disable(rdev); diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 0740db3..6166c7e 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -3031,6 +3031,7 @@ int r600_suspend(struct radeon_device *rdev) r600_dma_stop(rdev); r600_irq_suspend(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); r600_pcie_gart_disable(rdev); return 0; diff --git a/drivers/gpu/drm/radeon/rs400.c b/drivers/gpu/drm/radeon/rs400.c index 73051ce..5eaf41f 100644 --- a/drivers/gpu/drm/radeon/rs400.c +++ b/drivers/gpu/drm/radeon/rs400.c @@ -470,6 +470,7 @@ int rs400_suspend(struct radeon_device *rdev) { r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); r100_irq_disable(rdev); rs400_gart_disable(rdev); return 0; diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index 5a0fc74..8f70d78 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c @@ -945,6 +945,7 @@ int rs600_suspend(struct radeon_device *rdev) r600_audio_fini(rdev); r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); rs600_irq_disable(rdev); rs600_gart_disable(rdev); return 0; diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index 5706d2a..a9e7890 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c @@ -686,6 +686,7 @@ int rs690_suspend(struct radeon_device *rdev) r600_audio_fini(rdev); r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); rs600_irq_disable(rdev); rs400_gart_disable(rdev); return 0; diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c index 435ed35..73ce8a3 100644 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c @@ -530,6 +530,7 @@ int rv515_suspend(struct radeon_device *rdev) { r100_cp_disable(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); rs600_irq_disable(rdev); if (rdev->flags & RADEON_IS_PCIE) rv370_pcie_gart_disable(rdev); diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index d63fe1d..021a056 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c @@ -1119,6 +1119,7 @@ int rv770_suspend(struct radeon_device *rdev) r600_dma_stop(rdev); r600_irq_suspend(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); rv770_pcie_gart_disable(rdev); return 0; diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c index bafbe32..23f4ab99 100644 --- a/drivers/gpu/drm/radeon/si.c +++ b/drivers/gpu/drm/radeon/si.c @@ -4474,6 +4474,7 @@ int si_suspend(struct radeon_device *rdev) cayman_dma_stop(rdev); si_irq_suspend(rdev); radeon_wb_disable(rdev); + radeon_ib_pool_fini(rdev); si_pcie_gart_disable(rdev); return 0; } -- 1.7.7.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/radeon: tear down the IB pool on suspend 2013-03-11 21:06 ` [PATCH 2/2] drm/radeon: tear down the IB pool on suspend alexdeucher @ 2013-03-12 8:52 ` Christian König 0 siblings, 0 replies; 5+ messages in thread From: Christian König @ 2013-03-12 8:52 UTC (permalink / raw) To: alexdeucher; +Cc: Alex Deucher, stable, dri-devel NAK! I removed this on purpose some time ago, the IB pool is in GART memory, which essential is system memory. So we don't need to unlock/unpin the IB pool on suspend. Ontop of this it is quite dangerous to do so in a case of a GPU reset, cause then there still might be IBs in the fly and if you call radeon_ib_fini all of the addresses stitched together so far become invalid because of the unlock/unpin/free of the sa bo. Christian. Am 11.03.2013 22:06, schrieb alexdeucher@gmail.com: > From: Alex Deucher <alexander.deucher@amd.com> > > Otherwise we may end up with stale MC addresses > after resume. > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Cc: stable@vger.kernel.org > --- > drivers/gpu/drm/radeon/evergreen.c | 1 + > drivers/gpu/drm/radeon/ni.c | 1 + > drivers/gpu/drm/radeon/r100.c | 1 + > drivers/gpu/drm/radeon/r300.c | 1 + > drivers/gpu/drm/radeon/r420.c | 1 + > drivers/gpu/drm/radeon/r600.c | 1 + > drivers/gpu/drm/radeon/rs400.c | 1 + > drivers/gpu/drm/radeon/rs600.c | 1 + > drivers/gpu/drm/radeon/rs690.c | 1 + > drivers/gpu/drm/radeon/rv515.c | 1 + > drivers/gpu/drm/radeon/rv770.c | 1 + > drivers/gpu/drm/radeon/si.c | 1 + > 12 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c > index 305a657..f0e64a4 100644 > --- a/drivers/gpu/drm/radeon/evergreen.c > +++ b/drivers/gpu/drm/radeon/evergreen.c > @@ -3720,6 +3720,7 @@ int evergreen_suspend(struct radeon_device *rdev) > r600_dma_stop(rdev); > evergreen_irq_suspend(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > evergreen_pcie_gart_disable(rdev); > > return 0; > diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c > index e6f3989..367b7a1 100644 > --- a/drivers/gpu/drm/radeon/ni.c > +++ b/drivers/gpu/drm/radeon/ni.c > @@ -1785,6 +1785,7 @@ int cayman_suspend(struct radeon_device *rdev) > cayman_dma_stop(rdev); > evergreen_irq_suspend(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > cayman_pcie_gart_disable(rdev); > return 0; > } > diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c > index 9db5853..691dc93 100644 > --- a/drivers/gpu/drm/radeon/r100.c > +++ b/drivers/gpu/drm/radeon/r100.c > @@ -3892,6 +3892,7 @@ int r100_suspend(struct radeon_device *rdev) > { > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > r100_irq_disable(rdev); > if (rdev->flags & RADEON_IS_PCI) > r100_pci_gart_disable(rdev); > diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c > index c60350e..28ff068 100644 > --- a/drivers/gpu/drm/radeon/r300.c > +++ b/drivers/gpu/drm/radeon/r300.c > @@ -1436,6 +1436,7 @@ int r300_suspend(struct radeon_device *rdev) > { > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > r100_irq_disable(rdev); > if (rdev->flags & RADEON_IS_PCIE) > rv370_pcie_gart_disable(rdev); > diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c > index 6fce2eb..6edecc8 100644 > --- a/drivers/gpu/drm/radeon/r420.c > +++ b/drivers/gpu/drm/radeon/r420.c > @@ -325,6 +325,7 @@ int r420_suspend(struct radeon_device *rdev) > r420_cp_errata_fini(rdev); > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > r100_irq_disable(rdev); > if (rdev->flags & RADEON_IS_PCIE) > rv370_pcie_gart_disable(rdev); > diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c > index 0740db3..6166c7e 100644 > --- a/drivers/gpu/drm/radeon/r600.c > +++ b/drivers/gpu/drm/radeon/r600.c > @@ -3031,6 +3031,7 @@ int r600_suspend(struct radeon_device *rdev) > r600_dma_stop(rdev); > r600_irq_suspend(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > r600_pcie_gart_disable(rdev); > > return 0; > diff --git a/drivers/gpu/drm/radeon/rs400.c b/drivers/gpu/drm/radeon/rs400.c > index 73051ce..5eaf41f 100644 > --- a/drivers/gpu/drm/radeon/rs400.c > +++ b/drivers/gpu/drm/radeon/rs400.c > @@ -470,6 +470,7 @@ int rs400_suspend(struct radeon_device *rdev) > { > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > r100_irq_disable(rdev); > rs400_gart_disable(rdev); > return 0; > diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c > index 5a0fc74..8f70d78 100644 > --- a/drivers/gpu/drm/radeon/rs600.c > +++ b/drivers/gpu/drm/radeon/rs600.c > @@ -945,6 +945,7 @@ int rs600_suspend(struct radeon_device *rdev) > r600_audio_fini(rdev); > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > rs600_irq_disable(rdev); > rs600_gart_disable(rdev); > return 0; > diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c > index 5706d2a..a9e7890 100644 > --- a/drivers/gpu/drm/radeon/rs690.c > +++ b/drivers/gpu/drm/radeon/rs690.c > @@ -686,6 +686,7 @@ int rs690_suspend(struct radeon_device *rdev) > r600_audio_fini(rdev); > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > rs600_irq_disable(rdev); > rs400_gart_disable(rdev); > return 0; > diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c > index 435ed35..73ce8a3 100644 > --- a/drivers/gpu/drm/radeon/rv515.c > +++ b/drivers/gpu/drm/radeon/rv515.c > @@ -530,6 +530,7 @@ int rv515_suspend(struct radeon_device *rdev) > { > r100_cp_disable(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > rs600_irq_disable(rdev); > if (rdev->flags & RADEON_IS_PCIE) > rv370_pcie_gart_disable(rdev); > diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c > index d63fe1d..021a056 100644 > --- a/drivers/gpu/drm/radeon/rv770.c > +++ b/drivers/gpu/drm/radeon/rv770.c > @@ -1119,6 +1119,7 @@ int rv770_suspend(struct radeon_device *rdev) > r600_dma_stop(rdev); > r600_irq_suspend(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > rv770_pcie_gart_disable(rdev); > > return 0; > diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c > index bafbe32..23f4ab99 100644 > --- a/drivers/gpu/drm/radeon/si.c > +++ b/drivers/gpu/drm/radeon/si.c > @@ -4474,6 +4474,7 @@ int si_suspend(struct radeon_device *rdev) > cayman_dma_stop(rdev); > si_irq_suspend(rdev); > radeon_wb_disable(rdev); > + radeon_ib_pool_fini(rdev); > si_pcie_gart_disable(rdev); > return 0; > } ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-03-12 8:59 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-03-11 21:06 [PATCH 0/2] Properly suspend/resume sub-allocator alexdeucher 2013-03-11 21:06 ` [PATCH 1/2] drm/radeon: fix S/R on VM systems (cayman/TN/SI) alexdeucher 2013-03-12 8:59 ` Christian König 2013-03-11 21:06 ` [PATCH 2/2] drm/radeon: tear down the IB pool on suspend alexdeucher 2013-03-12 8:52 ` Christian König
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.