Message ID | 20171019230213.63521-6-noralf@tronnes.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 >
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;
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> 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(-)