dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers
@ 2017-12-05 18:24 Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 01/11] drm/amd/display: Use drm_fb_helper_poll_changed() Noralf Trønnes
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao

The helpers are applied and have reached airlied/drm-next.

amd has gained another .poll_changed user since last.

i915 doesn't really need the .poll_changed helper since it now does a
sync and has to open code it after:
drm/i915/fbdev: Serialise early hotplug events with async fbdev config

vboxvideo will be re-sent when the helper functions have landed in
Greg's staging tree.

Noralf.

Changes since version 2:
- Helper functions have been applied
- Add drm/amd/display: Use drm_fb_helper_poll_changed()
- Rebase drm/amdgpu patch
- Rebase drm/msm patch
- Drop i915 patch, not applicable after:
  drm/i915/fbdev: Serialise early hotplug events with async fbdev config
- Drop vboxvideo patch, it will be re-sent when the helper functions
  have reached Greg's staging tree.

Changes since version 1:
- drm_device.drm_fb_helper_private -> drm_device.fb_helper (Ville)

Noralf Trønnes (11):
  drm/amd/display: Use drm_fb_helper_poll_changed()
  drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/armada: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/gma500: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/msm: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/nouveau: Use drm_fb_helper_output_poll_changed()
  drm/omap: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/radeon: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()

 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c       |  9 ++----
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.h       |  2 --
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 27 ------------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c           |  4 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h          |  4 ---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  2 +-
 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 ------
 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 --
 drivers/gpu/drm/gma500/framebuffer.c              |  9 +-----
 drivers/gpu/drm/gma500/psb_drv.c                  | 15 +---------
 drivers/gpu/drm/msm/msm_drv.c                     | 18 ++----------
 drivers/gpu/drm/nouveau/nouveau_display.c         |  3 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c           |  8 ------
 drivers/gpu/drm/nouveau/nouveau_fbcon.h           |  2 --
 drivers/gpu/drm/nouveau/nouveau_vga.c             |  3 +-
 drivers/gpu/drm/nouveau/nv50_display.c            |  2 +-
 drivers/gpu/drm/omapdrm/omap_drv.c                | 34 ++---------------------
 drivers/gpu/drm/radeon/radeon_display.c           |  9 ++----
 drivers/gpu/drm/radeon/radeon_fb.c                | 22 ---------------
 drivers/gpu/drm/radeon/radeon_kms.c               |  5 ++--
 drivers/gpu/drm/radeon/radeon_mode.h              |  3 --
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c       |  9 +-----
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c        |  9 +-----
 drivers/gpu/drm/tegra/drm.c                       | 13 ++-------
 drivers/gpu/drm/tegra/drm.h                       |  4 ---
 drivers/gpu/drm/tegra/fb.c                        | 14 ----------
 32 files changed, 29 insertions(+), 259 deletions(-)

-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v3 01/11] drm/amd/display: Use drm_fb_helper_poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
@ 2017-12-05 18:24 ` Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 02/11] drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() Noralf Trønnes
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao

This driver can use drm_fb_helper_output_poll_changed() as its
.output_poll_changed callback.

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index c324c3b76fac..124229d0af42 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -792,7 +792,7 @@ dm_atomic_state_alloc_free(struct drm_atomic_state *state)
 
 static const struct drm_mode_config_funcs amdgpu_dm_mode_funcs = {
 	.fb_create = amdgpu_user_framebuffer_create,
-	.output_poll_changed = amdgpu_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 	.atomic_check = amdgpu_dm_atomic_check,
 	.atomic_commit = amdgpu_dm_atomic_commit,
 	.atomic_state_alloc = dm_atomic_state_alloc,
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 02/11] drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 01/11] drm/amd/display: Use drm_fb_helper_poll_changed() Noralf Trønnes
@ 2017-12-05 18:24 ` Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 03/11] drm/armada: " Noralf Trønnes
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao

This driver can use drm_fb_helper_lastclose() in its .lastclose function.
It can also use drm_fb_helper_output_poll_changed() as its
.output_poll_changed callback.
Remove the unused driver implementations.

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c |  9 ++-------
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.h |  2 --
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c      | 27 ---------------------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c     |  4 +---
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h    |  4 ----
 5 files changed, 3 insertions(+), 43 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 138beb550a58..38d47559f098 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -34,6 +34,7 @@
 #include <linux/pm_runtime.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_edid.h>
+#include <drm/drm_fb_helper.h>
 
 static void amdgpu_flip_callback(struct dma_fence *f, struct dma_fence_cb *cb)
 {
@@ -556,15 +557,9 @@ amdgpu_user_framebuffer_create(struct drm_device *dev,
 	return &amdgpu_fb->base;
 }
 
-void amdgpu_output_poll_changed(struct drm_device *dev)
-{
-	struct amdgpu_device *adev = dev->dev_private;
-	amdgpu_fb_output_poll_changed(adev);
-}
-
 const struct drm_mode_config_funcs amdgpu_mode_funcs = {
 	.fb_create = amdgpu_user_framebuffer_create,
-	.output_poll_changed = amdgpu_output_poll_changed
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 };
 
 static const struct drm_prop_enum_list amdgpu_underscan_enum_list[] =
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
index 3cc0ef0c055e..7e03002395ff 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
@@ -28,6 +28,4 @@ amdgpu_user_framebuffer_create(struct drm_device *dev,
 						       struct drm_file *file_priv,
 							   const struct drm_mode_fb_cmd2 *mode_cmd);
 
-void amdgpu_output_poll_changed(struct drm_device *dev);
-
 #endif
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 90fa8e8bc6fb..ff3e9beb7d19 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -283,12 +283,6 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
 	return ret;
 }
 
-void amdgpu_fb_output_poll_changed(struct amdgpu_device *adev)
-{
-	if (adev->mode_info.rfbdev)
-		drm_fb_helper_hotplug_event(&adev->mode_info.rfbdev->helper);
-}
-
 static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfbdev)
 {
 	struct amdgpu_framebuffer *rfb = &rfbdev->rfb;
@@ -393,24 +387,3 @@ bool amdgpu_fbdev_robj_is_fb(struct amdgpu_device *adev, struct amdgpu_bo *robj)
 		return true;
 	return false;
 }
-
-void amdgpu_fbdev_restore_mode(struct amdgpu_device *adev)
-{
-	struct amdgpu_fbdev *afbdev;
-	struct drm_fb_helper *fb_helper;
-	int ret;
-
-	if (!adev)
-		return;
-
-	afbdev = adev->mode_info.rfbdev;
-
-	if (!afbdev)
-		return;
-
-	fb_helper = &afbdev->helper;
-
-	ret = drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
-	if (ret)
-		DRM_DEBUG("failed to restore crtc mode\n");
-}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 720139e182a3..c947c2cc813a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -786,9 +786,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
  */
 void amdgpu_driver_lastclose_kms(struct drm_device *dev)
 {
-	struct amdgpu_device *adev = dev->dev_private;
-
-	amdgpu_fbdev_restore_mode(adev);
+	drm_fb_helper_lastclose(dev);
 	vga_switcheroo_process_delayed_switch();
 }
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
index ffde1e9666e8..a5ef204e17cb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
@@ -661,10 +661,6 @@ void amdgpu_fbdev_fini(struct amdgpu_device *adev);
 void amdgpu_fbdev_set_suspend(struct amdgpu_device *adev, int state);
 int amdgpu_fbdev_total_size(struct amdgpu_device *adev);
 bool amdgpu_fbdev_robj_is_fb(struct amdgpu_device *adev, struct amdgpu_bo *robj);
-void amdgpu_fbdev_restore_mode(struct amdgpu_device *adev);
-
-void amdgpu_fb_output_poll_changed(struct amdgpu_device *adev);
-
 
 int amdgpu_align_pitch(struct amdgpu_device *adev, int width, int bpp, bool tiled);
 
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 03/11] drm/armada: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 01/11] drm/amd/display: Use drm_fb_helper_poll_changed() Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 02/11] drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() Noralf Trønnes
@ 2017-12-05 18:24 ` Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 04/11] drm/exynos: " Noralf Trønnes
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao

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>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 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

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 04/11] drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (2 preceding siblings ...)
  2017-12-05 18:24 ` [PATCH v3 03/11] drm/armada: " Noralf Trønnes
@ 2017-12-05 18:24 ` Noralf Trønnes
  2017-12-07  0:50   ` Inki Dae
  2017-12-05 18:24 ` [PATCH v3 05/11] drm/gma500: " Noralf Trønnes
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: Noralf Trønnes, jy0922.shim, daniel.vetter, tomi.valkeinen,
	sw0312.kim, linux, inki.dae, hdegoede, kyungmin.park, bskeggs,
	alexander.deucher, intel-gfx, christian.koenig, mark.yao

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@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 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);
 
-- 
2.14.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 05/11] drm/gma500: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (3 preceding siblings ...)
  2017-12-05 18:24 ` [PATCH v3 04/11] drm/exynos: " Noralf Trønnes
@ 2017-12-05 18:24 ` Noralf Trønnes
  2017-12-05 18:24 ` [PATCH v3 06/11] drm/msm: " Noralf Trønnes
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao

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: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/gma500/framebuffer.c |  9 +--------
 drivers/gpu/drm/gma500/psb_drv.c     | 15 +--------------
 2 files changed, 2 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index 2570c7f647a6..cb0a2ae916e0 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -576,13 +576,6 @@ static void psb_fbdev_fini(struct drm_device *dev)
 	dev_priv->fbdev = NULL;
 }
 
-static void psbfb_output_poll_changed(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_fbdev *fbdev = (struct psb_fbdev *)dev_priv->fbdev;
-	drm_fb_helper_hotplug_event(&fbdev->psb_fb_helper);
-}
-
 /**
  *	psb_user_framebuffer_create_handle - add hamdle to a framebuffer
  *	@fb: framebuffer
@@ -623,7 +616,7 @@ static void psb_user_framebuffer_destroy(struct drm_framebuffer *fb)
 
 static const struct drm_mode_config_funcs psb_mode_funcs = {
 	.fb_create = psb_user_framebuffer_create,
-	.output_poll_changed = psbfb_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 };
 
 static void psb_setup_outputs(struct drm_device *dev)
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index 8f5cc1f471cd..38d09d4b3ed5 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -107,19 +107,6 @@ MODULE_DEVICE_TABLE(pci, pciidlist);
 static const struct drm_ioctl_desc psb_ioctls[] = {
 };
 
-static void psb_driver_lastclose(struct drm_device *dev)
-{
-	int ret;
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_fbdev *fbdev = dev_priv->fbdev;
-
-	ret = drm_fb_helper_restore_fbdev_mode_unlocked(&fbdev->psb_fb_helper);
-	if (ret)
-		DRM_DEBUG("failed to restore crtc mode\n");
-
-	return;
-}
-
 static int psb_do_init(struct drm_device *dev)
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
@@ -479,7 +466,7 @@ static struct drm_driver driver = {
 			   DRIVER_MODESET | DRIVER_GEM,
 	.load = psb_driver_load,
 	.unload = psb_driver_unload,
-	.lastclose = psb_driver_lastclose,
+	.lastclose = drm_fb_helper_lastclose,
 
 	.num_ioctls = ARRAY_SIZE(psb_ioctls),
 	.irq_preinstall = psb_irq_preinstall,
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 06/11] drm/msm: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (4 preceding siblings ...)
  2017-12-05 18:24 ` [PATCH v3 05/11] drm/gma500: " Noralf Trønnes
@ 2017-12-05 18:24 ` Noralf Trønnes
  2017-12-05 18:25 ` [PATCH v3 07/11] drm/nouveau: Use drm_fb_helper_output_poll_changed() Noralf Trønnes
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:24 UTC (permalink / raw)
  To: dri-devel
  Cc: Noralf Trønnes, jy0922.shim, daniel.vetter, tomi.valkeinen,
	sw0312.kim, linux, inki.dae, hdegoede, kyungmin.park, bskeggs,
	alexander.deucher, intel-gfx, christian.koenig, mark.yao

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: Rob Clark <robdclark@gmail.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/msm/msm_drv.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 0a3ea3034e39..d90ef1d78a1b 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -37,16 +37,9 @@
 #define MSM_VERSION_MINOR	3
 #define MSM_VERSION_PATCHLEVEL	0
 
-static void msm_fb_output_poll_changed(struct drm_device *dev)
-{
-	struct msm_drm_private *priv = dev->dev_private;
-	if (priv->fbdev)
-		drm_fb_helper_hotplug_event(priv->fbdev);
-}
-
 static const struct drm_mode_config_funcs mode_config_funcs = {
 	.fb_create = msm_framebuffer_create,
-	.output_poll_changed = msm_fb_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 	.atomic_check = drm_atomic_helper_check,
 	.atomic_commit = msm_atomic_commit,
 	.atomic_state_alloc = msm_atomic_state_alloc,
@@ -551,13 +544,6 @@ static void msm_postclose(struct drm_device *dev, struct drm_file *file)
 	context_close(ctx);
 }
 
-static void msm_lastclose(struct drm_device *dev)
-{
-	struct msm_drm_private *priv = dev->dev_private;
-	if (priv->fbdev)
-		drm_fb_helper_restore_fbdev_mode_unlocked(priv->fbdev);
-}
-
 static irqreturn_t msm_irq(int irq, void *arg)
 {
 	struct drm_device *dev = arg;
@@ -866,7 +852,7 @@ static struct drm_driver msm_driver = {
 				DRIVER_MODESET,
 	.open               = msm_open,
 	.postclose           = msm_postclose,
-	.lastclose          = msm_lastclose,
+	.lastclose          = drm_fb_helper_lastclose,
 	.irq_handler        = msm_irq,
 	.irq_preinstall     = msm_irq_preinstall,
 	.irq_postinstall    = msm_irq_postinstall,
-- 
2.14.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 07/11] drm/nouveau: Use drm_fb_helper_output_poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (5 preceding siblings ...)
  2017-12-05 18:24 ` [PATCH v3 06/11] drm/msm: " Noralf Trønnes
@ 2017-12-05 18:25 ` Noralf Trønnes
  2017-12-05 18:25 ` [PATCH v3 08/11] drm/omap: Use drm_fb_helper_lastclose() and _poll_changed() Noralf Trønnes
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:25 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao

This driver can use drm_fb_helper_output_poll_changed() instead of
its own nouveau_fbcon_output_poll_changed().

Cc: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/nouveau/nouveau_display.c | 3 ++-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c   | 8 --------
 drivers/gpu/drm/nouveau/nouveau_fbcon.h   | 2 --
 drivers/gpu/drm/nouveau/nouveau_vga.c     | 3 ++-
 drivers/gpu/drm/nouveau/nv50_display.c    | 2 +-
 5 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 2e7785f49e6d..009713404cc4 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -29,6 +29,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 <nvif/class.h>
 
@@ -292,7 +293,7 @@ nouveau_user_framebuffer_create(struct drm_device *dev,
 
 static const struct drm_mode_config_funcs nouveau_mode_config_funcs = {
 	.fb_create = nouveau_user_framebuffer_create,
-	.output_poll_changed = nouveau_fbcon_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 };
 
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index c533d8e04afc..45a4572cd2fb 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -413,14 +413,6 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
 	return ret;
 }
 
-void
-nouveau_fbcon_output_poll_changed(struct drm_device *dev)
-{
-	struct nouveau_drm *drm = nouveau_drm(dev);
-	if (drm->fbcon)
-		drm_fb_helper_hotplug_event(&drm->fbcon->helper);
-}
-
 static int
 nouveau_fbcon_destroy(struct drm_device *dev, struct nouveau_fbdev *fbcon)
 {
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.h b/drivers/gpu/drm/nouveau/nouveau_fbcon.h
index e2bca729721e..a6f192ea3fa6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.h
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.h
@@ -68,8 +68,6 @@ void nouveau_fbcon_set_suspend(struct drm_device *dev, int state);
 void nouveau_fbcon_accel_save_disable(struct drm_device *dev);
 void nouveau_fbcon_accel_restore(struct drm_device *dev);
 
-void nouveau_fbcon_output_poll_changed(struct drm_device *dev);
-
 extern int nouveau_nofbaccel;
 
 #endif /* __NV50_FBCON_H__ */
diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
index 52e52a360fb1..3da5a4305aa4 100644
--- a/drivers/gpu/drm/nouveau/nouveau_vga.c
+++ b/drivers/gpu/drm/nouveau/nouveau_vga.c
@@ -4,6 +4,7 @@
 
 #include <drm/drmP.h>
 #include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
 
 #include "nouveau_drv.h"
 #include "nouveau_acpi.h"
@@ -61,7 +62,7 @@ static void
 nouveau_switcheroo_reprobe(struct pci_dev *pdev)
 {
 	struct drm_device *dev = pci_get_drvdata(pdev);
-	nouveau_fbcon_output_poll_changed(dev);
+	drm_fb_helper_output_poll_changed(dev);
 }
 
 static bool
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index 65336948e807..b22c37bde13f 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -4311,7 +4311,7 @@ nv50_disp_atomic_state_alloc(struct drm_device *dev)
 static const struct drm_mode_config_funcs
 nv50_disp_func = {
 	.fb_create = nouveau_user_framebuffer_create,
-	.output_poll_changed = nouveau_fbcon_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 	.atomic_check = nv50_disp_atomic_check,
 	.atomic_commit = nv50_disp_atomic_commit,
 	.atomic_state_alloc = nv50_disp_atomic_state_alloc,
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 08/11] drm/omap: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (6 preceding siblings ...)
  2017-12-05 18:25 ` [PATCH v3 07/11] drm/nouveau: Use drm_fb_helper_output_poll_changed() Noralf Trønnes
@ 2017-12-05 18:25 ` Noralf Trønnes
  2017-12-05 18:25 ` [PATCH v3 09/11] drm/radeon: " Noralf Trønnes
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:25 UTC (permalink / raw)
  To: dri-devel
  Cc: Noralf Trønnes, jy0922.shim, daniel.vetter, tomi.valkeinen,
	sw0312.kim, linux, inki.dae, hdegoede, kyungmin.park, bskeggs,
	alexander.deucher, intel-gfx, christian.koenig, mark.yao

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: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/omapdrm/omap_drv.c | 34 ++--------------------------------
 1 file changed, 2 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index cdf5b0601eba..96857c508ee0 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -46,14 +46,6 @@
  *                 devices
  */
 
-static void omap_fb_output_poll_changed(struct drm_device *dev)
-{
-	struct omap_drm_private *priv = dev->dev_private;
-	DBG("dev=%p", dev);
-	if (priv->fbdev)
-		drm_fb_helper_hotplug_event(priv->fbdev);
-}
-
 static void omap_atomic_wait_for_completion(struct drm_device *dev,
 					    struct drm_atomic_state *old_state)
 {
@@ -132,7 +124,7 @@ static const struct drm_mode_config_helper_funcs omap_mode_config_helper_funcs =
 
 static const struct drm_mode_config_funcs omap_mode_config_funcs = {
 	.fb_create = omap_framebuffer_create,
-	.output_poll_changed = omap_fb_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 	.atomic_check = drm_atomic_helper_check,
 	.atomic_commit = drm_atomic_helper_commit,
 };
@@ -467,28 +459,6 @@ static int dev_open(struct drm_device *dev, struct drm_file *file)
 	return 0;
 }
 
-/**
- * lastclose - clean up after all DRM clients have exited
- * @dev: DRM device
- *
- * Take care of cleaning up after all DRM clients have exited.  In the
- * mode setting case, we want to restore the kernel's initial mode (just
- * in case the last client left us in a bad state).
- */
-static void dev_lastclose(struct drm_device *dev)
-{
-	struct omap_drm_private *priv = dev->dev_private;
-	int ret;
-
-	DBG("lastclose: dev=%p", dev);
-
-	if (priv->fbdev) {
-		ret = drm_fb_helper_restore_fbdev_mode_unlocked(priv->fbdev);
-		if (ret)
-			DBG("failed to restore crtc mode");
-	}
-}
-
 static const struct vm_operations_struct omap_gem_vm_ops = {
 	.fault = omap_gem_fault,
 	.open = drm_gem_vm_open,
@@ -511,7 +481,7 @@ static struct drm_driver omap_drm_driver = {
 	.driver_features = DRIVER_MODESET | DRIVER_GEM  | DRIVER_PRIME |
 		DRIVER_ATOMIC | DRIVER_RENDER,
 	.open = dev_open,
-	.lastclose = dev_lastclose,
+	.lastclose = drm_fb_helper_lastclose,
 #ifdef CONFIG_DEBUG_FS
 	.debugfs_init = omap_debugfs_init,
 #endif
-- 
2.14.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 09/11] drm/radeon: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (7 preceding siblings ...)
  2017-12-05 18:25 ` [PATCH v3 08/11] drm/omap: Use drm_fb_helper_lastclose() and _poll_changed() Noralf Trønnes
@ 2017-12-05 18:25 ` Noralf Trønnes
  2017-12-05 18:25 ` [PATCH v3 10/11] drm/rockchip: " Noralf Trønnes
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:25 UTC (permalink / raw)
  To: dri-devel
  Cc: Noralf Trønnes, jy0922.shim, daniel.vetter, tomi.valkeinen,
	sw0312.kim, linux, inki.dae, hdegoede, kyungmin.park, bskeggs,
	alexander.deucher, intel-gfx, christian.koenig, mark.yao

This driver can use drm_fb_helper_lastclose() in its .lastclose function.
It can also use drm_fb_helper_output_poll_changed() as its
.output_poll_changed callback.

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/radeon/radeon_display.c |  9 ++-------
 drivers/gpu/drm/radeon/radeon_fb.c      | 22 ----------------------
 drivers/gpu/drm/radeon/radeon_kms.c     |  5 ++---
 drivers/gpu/drm/radeon/radeon_mode.h    |  3 ---
 4 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index ddfe91efa61e..dfda5e0ed166 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -32,6 +32,7 @@
 
 #include <linux/pm_runtime.h>
 #include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
 #include <drm/drm_plane_helper.h>
 #include <drm/drm_edid.h>
 
@@ -1362,15 +1363,9 @@ radeon_user_framebuffer_create(struct drm_device *dev,
 	return &radeon_fb->base;
 }
 
-static void radeon_output_poll_changed(struct drm_device *dev)
-{
-	struct radeon_device *rdev = dev->dev_private;
-	radeon_fb_output_poll_changed(rdev);
-}
-
 static const struct drm_mode_config_funcs radeon_mode_funcs = {
 	.fb_create = radeon_user_framebuffer_create,
-	.output_poll_changed = radeon_output_poll_changed
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 };
 
 static const struct drm_prop_enum_list radeon_tmds_pll_enum_list[] =
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index 33b821d6d018..57c5404a1654 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -306,12 +306,6 @@ static int radeonfb_create(struct drm_fb_helper *helper,
 	return ret;
 }
 
-void radeon_fb_output_poll_changed(struct radeon_device *rdev)
-{
-	if (rdev->mode_info.rfbdev)
-		drm_fb_helper_hotplug_event(&rdev->mode_info.rfbdev->helper);
-}
-
 static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfbdev)
 {
 	struct radeon_framebuffer *rfb = &rfbdev->rfb;
@@ -422,19 +416,3 @@ void radeon_fb_remove_connector(struct radeon_device *rdev, struct drm_connector
 	if (rdev->mode_info.rfbdev)
 		drm_fb_helper_remove_one_connector(&rdev->mode_info.rfbdev->helper, connector);
 }
-
-void radeon_fbdev_restore_mode(struct radeon_device *rdev)
-{
-	struct radeon_fbdev *rfbdev = rdev->mode_info.rfbdev;
-	struct drm_fb_helper *fb_helper;
-	int ret;
-
-	if (!rfbdev)
-		return;
-
-	fb_helper = &rfbdev->helper;
-
-	ret = drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
-	if (ret)
-		DRM_DEBUG("failed to restore crtc mode\n");
-}
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index cde037f213d7..dec1e081f529 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -26,6 +26,7 @@
  *          Jerome Glisse
  */
 #include <drm/drmP.h>
+#include <drm/drm_fb_helper.h>
 #include "radeon.h"
 #include <drm/radeon_drm.h>
 #include "radeon_asic.h"
@@ -629,9 +630,7 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
  */
 void radeon_driver_lastclose_kms(struct drm_device *dev)
 {
-	struct radeon_device *rdev = dev->dev_private;
-
-	radeon_fbdev_restore_mode(rdev);
+	drm_fb_helper_lastclose(dev);
 	vga_switcheroo_process_delayed_switch();
 }
 
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index ca0a7ed28c9b..3243e5e01432 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -984,9 +984,6 @@ int radeon_fbdev_init(struct radeon_device *rdev);
 void radeon_fbdev_fini(struct radeon_device *rdev);
 void radeon_fbdev_set_suspend(struct radeon_device *rdev, int state);
 bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj);
-void radeon_fbdev_restore_mode(struct radeon_device *rdev);
-
-void radeon_fb_output_poll_changed(struct radeon_device *rdev);
 
 void radeon_crtc_handle_vblank(struct radeon_device *rdev, int crtc_id);
 
-- 
2.14.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 10/11] drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (8 preceding siblings ...)
  2017-12-05 18:25 ` [PATCH v3 09/11] drm/radeon: " Noralf Trønnes
@ 2017-12-05 18:25 ` Noralf Trønnes
  2017-12-05 18:25 ` [PATCH v3 11/11] drm/tegra: " Noralf Trønnes
  2017-12-05 21:11 ` [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Alex Deucher
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:25 UTC (permalink / raw)
  To: dri-devel
  Cc: Noralf Trønnes, jy0922.shim, daniel.vetter, tomi.valkeinen,
	sw0312.kim, linux, inki.dae, hdegoede, kyungmin.park, bskeggs,
	alexander.deucher, intel-gfx, christian.koenig, mark.yao

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: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 9 +--------
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c  | 9 +--------
 2 files changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 76d63de5921d..d85431400a0d 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -207,13 +207,6 @@ static void rockchip_drm_unbind(struct device *dev)
 	drm_dev_unref(drm_dev);
 }
 
-static void rockchip_drm_lastclose(struct drm_device *dev)
-{
-	struct rockchip_drm_private *priv = dev->dev_private;
-
-	drm_fb_helper_restore_fbdev_mode_unlocked(&priv->fbdev_helper);
-}
-
 static const struct file_operations rockchip_drm_driver_fops = {
 	.owner = THIS_MODULE,
 	.open = drm_open,
@@ -228,7 +221,7 @@ static const struct file_operations rockchip_drm_driver_fops = {
 static struct drm_driver rockchip_drm_driver = {
 	.driver_features	= DRIVER_MODESET | DRIVER_GEM |
 				  DRIVER_PRIME | DRIVER_ATOMIC,
-	.lastclose		= rockchip_drm_lastclose,
+	.lastclose		= drm_fb_helper_lastclose,
 	.gem_vm_ops		= &drm_gem_cma_vm_ops,
 	.gem_free_object_unlocked = rockchip_gem_free_object,
 	.dumb_create		= rockchip_gem_dumb_create,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index cd2ace0c3caa..e266539e04e5 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -167,20 +167,13 @@ rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
 	return ERR_PTR(ret);
 }
 
-static void rockchip_drm_output_poll_changed(struct drm_device *dev)
-{
-	struct rockchip_drm_private *private = dev->dev_private;
-
-	drm_fb_helper_hotplug_event(&private->fbdev_helper);
-}
-
 static const struct drm_mode_config_helper_funcs rockchip_mode_config_helpers = {
 	.atomic_commit_tail = drm_atomic_helper_commit_tail_rpm,
 };
 
 static const struct drm_mode_config_funcs rockchip_drm_mode_config_funcs = {
 	.fb_create = rockchip_user_fb_create,
-	.output_poll_changed = rockchip_drm_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 	.atomic_check = drm_atomic_helper_check,
 	.atomic_commit = drm_atomic_helper_commit,
 };
-- 
2.14.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 11/11] drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (9 preceding siblings ...)
  2017-12-05 18:25 ` [PATCH v3 10/11] drm/rockchip: " Noralf Trønnes
@ 2017-12-05 18:25 ` Noralf Trønnes
  2017-12-05 21:11 ` [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Alex Deucher
  11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-05 18:25 UTC (permalink / raw)
  To: dri-devel
  Cc: Noralf Trønnes, jy0922.shim, daniel.vetter, tomi.valkeinen,
	sw0312.kim, linux, inki.dae, hdegoede, kyungmin.park, bskeggs,
	alexander.deucher, intel-gfx, christian.koenig, mark.yao

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: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/tegra/drm.c | 13 ++-----------
 drivers/gpu/drm/tegra/drm.h |  4 ----
 drivers/gpu/drm/tegra/fb.c  | 14 --------------
 3 files changed, 2 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index 52552b9b89ef..f157bc675269 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -120,7 +120,7 @@ static int tegra_atomic_commit(struct drm_device *drm,
 static const struct drm_mode_config_funcs tegra_drm_mode_funcs = {
 	.fb_create = tegra_fb_create,
 #ifdef CONFIG_DRM_FBDEV_EMULATION
-	.output_poll_changed = tegra_fb_output_poll_changed,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
 #endif
 	.atomic_check = drm_atomic_helper_check,
 	.atomic_commit = tegra_atomic_commit,
@@ -286,15 +286,6 @@ static void tegra_drm_context_free(struct tegra_drm_context *context)
 	kfree(context);
 }
 
-static void tegra_drm_lastclose(struct drm_device *drm)
-{
-#ifdef CONFIG_DRM_FBDEV_EMULATION
-	struct tegra_drm *tegra = drm->dev_private;
-
-	tegra_fbdev_restore_mode(tegra->fbdev);
-#endif
-}
-
 static struct host1x_bo *
 host1x_bo_lookup(struct drm_file *file, u32 handle)
 {
@@ -1100,7 +1091,7 @@ static struct drm_driver tegra_drm_driver = {
 	.unload = tegra_drm_unload,
 	.open = tegra_drm_open,
 	.postclose = tegra_drm_postclose,
-	.lastclose = tegra_drm_lastclose,
+	.lastclose = drm_fb_helper_lastclose,
 
 #if defined(CONFIG_DEBUG_FS)
 	.debugfs_init = tegra_debugfs_init,
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index ddae331ad8b6..0009f6ea21b6 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -188,10 +188,6 @@ int tegra_drm_fb_init(struct drm_device *drm);
 void tegra_drm_fb_exit(struct drm_device *drm);
 void tegra_drm_fb_suspend(struct drm_device *drm);
 void tegra_drm_fb_resume(struct drm_device *drm);
-#ifdef CONFIG_DRM_FBDEV_EMULATION
-void tegra_fbdev_restore_mode(struct tegra_fbdev *fbdev);
-void tegra_fb_output_poll_changed(struct drm_device *drm);
-#endif
 
 extern struct platform_driver tegra_dc_driver;
 extern struct platform_driver tegra_hdmi_driver;
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 80540c1c66dc..8dfe3c6c217e 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -361,20 +361,6 @@ static void tegra_fbdev_exit(struct tegra_fbdev *fbdev)
 	drm_fb_helper_fini(&fbdev->base);
 	tegra_fbdev_free(fbdev);
 }
-
-void tegra_fbdev_restore_mode(struct tegra_fbdev *fbdev)
-{
-	if (fbdev)
-		drm_fb_helper_restore_fbdev_mode_unlocked(&fbdev->base);
-}
-
-void tegra_fb_output_poll_changed(struct drm_device *drm)
-{
-	struct tegra_drm *tegra = drm->dev_private;
-
-	if (tegra->fbdev)
-		drm_fb_helper_hotplug_event(&tegra->fbdev->base);
-}
 #endif
 
 int tegra_drm_fb_prepare(struct drm_device *drm)
-- 
2.14.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers
  2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
                   ` (10 preceding siblings ...)
  2017-12-05 18:25 ` [PATCH v3 11/11] drm/tegra: " Noralf Trønnes
@ 2017-12-05 21:11 ` Alex Deucher
  2017-12-06  9:14   ` Daniel Vetter
  11 siblings, 1 reply; 17+ messages in thread
From: Alex Deucher @ 2017-12-05 21:11 UTC (permalink / raw)
  To: Noralf Trønnes
  Cc: Daniel Vetter, Intel Graphics Development, Seung-Woo Kim,
	Russell King, Maling list - DRI developers, Hans de Goede,
	Kyungmin Park, Tomi Valkeinen, Ben Skeggs, Deucher, Alexander,
	Christian Koenig, mark.yao

On Tue, Dec 5, 2017 at 1:24 PM, Noralf Trønnes <noralf@tronnes.org> wrote:
> The helpers are applied and have reached airlied/drm-next.
>
> amd has gained another .poll_changed user since last.

Patches 1, 2, 9 applied to my -next tree.  Thanks!

Alex

>
> i915 doesn't really need the .poll_changed helper since it now does a
> sync and has to open code it after:
> drm/i915/fbdev: Serialise early hotplug events with async fbdev config
>
> vboxvideo will be re-sent when the helper functions have landed in
> Greg's staging tree.
>
> Noralf.
>
> Changes since version 2:
> - Helper functions have been applied
> - Add drm/amd/display: Use drm_fb_helper_poll_changed()
> - Rebase drm/amdgpu patch
> - Rebase drm/msm patch
> - Drop i915 patch, not applicable after:
>   drm/i915/fbdev: Serialise early hotplug events with async fbdev config
> - Drop vboxvideo patch, it will be re-sent when the helper functions
>   have reached Greg's staging tree.
>
> Changes since version 1:
> - drm_device.drm_fb_helper_private -> drm_device.fb_helper (Ville)
>
> Noralf Trønnes (11):
>   drm/amd/display: Use drm_fb_helper_poll_changed()
>   drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/armada: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/gma500: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/msm: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/nouveau: Use drm_fb_helper_output_poll_changed()
>   drm/omap: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/radeon: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed()
>   drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()
>
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c       |  9 ++----
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.h       |  2 --
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 27 ------------------
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c           |  4 +--
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h          |  4 ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  2 +-
>  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 ------
>  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 --
>  drivers/gpu/drm/gma500/framebuffer.c              |  9 +-----
>  drivers/gpu/drm/gma500/psb_drv.c                  | 15 +---------
>  drivers/gpu/drm/msm/msm_drv.c                     | 18 ++----------
>  drivers/gpu/drm/nouveau/nouveau_display.c         |  3 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c           |  8 ------
>  drivers/gpu/drm/nouveau/nouveau_fbcon.h           |  2 --
>  drivers/gpu/drm/nouveau/nouveau_vga.c             |  3 +-
>  drivers/gpu/drm/nouveau/nv50_display.c            |  2 +-
>  drivers/gpu/drm/omapdrm/omap_drv.c                | 34 ++---------------------
>  drivers/gpu/drm/radeon/radeon_display.c           |  9 ++----
>  drivers/gpu/drm/radeon/radeon_fb.c                | 22 ---------------
>  drivers/gpu/drm/radeon/radeon_kms.c               |  5 ++--
>  drivers/gpu/drm/radeon/radeon_mode.h              |  3 --
>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c       |  9 +-----
>  drivers/gpu/drm/rockchip/rockchip_drm_fb.c        |  9 +-----
>  drivers/gpu/drm/tegra/drm.c                       | 13 ++-------
>  drivers/gpu/drm/tegra/drm.h                       |  4 ---
>  drivers/gpu/drm/tegra/fb.c                        | 14 ----------
>  32 files changed, 29 insertions(+), 259 deletions(-)
>
> --
> 2.14.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers
  2017-12-05 21:11 ` [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Alex Deucher
@ 2017-12-06  9:14   ` Daniel Vetter
  2017-12-08 12:21     ` Noralf Trønnes
  0 siblings, 1 reply; 17+ messages in thread
From: Daniel Vetter @ 2017-12-06  9:14 UTC (permalink / raw)
  To: Alex Deucher
  Cc: Daniel Vetter, Intel Graphics Development, Seung-Woo Kim,
	Russell King, Maling list - DRI developers, Hans de Goede,
	Kyungmin Park, Tomi Valkeinen, Thierry Reding, Ben Skeggs,
	Deucher, Alexander, Christian Koenig, mark.yao

On Tue, Dec 05, 2017 at 04:11:26PM -0500, Alex Deucher wrote:
> On Tue, Dec 5, 2017 at 1:24 PM, Noralf Trønnes <noralf@tronnes.org> wrote:
> > The helpers are applied and have reached airlied/drm-next.
> >
> > amd has gained another .poll_changed user since last.
> 
> Patches 1, 2, 9 applied to my -next tree.  Thanks!

Imo if no one replies I'd push all the remaining ones to drm-misc-next at
the end of next week. There's been plenty of time for maintainers to check
this out, and it's a really nice cleanup imo.
-Daniel

> 
> Alex
> 
> >
> > i915 doesn't really need the .poll_changed helper since it now does a
> > sync and has to open code it after:
> > drm/i915/fbdev: Serialise early hotplug events with async fbdev config
> >
> > vboxvideo will be re-sent when the helper functions have landed in
> > Greg's staging tree.
> >
> > Noralf.
> >
> > Changes since version 2:
> > - Helper functions have been applied
> > - Add drm/amd/display: Use drm_fb_helper_poll_changed()
> > - Rebase drm/amdgpu patch
> > - Rebase drm/msm patch
> > - Drop i915 patch, not applicable after:
> >   drm/i915/fbdev: Serialise early hotplug events with async fbdev config
> > - Drop vboxvideo patch, it will be re-sent when the helper functions
> >   have reached Greg's staging tree.
> >
> > Changes since version 1:
> > - drm_device.drm_fb_helper_private -> drm_device.fb_helper (Ville)
> >
> > Noralf Trønnes (11):
> >   drm/amd/display: Use drm_fb_helper_poll_changed()
> >   drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/armada: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/gma500: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/msm: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/nouveau: Use drm_fb_helper_output_poll_changed()
> >   drm/omap: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/radeon: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed()
> >   drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()
> >
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c       |  9 ++----
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_display.h       |  2 --
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 27 ------------------
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c           |  4 +--
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h          |  4 ---
> >  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  2 +-
> >  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 ------
> >  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 --
> >  drivers/gpu/drm/gma500/framebuffer.c              |  9 +-----
> >  drivers/gpu/drm/gma500/psb_drv.c                  | 15 +---------
> >  drivers/gpu/drm/msm/msm_drv.c                     | 18 ++----------
> >  drivers/gpu/drm/nouveau/nouveau_display.c         |  3 +-
> >  drivers/gpu/drm/nouveau/nouveau_fbcon.c           |  8 ------
> >  drivers/gpu/drm/nouveau/nouveau_fbcon.h           |  2 --
> >  drivers/gpu/drm/nouveau/nouveau_vga.c             |  3 +-
> >  drivers/gpu/drm/nouveau/nv50_display.c            |  2 +-
> >  drivers/gpu/drm/omapdrm/omap_drv.c                | 34 ++---------------------
> >  drivers/gpu/drm/radeon/radeon_display.c           |  9 ++----
> >  drivers/gpu/drm/radeon/radeon_fb.c                | 22 ---------------
> >  drivers/gpu/drm/radeon/radeon_kms.c               |  5 ++--
> >  drivers/gpu/drm/radeon/radeon_mode.h              |  3 --
> >  drivers/gpu/drm/rockchip/rockchip_drm_drv.c       |  9 +-----
> >  drivers/gpu/drm/rockchip/rockchip_drm_fb.c        |  9 +-----
> >  drivers/gpu/drm/tegra/drm.c                       | 13 ++-------
> >  drivers/gpu/drm/tegra/drm.h                       |  4 ---
> >  drivers/gpu/drm/tegra/fb.c                        | 14 ----------
> >  32 files changed, 29 insertions(+), 259 deletions(-)
> >
> > --
> > 2.14.2
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v3 04/11] drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-05 18:24 ` [PATCH v3 04/11] drm/exynos: " Noralf Trønnes
@ 2017-12-07  0:50   ` Inki Dae
  2017-12-07 14:22     ` Noralf Trønnes
  0 siblings, 1 reply; 17+ messages in thread
From: Inki Dae @ 2017-12-07  0:50 UTC (permalink / raw)
  To: Noralf Trønnes, dri-devel
  Cc: daniel.vetter, tomi.valkeinen, sw0312.kim, linux, hdegoede,
	kyungmin.park, thierry.reding, bskeggs, alexander.deucher,
	intel-gfx, christian.koenig, mark.yao



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@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Seems you missed my ACK,
http://www.spinics.net/lists/intel-gfx/msg146188.html

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);
>  
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v3 04/11] drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
  2017-12-07  0:50   ` Inki Dae
@ 2017-12-07 14:22     ` Noralf Trønnes
  0 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-07 14:22 UTC (permalink / raw)
  To: Inki Dae, dri-devel
  Cc: jy0922.shim, daniel.vetter, tomi.valkeinen, sw0312.kim, linux,
	hdegoede, kyungmin.park, bskeggs, alexander.deucher, intel-gfx,
	christian.koenig, mark.yao


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@samsung.com>
>> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
>> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
>> Cc: Kyungmin Park <kyungmin.park@samsung.com>
>> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
>> Acked-by: Daniel Vetter <daniel.vetter@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);
>>   
>>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers
  2017-12-06  9:14   ` Daniel Vetter
@ 2017-12-08 12:21     ` Noralf Trønnes
  0 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 12:21 UTC (permalink / raw)
  To: Daniel Vetter, Alex Deucher
  Cc: Daniel Vetter, Intel Graphics Development, Seung-Woo Kim,
	Russell King, Maling list - DRI developers, Hans de Goede,
	Kyungmin Park, Tomi Valkeinen, Ben Skeggs, Deucher, Alexander,
	Christian Koenig, mark.yao


Den 06.12.2017 10.14, skrev Daniel Vetter:
> On Tue, Dec 05, 2017 at 04:11:26PM -0500, Alex Deucher wrote:
>> On Tue, Dec 5, 2017 at 1:24 PM, Noralf Trønnes <noralf@tronnes.org> wrote:
>>> The helpers are applied and have reached airlied/drm-next.
>>>
>>> amd has gained another .poll_changed user since last.
>> Patches 1, 2, 9 applied to my -next tree.  Thanks!
> Imo if no one replies I'd push all the remaining ones to drm-misc-next at
> the end of next week. There's been plenty of time for maintainers to check
> this out, and it's a really nice cleanup imo.

Thanks, rest of series applied to drm-misc-next.

Noralf.

> -Daniel
>
>> Alex
>>
>>> i915 doesn't really need the .poll_changed helper since it now does a
>>> sync and has to open code it after:
>>> drm/i915/fbdev: Serialise early hotplug events with async fbdev config
>>>
>>> vboxvideo will be re-sent when the helper functions have landed in
>>> Greg's staging tree.
>>>
>>> Noralf.
>>>
>>> Changes since version 2:
>>> - Helper functions have been applied
>>> - Add drm/amd/display: Use drm_fb_helper_poll_changed()
>>> - Rebase drm/amdgpu patch
>>> - Rebase drm/msm patch
>>> - Drop i915 patch, not applicable after:
>>>    drm/i915/fbdev: Serialise early hotplug events with async fbdev config
>>> - Drop vboxvideo patch, it will be re-sent when the helper functions
>>>    have reached Greg's staging tree.
>>>
>>> Changes since version 1:
>>> - drm_device.drm_fb_helper_private -> drm_device.fb_helper (Ville)
>>>
>>> Noralf Trønnes (11):
>>>    drm/amd/display: Use drm_fb_helper_poll_changed()
>>>    drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/armada: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/exynos: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/gma500: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/msm: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/nouveau: Use drm_fb_helper_output_poll_changed()
>>>    drm/omap: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/radeon: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed()
>>>    drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()
>>>
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_display.c       |  9 ++----
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_display.h       |  2 --
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 27 ------------------
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c           |  4 +--
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h          |  4 ---
>>>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  2 +-
>>>   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 ------
>>>   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 --
>>>   drivers/gpu/drm/gma500/framebuffer.c              |  9 +-----
>>>   drivers/gpu/drm/gma500/psb_drv.c                  | 15 +---------
>>>   drivers/gpu/drm/msm/msm_drv.c                     | 18 ++----------
>>>   drivers/gpu/drm/nouveau/nouveau_display.c         |  3 +-
>>>   drivers/gpu/drm/nouveau/nouveau_fbcon.c           |  8 ------
>>>   drivers/gpu/drm/nouveau/nouveau_fbcon.h           |  2 --
>>>   drivers/gpu/drm/nouveau/nouveau_vga.c             |  3 +-
>>>   drivers/gpu/drm/nouveau/nv50_display.c            |  2 +-
>>>   drivers/gpu/drm/omapdrm/omap_drv.c                | 34 ++---------------------
>>>   drivers/gpu/drm/radeon/radeon_display.c           |  9 ++----
>>>   drivers/gpu/drm/radeon/radeon_fb.c                | 22 ---------------
>>>   drivers/gpu/drm/radeon/radeon_kms.c               |  5 ++--
>>>   drivers/gpu/drm/radeon/radeon_mode.h              |  3 --
>>>   drivers/gpu/drm/rockchip/rockchip_drm_drv.c       |  9 +-----
>>>   drivers/gpu/drm/rockchip/rockchip_drm_fb.c        |  9 +-----
>>>   drivers/gpu/drm/tegra/drm.c                       | 13 ++-------
>>>   drivers/gpu/drm/tegra/drm.h                       |  4 ---
>>>   drivers/gpu/drm/tegra/fb.c                        | 14 ----------
>>>   32 files changed, 29 insertions(+), 259 deletions(-)
>>>
>>> --
>>> 2.14.2
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-12-08 12:21 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-05 18:24 [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Noralf Trønnes
2017-12-05 18:24 ` [PATCH v3 01/11] drm/amd/display: Use drm_fb_helper_poll_changed() Noralf Trønnes
2017-12-05 18:24 ` [PATCH v3 02/11] drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed() Noralf Trønnes
2017-12-05 18:24 ` [PATCH v3 03/11] drm/armada: " Noralf Trønnes
2017-12-05 18:24 ` [PATCH v3 04/11] drm/exynos: " Noralf Trønnes
2017-12-07  0:50   ` Inki Dae
2017-12-07 14:22     ` Noralf Trønnes
2017-12-05 18:24 ` [PATCH v3 05/11] drm/gma500: " Noralf Trønnes
2017-12-05 18:24 ` [PATCH v3 06/11] drm/msm: " Noralf Trønnes
2017-12-05 18:25 ` [PATCH v3 07/11] drm/nouveau: Use drm_fb_helper_output_poll_changed() Noralf Trønnes
2017-12-05 18:25 ` [PATCH v3 08/11] drm/omap: Use drm_fb_helper_lastclose() and _poll_changed() Noralf Trønnes
2017-12-05 18:25 ` [PATCH v3 09/11] drm/radeon: " Noralf Trønnes
2017-12-05 18:25 ` [PATCH v3 10/11] drm/rockchip: " Noralf Trønnes
2017-12-05 18:25 ` [PATCH v3 11/11] drm/tegra: " Noralf Trønnes
2017-12-05 21:11 ` [PATCH v3 00/11] drm/fb-helper: Add .last_close and .output_poll_changed helpers Alex Deucher
2017-12-06  9:14   ` Daniel Vetter
2017-12-08 12:21     ` Noralf Trønnes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).