drm/amdgpu: Use drm_fb_helper_lastclose() and _poll_changed()
authorNoralf Trønnes <noralf@tronnes.org>
Tue, 5 Dec 2017 18:24:55 +0000 (19:24 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Dec 2017 17:48:33 +0000 (12:48 -0500)
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>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h

index 138beb550a5897dcaefeadedc9d3bb238ed4f2c1..38d47559f0985e71bac60088c5714ac8c27743b5 100644 (file)
@@ -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[] =
index 11ae4ab23768f8ed8b9a84f9fbfc562385e1a97c..0bcb6c6e0ca93c4e24b4e441acbf99f6aedff840 100644 (file)
@@ -27,6 +27,5 @@ struct drm_framebuffer *
 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
index 90fa8e8bc6fb3db21d57fe390cf0e2d0f38ec5e8..ff3e9beb7d19c64c3a7161953a844cebb9f5bb8d 100644 (file)
@@ -283,12 +283,6 @@ out:
        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");
-}
index 3222e1d4636c4fcb2bac5753b4405d2986b0c75f..bd6e9a40f4211cad9f33b9b3e33903120c09ae63 100644 (file)
@@ -788,9 +788,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();
 }
 
index 126b8b068b7ae042ae128f1f9fe9fcced582273a..54f06c959340923c36ca469dd558df968e5688d0 100644 (file)
@@ -658,10 +658,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);