/* * camif_cleanup() */ static void __exit camif_cleanup(void) { struct s3c2440camif_dev *pdev; sccb_cleanup(); pdev = &camera; misc_deregister(&misc); clk_put(pdev->clk); iounmap((void *)camif_base_addr); release_mem_region((unsigned long)S3C2440_PA_CAMIF, S3C2440_SZ_CAMIF); printk(KERN_ALERT"s3c2440camif: module removed\n"); }
/* * camif_cleanup() */ static void __exit camif_cleanup(void) { s3c2440camif_dev *pcam=&camera; if(static_allocate) s3c2440camif_deallocate_frame_buf(pcam,S3C2440_FRAME_NUM); video_unregister_device(pcam->video_dev); platform_driver_unregister(&s3c2410camif_v4l2_driver); platform_device_unregister(&s3c2410camif_v4l2_devices); //sccb_cleanup(); s3c2440camif_sensor_if.cleanup(); sccb_cleanup(); clk_put(pcam->clk); iounmap((void *)camif_base_addr); release_mem_region((unsigned long)S3C2440_PA_CAMIF, S3C2440_SZ_CAMIF); printk(KERN_ALERT"s3c2440camif: module removed\n"); }