[PATCH v3 04/11] drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()

Noralf Trønnes noralf at tronnes.org
Thu Dec 7 14:22:36 UTC 2017


Den 07.12.2017 01.50, skrev Inki Dae:
>
> 2017년 12월 06일 03:24에 Noralf Trønnes 이(가) 쓴 글:
>> This driver can use drm_fb_helper_lastclose() as its .lastclose callback.
>> It can also use drm_fb_helper_output_poll_changed() as its
>> .output_poll_changed callback.
>>
>> Cc: Inki Dae <inki.dae at samsung.com>
>> Cc: Joonyoung Shim <jy0922.shim at samsung.com>
>> Cc: Seung-Woo Kim <sw0312.kim at samsung.com>
>> Cc: Kyungmin Park <kyungmin.park at samsung.com>
>> Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
>> Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> Seems you missed my ACK,
> http://www.spinics.net/lists/intel-gfx/msg146188.html

Thanks for reminding me.

Noralf.

> Thanks,
> Inki Dae
>
>> ---
>>   drivers/gpu/drm/exynos/exynos_drm_drv.c   |  8 ++------
>>   drivers/gpu/drm/exynos/exynos_drm_fb.c    |  2 +-
>>   drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 18 ------------------
>>   drivers/gpu/drm/exynos/exynos_drm_fbdev.h |  2 --
>>   4 files changed, 3 insertions(+), 27 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
>> index 82b72425a42f..2f2bd6e37e62 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
>> @@ -16,6 +16,7 @@
>>   #include <drm/drm_atomic.h>
>>   #include <drm/drm_atomic_helper.h>
>>   #include <drm/drm_crtc_helper.h>
>> +#include <drm/drm_fb_helper.h>
>>   
>>   #include <linux/component.h>
>>   
>> @@ -89,11 +90,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file)
>>   	file->driver_priv = NULL;
>>   }
>>   
>> -static void exynos_drm_lastclose(struct drm_device *dev)
>> -{
>> -	exynos_drm_fbdev_restore_mode(dev);
>> -}
>> -
>>   static const struct vm_operations_struct exynos_drm_gem_vm_ops = {
>>   	.fault = exynos_drm_gem_fault,
>>   	.open = drm_gem_vm_open,
>> @@ -140,7 +136,7 @@ static struct drm_driver exynos_drm_driver = {
>>   	.driver_features	= DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME
>>   				  | DRIVER_ATOMIC | DRIVER_RENDER,
>>   	.open			= exynos_drm_open,
>> -	.lastclose		= exynos_drm_lastclose,
>> +	.lastclose		= drm_fb_helper_lastclose,
>>   	.postclose		= exynos_drm_postclose,
>>   	.gem_free_object_unlocked = exynos_drm_gem_free_object,
>>   	.gem_vm_ops		= &exynos_drm_gem_vm_ops,
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
>> index 8208df56a88f..0faaf829f5bf 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
>> @@ -205,7 +205,7 @@ static struct drm_mode_config_helper_funcs exynos_drm_mode_config_helpers = {
>>   
>>   static const struct drm_mode_config_funcs exynos_drm_mode_config_funcs = {
>>   	.fb_create = exynos_user_fb_create,
>> -	.output_poll_changed = exynos_drm_output_poll_changed,
>> +	.output_poll_changed = drm_fb_helper_output_poll_changed,
>>   	.atomic_check = exynos_atomic_check,
>>   	.atomic_commit = drm_atomic_helper_commit,
>>   };
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
>> index dfb66ecf417b..132dd52d0ac7 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
>> @@ -270,24 +270,6 @@ void exynos_drm_fbdev_fini(struct drm_device *dev)
>>   	private->fb_helper = NULL;
>>   }
>>   
>> -void exynos_drm_fbdev_restore_mode(struct drm_device *dev)
>> -{
>> -	struct exynos_drm_private *private = dev->dev_private;
>> -
>> -	if (!private || !private->fb_helper)
>> -		return;
>> -
>> -	drm_fb_helper_restore_fbdev_mode_unlocked(private->fb_helper);
>> -}
>> -
>> -void exynos_drm_output_poll_changed(struct drm_device *dev)
>> -{
>> -	struct exynos_drm_private *private = dev->dev_private;
>> -	struct drm_fb_helper *fb_helper = private->fb_helper;
>> -
>> -	drm_fb_helper_hotplug_event(fb_helper);
>> -}
>> -
>>   void exynos_drm_fbdev_suspend(struct drm_device *dev)
>>   {
>>   	struct exynos_drm_private *private = dev->dev_private;
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.h b/drivers/gpu/drm/exynos/exynos_drm_fbdev.h
>> index 645d1bb7f665..b33847223a85 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.h
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.h
>> @@ -19,8 +19,6 @@
>>   
>>   int exynos_drm_fbdev_init(struct drm_device *dev);
>>   void exynos_drm_fbdev_fini(struct drm_device *dev);
>> -void exynos_drm_fbdev_restore_mode(struct drm_device *dev);
>> -void exynos_drm_output_poll_changed(struct drm_device *dev);
>>   void exynos_drm_fbdev_suspend(struct drm_device *drm);
>>   void exynos_drm_fbdev_resume(struct drm_device *drm);
>>   
>>



More information about the dri-devel mailing list