aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSouptick Joarder <jrdr.linux@gmail.com>2018-07-31 16:07:05 -0400
committerThierry Reding <treding@nvidia.com>2018-09-18 10:53:54 -0400
commit53f1e0620b9b67f786b23c7e7fee96323bf2aa45 (patch)
treeeca100f53378ee7bc1af15ac52bd960a7d8d3b14
parent5b394b2ddf0347bef56e50c69a58773c94343ff3 (diff)
drm/tegra: Convert drm_atomic_helper_suspend/resume()
convert drm_atomic_helper_suspend/resume() to use drm_mode_config_helper_suspend/resume(). With this conversion, tegra_drm_fb_suspend() and tegra_drm_fb_resume() will not be used anymore. Both of these functions can be removed. Also, in tegra_drm struct's member state will not be used anymore. So this can be removed forever. Fixed one sparse warning. Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> Signed-off-by: Ajit Negi <ajitn.linux@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--drivers/gpu/drm/tegra/drm.c20
-rw-r--r--drivers/gpu/drm/tegra/drm.h4
-rw-r--r--drivers/gpu/drm/tegra/fb.c24
3 files changed, 3 insertions, 45 deletions
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index a2bd5876c633..9a0efcea217a 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -1212,31 +1212,15 @@ static int host1x_drm_remove(struct host1x_device *dev)
1212static int host1x_drm_suspend(struct device *dev) 1212static int host1x_drm_suspend(struct device *dev)
1213{ 1213{
1214 struct drm_device *drm = dev_get_drvdata(dev); 1214 struct drm_device *drm = dev_get_drvdata(dev);
1215 struct tegra_drm *tegra = drm->dev_private;
1216
1217 drm_kms_helper_poll_disable(drm);
1218 tegra_drm_fb_suspend(drm);
1219
1220 tegra->state = drm_atomic_helper_suspend(drm);
1221 if (IS_ERR(tegra->state)) {
1222 tegra_drm_fb_resume(drm);
1223 drm_kms_helper_poll_enable(drm);
1224 return PTR_ERR(tegra->state);
1225 }
1226 1215
1227 return 0; 1216 return drm_mode_config_helper_suspend(drm);
1228} 1217}
1229 1218
1230static int host1x_drm_resume(struct device *dev) 1219static int host1x_drm_resume(struct device *dev)
1231{ 1220{
1232 struct drm_device *drm = dev_get_drvdata(dev); 1221 struct drm_device *drm = dev_get_drvdata(dev);
1233 struct tegra_drm *tegra = drm->dev_private;
1234 1222
1235 drm_atomic_helper_resume(drm, tegra->state); 1223 return drm_mode_config_helper_resume(drm);
1236 tegra_drm_fb_resume(drm);
1237 drm_kms_helper_poll_enable(drm);
1238
1239 return 0;
1240} 1224}
1241#endif 1225#endif
1242 1226
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 92d248784396..1012335bb489 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -60,8 +60,6 @@ struct tegra_drm {
60 unsigned int pitch_align; 60 unsigned int pitch_align;
61 61
62 struct tegra_display_hub *hub; 62 struct tegra_display_hub *hub;
63
64 struct drm_atomic_state *state;
65}; 63};
66 64
67struct tegra_drm_client; 65struct tegra_drm_client;
@@ -186,8 +184,6 @@ int tegra_drm_fb_prepare(struct drm_device *drm);
186void tegra_drm_fb_free(struct drm_device *drm); 184void tegra_drm_fb_free(struct drm_device *drm);
187int tegra_drm_fb_init(struct drm_device *drm); 185int tegra_drm_fb_init(struct drm_device *drm);
188void tegra_drm_fb_exit(struct drm_device *drm); 186void tegra_drm_fb_exit(struct drm_device *drm);
189void tegra_drm_fb_suspend(struct drm_device *drm);
190void tegra_drm_fb_resume(struct drm_device *drm);
191 187
192extern struct platform_driver tegra_display_hub_driver; 188extern struct platform_driver tegra_display_hub_driver;
193extern struct platform_driver tegra_dc_driver; 189extern struct platform_driver tegra_dc_driver;
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 4c22cdded3c2..b947e82bbeb1 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -356,7 +356,7 @@ static void tegra_fbdev_exit(struct tegra_fbdev *fbdev)
356 /* Undo the special mapping we made in fbdev probe. */ 356 /* Undo the special mapping we made in fbdev probe. */
357 if (bo && bo->pages) { 357 if (bo && bo->pages) {
358 vunmap(bo->vaddr); 358 vunmap(bo->vaddr);
359 bo->vaddr = 0; 359 bo->vaddr = NULL;
360 } 360 }
361 361
362 drm_framebuffer_remove(fbdev->fb); 362 drm_framebuffer_remove(fbdev->fb);
@@ -412,25 +412,3 @@ void tegra_drm_fb_exit(struct drm_device *drm)
412 tegra_fbdev_exit(tegra->fbdev); 412 tegra_fbdev_exit(tegra->fbdev);
413#endif 413#endif
414} 414}
415
416void tegra_drm_fb_suspend(struct drm_device *drm)
417{
418#ifdef CONFIG_DRM_FBDEV_EMULATION
419 struct tegra_drm *tegra = drm->dev_private;
420
421 console_lock();
422 drm_fb_helper_set_suspend(&tegra->fbdev->base, 1);
423 console_unlock();
424#endif
425}
426
427void tegra_drm_fb_resume(struct drm_device *drm)
428{
429#ifdef CONFIG_DRM_FBDEV_EMULATION
430 struct tegra_drm *tegra = drm->dev_private;
431
432 console_lock();
433 drm_fb_helper_set_suspend(&tegra->fbdev->base, 0);
434 console_unlock();
435#endif
436}