On Wed, Mar 8, 2017 at 9:25 AM, Christian König <christian.koenig@xxxxxxx> wrote: > Reviewed-by: Christian König <christian.koenig@xxxxxxx> for this one and > #19. Applied both. Thanks! Alex > > Christian. > > > Am 08.03.2017 um 15:12 schrieb Daniel Vetter: >> >> Again no apparent explanation for the split except hysterical raisins. >> Merging them also makes it a bit more obviuos what's going on wrt the >> runtime pm refdancing. >> >> Cc: Alex Deucher <alexander.deucher@xxxxxxx> >> Cc: Christian König <christian.koenig@xxxxxxx> >> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx >> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> >> --- >> drivers/gpu/drm/radeon/radeon_drv.c | 3 --- >> drivers/gpu/drm/radeon/radeon_kms.c | 42 >> +++++++++++++------------------------ >> 2 files changed, 14 insertions(+), 31 deletions(-) >> >> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c >> b/drivers/gpu/drm/radeon/radeon_drv.c >> index 956c425e639e..312436a8d9e5 100644 >> --- a/drivers/gpu/drm/radeon/radeon_drv.c >> +++ b/drivers/gpu/drm/radeon/radeon_drv.c >> @@ -108,8 +108,6 @@ void radeon_driver_lastclose_kms(struct drm_device >> *dev); >> int radeon_driver_open_kms(struct drm_device *dev, struct drm_file >> *file_priv); >> void radeon_driver_postclose_kms(struct drm_device *dev, >> struct drm_file *file_priv); >> -void radeon_driver_preclose_kms(struct drm_device *dev, >> - struct drm_file *file_priv); >> int radeon_suspend_kms(struct drm_device *dev, bool suspend, >> bool fbcon, bool freeze); >> int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon); >> @@ -538,7 +536,6 @@ static struct drm_driver kms_driver = { >> DRIVER_PRIME | DRIVER_RENDER, >> .load = radeon_driver_load_kms, >> .open = radeon_driver_open_kms, >> - .preclose = radeon_driver_preclose_kms, >> .postclose = radeon_driver_postclose_kms, >> .lastclose = radeon_driver_lastclose_kms, >> .set_busid = drm_pci_set_busid, >> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c >> b/drivers/gpu/drm/radeon/radeon_kms.c >> index 56f35c06742c..a32a62e03a44 100644 >> --- a/drivers/gpu/drm/radeon/radeon_kms.c >> +++ b/drivers/gpu/drm/radeon/radeon_kms.c >> @@ -691,13 +691,26 @@ int radeon_driver_open_kms(struct drm_device *dev, >> struct drm_file *file_priv) >> * @dev: drm dev pointer >> * @file_priv: drm file >> * >> - * On device post close, tear down vm on cayman+ (all asics). >> + * On device close, tear down hyperz and cmask filps on r1xx-r5xx >> + * (all asics). And tear down vm on cayman+ (all asics). >> */ >> void radeon_driver_postclose_kms(struct drm_device *dev, >> struct drm_file *file_priv) >> { >> struct radeon_device *rdev = dev->dev_private; >> + pm_runtime_get_sync(dev->dev); >> + >> + mutex_lock(&rdev->gem.mutex); >> + if (rdev->hyperz_filp == file_priv) >> + rdev->hyperz_filp = NULL; >> + if (rdev->cmask_filp == file_priv) >> + rdev->cmask_filp = NULL; >> + mutex_unlock(&rdev->gem.mutex); >> + >> + radeon_uvd_free_handles(rdev, file_priv); >> + radeon_vce_free_handles(rdev, file_priv); >> + >> /* new gpu have virtual address space support */ >> if (rdev->family >= CHIP_CAYMAN && file_priv->driver_priv) { >> struct radeon_fpriv *fpriv = file_priv->driver_priv; >> @@ -721,33 +734,6 @@ void radeon_driver_postclose_kms(struct drm_device >> *dev, >> pm_runtime_put_autosuspend(dev->dev); >> } >> -/** >> - * radeon_driver_preclose_kms - drm callback for pre close >> - * >> - * @dev: drm dev pointer >> - * @file_priv: drm file >> - * >> - * On device pre close, tear down hyperz and cmask filps on r1xx-r5xx >> - * (all asics). >> - */ >> -void radeon_driver_preclose_kms(struct drm_device *dev, >> - struct drm_file *file_priv) >> -{ >> - struct radeon_device *rdev = dev->dev_private; >> - >> - pm_runtime_get_sync(dev->dev); >> - >> - mutex_lock(&rdev->gem.mutex); >> - if (rdev->hyperz_filp == file_priv) >> - rdev->hyperz_filp = NULL; >> - if (rdev->cmask_filp == file_priv) >> - rdev->cmask_filp = NULL; >> - mutex_unlock(&rdev->gem.mutex); >> - >> - radeon_uvd_free_handles(rdev, file_priv); >> - radeon_vce_free_handles(rdev, file_priv); >> -} >> - >> /* >> * VBlank related functions. >> */ > > > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel