Re: [PATCH 05/15] drm/armada: Use drm_fb_helper_lastclose() and _poll_changed()

Russell King - ARM Linux
2017-10-23T10:31:56Z

On Fri, Oct 20, 2017 at 01:02:03AM +0200, Noralf Trønnes wrote:
> 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: Russell King <linux@armlinux.org.uk>

Acked-by: Russell King <rmk+kernel@armlinux.org.uk>

Thanks.

> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> ---
> drivers/gpu/drm/armada/armada_drm.h | 1 -
> drivers/gpu/drm/armada/armada_drv.c | 8 ++------
> drivers/gpu/drm/armada/armada_fb.c | 11 +----------
> drivers/gpu/drm/armada/armada_fbdev.c | 8 --------
> 4 files changed, 3 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/armada/armada_drm.h b/drivers/gpu/drm/armada/armada_drm.h
> index b064879ecdbd..cc4c557c9f66 100644
> --- a/drivers/gpu/drm/armada/armada_drm.h
> +++ b/drivers/gpu/drm/armada/armada_drm.h
> @@ -84,7 +84,6 @@ void armada_drm_queue_unref_work(struct drm_device *,
> extern const struct drm_mode_config_funcs armada_drm_mode_config_funcs;
>
> int armada_fbdev_init(struct drm_device *);
> -void armada_fbdev_lastclose(struct drm_device *);
> void armada_fbdev_fini(struct drm_device *);
>
> int armada_overlay_plane_create(struct drm_device *, unsigned long);
> diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
> index e857b88a9799..4b11b6b52f1d 100644
> --- a/drivers/gpu/drm/armada/armada_drv.c
> +++ b/drivers/gpu/drm/armada/armada_drv.c
> @@ -10,6 +10,7 @@
> #include <linux/module.h>
> #include <linux/of_graph.h>
> #include <drm/drm_crtc_helper.h>
> +#include <drm/drm_fb_helper.h>
> #include <drm/drm_of.h>
> #include "armada_crtc.h"
> #include "armada_drm.h"
> @@ -54,15 +55,10 @@ static struct drm_ioctl_desc armada_ioctls[] = {
> DRM_IOCTL_DEF_DRV(ARMADA_GEM_PWRITE, armada_gem_pwrite_ioctl, 0),
> };
>
> -static void armada_drm_lastclose(struct drm_device *dev)
> -{
> - armada_fbdev_lastclose(dev);
> -}
> -
> DEFINE_DRM_GEM_FOPS(armada_drm_fops);
>
> static struct drm_driver armada_drm_driver = {
> - .lastclose = armada_drm_lastclose,
> + .lastclose = drm_fb_helper_lastclose,
> .gem_free_object_unlocked = armada_gem_free_object,
> .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
> .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
> diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
> index a38d5a0892a9..ac92bce07ecd 100644
> --- a/drivers/gpu/drm/armada/armada_fb.c
> +++ b/drivers/gpu/drm/armada/armada_fb.c
> @@ -154,16 +154,7 @@ static struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
> return ERR_PTR(ret);
> }
>
> -static void armada_output_poll_changed(struct drm_device *dev)
> -{
> - struct armada_private *priv = dev->dev_private;
> - struct drm_fb_helper *fbh = priv->fbdev;
> -
> - if (fbh)
> - drm_fb_helper_hotplug_event(fbh);
> -}
> -
> const struct drm_mode_config_funcs armada_drm_mode_config_funcs = {
> .fb_create = armada_fb_create,
> - .output_poll_changed = armada_output_poll_changed,
> + .output_poll_changed = drm_fb_helper_output_poll_changed,
> };
> diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
> index a2ce83f84800..2a59db0994b2 100644
> --- a/drivers/gpu/drm/armada/armada_fbdev.c
> +++ b/drivers/gpu/drm/armada/armada_fbdev.c
> @@ -159,14 +159,6 @@ int armada_fbdev_init(struct drm_device *dev)
> return ret;
> }
>
> -void armada_fbdev_lastclose(struct drm_device *dev)
> -{
> - struct armada_private *priv = dev->dev_private;
> -
> - if (priv->fbdev)
> - drm_fb_helper_restore_fbdev_mode_unlocked(priv->fbdev);
> -}
> -
> void armada_fbdev_fini(struct drm_device *dev)
> {
> struct armada_private *priv = dev->dev_private;
> --
> 2.14.2
>

--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up