[PATCH 09/20] drm/arm/mali: Use drm_fbdev_generic_setup()

Liviu Dudau liviu.dudau at arm.com
Tue Sep 11 12:18:47 UTC 2018


On Sat, Sep 08, 2018 at 03:46:37PM +0200, Noralf Trønnes wrote:
> The CMA helper is already using the drm_fb_helper_generic_probe part of
> the generic fbdev emulation. This patch makes full use of the generic
> fbdev emulation by using its drm_client callbacks. This means that
> drm_mode_config_funcs->output_poll_changed and drm_driver->lastclose are
> now handled by the emulation code. Additionally fbdev unregister happens
> automatically on drm_dev_unregister().
> 
> The drm_fbdev_generic_setup() call is put after drm_dev_register() in the
> driver. This is done to highlight the fact that fbdev emulation is an
> internal client that makes use of the driver, it is not part of the
> driver as such. If fbdev setup fails, an error is printed, but the driver
> succeeds probing.
> 
> Cc: Liviu Dudau <liviu.dudau at arm.com>

Acked-by: Liviu Dudau <liviu.dudau at arm.com>

Unless you want me to pick this patch into the mali-dp tree, I'm going
to assume that you're going to push the whole series through drm-misc-next.

Best regards,
Liviu

> Cc: Brian Starkey <brian.starkey at arm.com>
> Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
> ---
>  drivers/gpu/drm/arm/malidp_drv.c | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 08b5bb219816..3171ffaadd77 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -260,7 +260,6 @@ static const struct drm_mode_config_helper_funcs malidp_mode_config_helpers = {
>  
>  static const struct drm_mode_config_funcs malidp_mode_config_funcs = {
>  	.fb_create = drm_gem_fb_create,
> -	.output_poll_changed = drm_fb_helper_output_poll_changed,
>  	.atomic_check = drm_atomic_helper_check,
>  	.atomic_commit = drm_atomic_helper_commit,
>  };
> @@ -450,7 +449,6 @@ static int malidp_debugfs_init(struct drm_minor *minor)
>  static struct drm_driver malidp_driver = {
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
>  			   DRIVER_PRIME,
> -	.lastclose = drm_fb_helper_lastclose,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
>  	.gem_vm_ops = &drm_gem_cma_vm_ops,
>  	.dumb_create = malidp_dumb_create,
> @@ -762,22 +760,18 @@ static int malidp_bind(struct device *dev)
>  
>  	drm_mode_config_reset(drm);
>  
> -	ret = drm_fb_cma_fbdev_init(drm, 32, 0);
> -	if (ret)
> -		goto fbdev_fail;
> -
>  	drm_kms_helper_poll_init(drm);
>  
>  	ret = drm_dev_register(drm, 0);
>  	if (ret)
>  		goto register_fail;
>  
> +	drm_fbdev_generic_setup(drm, 32);
> +
>  	return 0;
>  
>  register_fail:
> -	drm_fb_cma_fbdev_fini(drm);
>  	drm_kms_helper_poll_fini(drm);
> -fbdev_fail:
>  	pm_runtime_get_sync(dev);
>  vblank_fail:
>  	malidp_se_irq_fini(hwdev);
> @@ -814,7 +808,6 @@ static void malidp_unbind(struct device *dev)
>  	struct malidp_hw_device *hwdev = malidp->dev;
>  
>  	drm_dev_unregister(drm);
> -	drm_fb_cma_fbdev_fini(drm);
>  	drm_kms_helper_poll_fini(drm);
>  	pm_runtime_get_sync(dev);
>  	drm_crtc_vblank_off(&malidp->crtc);
> -- 
> 2.15.1
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯


More information about the dri-devel mailing list