diff --git a/drivers/media/platform/rockchip/isp/dev.c b/drivers/media/platform/rockchip/isp/dev.c index d84347b83b01..db5390268945 100644 --- a/drivers/media/platform/rockchip/isp/dev.c +++ b/drivers/media/platform/rockchip/isp/dev.c @@ -916,7 +916,10 @@ static int rkisp_plat_remove(struct platform_device *pdev) rkisp_proc_cleanup(isp_dev); media_device_unregister(&isp_dev->media_dev); + v4l2_async_notifier_unregister(&isp_dev->notifier); + v4l2_async_notifier_cleanup(&isp_dev->notifier); v4l2_device_unregister(&isp_dev->v4l2_dev); + v4l2_ctrl_handler_free(&isp_dev->ctrl_handler); rkisp_unregister_luma_vdev(&isp_dev->luma_vdev); rkisp_unregister_params_vdev(&isp_dev->params_vdev); rkisp_unregister_stats_vdev(&isp_dev->stats_vdev); diff --git a/drivers/media/platform/rockchip/isp/hw.c b/drivers/media/platform/rockchip/isp/hw.c index 7893391c18fa..e9d5786946dc 100644 --- a/drivers/media/platform/rockchip/isp/hw.c +++ b/drivers/media/platform/rockchip/isp/hw.c @@ -1205,8 +1205,15 @@ static int __init rkisp_hw_drv_init(void) return ret; } +static void __exit rkisp_hw_drv_exit(void) +{ + platform_driver_unregister(&rkisp_plat_drv); + platform_driver_unregister(&rkisp_hw_drv); +} + #if defined(CONFIG_VIDEO_ROCKCHIP_THUNDER_BOOT_ISP) && !defined(CONFIG_INITCALL_ASYNC) subsys_initcall(rkisp_hw_drv_init); #else module_init(rkisp_hw_drv_init); #endif +module_exit(rkisp_hw_drv_exit);