Remove deprecated drm_put_dev.
Clean up everything needed in unbind.
Thanks to Daniel Vetter, this issue is reported by him.

Signed-off-by: Xinliang Liu <xinliang.liu at linaro.org>
Reported-by: Daniel Vetter <daniel.vetter at intel.com>
---
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c 
b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index bc410ee584b7..3f94785fbcca 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -244,7 +244,12 @@ err_drm_dev_unref:

 static void kirin_drm_unbind(struct device *dev)
 {
-       drm_put_dev(dev_get_drvdata(dev));
+       struct drm_device *drm_dev = dev_get_drvdata(dev);
+
+       drm_connector_unregister_all(drm_dev);
+       drm_dev_unregister(drm_dev);
+       kirin_drm_kms_cleanup(drm_dev);
+       drm_dev_unref(drm_dev);
 }

 static const struct component_master_ops kirin_drm_ops = {
-- 
2.8.2

Reply via email to