Re: [PATCH 15/24] drm/radeon: Merge pre/postclose hooks

Alex Deucher
2017-03-09T03:58:50Z

On Wed, Mar 8, 2017 at 9:25 AM, Christian König
<christian.koenig@amd.com> wrote:
> Reviewed-by: Christian König <christian.koenig@amd.com> 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@amd.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: amd-gfx@lists.freedesktop.org
>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>> ---
>> 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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org