diff options
Diffstat (limited to 'drivers/gpu/drm/mediatek/mtk_drm_drv.c')
-rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_drv.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 39721119713b..47ec604289b7 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c | |||
@@ -381,7 +381,7 @@ static int mtk_drm_bind(struct device *dev) | |||
381 | err_deinit: | 381 | err_deinit: |
382 | mtk_drm_kms_deinit(drm); | 382 | mtk_drm_kms_deinit(drm); |
383 | err_free: | 383 | err_free: |
384 | drm_dev_unref(drm); | 384 | drm_dev_put(drm); |
385 | return ret; | 385 | return ret; |
386 | } | 386 | } |
387 | 387 | ||
@@ -390,7 +390,7 @@ static void mtk_drm_unbind(struct device *dev) | |||
390 | struct mtk_drm_private *private = dev_get_drvdata(dev); | 390 | struct mtk_drm_private *private = dev_get_drvdata(dev); |
391 | 391 | ||
392 | drm_dev_unregister(private->drm); | 392 | drm_dev_unregister(private->drm); |
393 | drm_dev_unref(private->drm); | 393 | drm_dev_put(private->drm); |
394 | private->drm = NULL; | 394 | private->drm = NULL; |
395 | } | 395 | } |
396 | 396 | ||
@@ -564,7 +564,7 @@ static int mtk_drm_remove(struct platform_device *pdev) | |||
564 | 564 | ||
565 | drm_dev_unregister(drm); | 565 | drm_dev_unregister(drm); |
566 | mtk_drm_kms_deinit(drm); | 566 | mtk_drm_kms_deinit(drm); |
567 | drm_dev_unref(drm); | 567 | drm_dev_put(drm); |
568 | 568 | ||
569 | component_master_del(&pdev->dev, &mtk_drm_ops); | 569 | component_master_del(&pdev->dev, &mtk_drm_ops); |
570 | pm_runtime_disable(&pdev->dev); | 570 | pm_runtime_disable(&pdev->dev); |
@@ -580,29 +580,24 @@ static int mtk_drm_sys_suspend(struct device *dev) | |||
580 | { | 580 | { |
581 | struct mtk_drm_private *private = dev_get_drvdata(dev); | 581 | struct mtk_drm_private *private = dev_get_drvdata(dev); |
582 | struct drm_device *drm = private->drm; | 582 | struct drm_device *drm = private->drm; |
583 | int ret; | ||
583 | 584 | ||
584 | drm_kms_helper_poll_disable(drm); | 585 | ret = drm_mode_config_helper_suspend(drm); |
585 | |||
586 | private->suspend_state = drm_atomic_helper_suspend(drm); | ||
587 | if (IS_ERR(private->suspend_state)) { | ||
588 | drm_kms_helper_poll_enable(drm); | ||
589 | return PTR_ERR(private->suspend_state); | ||
590 | } | ||
591 | |||
592 | DRM_DEBUG_DRIVER("mtk_drm_sys_suspend\n"); | 586 | DRM_DEBUG_DRIVER("mtk_drm_sys_suspend\n"); |
593 | return 0; | 587 | |
588 | return ret; | ||
594 | } | 589 | } |
595 | 590 | ||
596 | static int mtk_drm_sys_resume(struct device *dev) | 591 | static int mtk_drm_sys_resume(struct device *dev) |
597 | { | 592 | { |
598 | struct mtk_drm_private *private = dev_get_drvdata(dev); | 593 | struct mtk_drm_private *private = dev_get_drvdata(dev); |
599 | struct drm_device *drm = private->drm; | 594 | struct drm_device *drm = private->drm; |
595 | int ret; | ||
600 | 596 | ||
601 | drm_atomic_helper_resume(drm, private->suspend_state); | 597 | ret = drm_mode_config_helper_resume(drm); |
602 | drm_kms_helper_poll_enable(drm); | ||
603 | |||
604 | DRM_DEBUG_DRIVER("mtk_drm_sys_resume\n"); | 598 | DRM_DEBUG_DRIVER("mtk_drm_sys_resume\n"); |
605 | return 0; | 599 | |
600 | return ret; | ||
606 | } | 601 | } |
607 | #endif | 602 | #endif |
608 | 603 | ||