static int omap24xxcam_remove(struct platform_device *pdev) { struct omap24xxcam_device *cam = platform_get_drvdata(pdev); if (!cam) return 0; if (omap24xxcam.priv != NULL) v4l2_int_device_unregister(&omap24xxcam); omap24xxcam.priv = NULL; omap24xxcam_clock_put(cam); if (cam->irq) { free_irq(cam->irq, cam); cam->irq = 0; } if (cam->mmio_base) { iounmap((void *)cam->mmio_base); cam->mmio_base = 0; } if (cam->mmio_base_phys) { release_mem_region(cam->mmio_base_phys, cam->mmio_size); cam->mmio_base_phys = 0; } v4l2_device_unregister(&cam->v4l2_dev); kfree(cam); return 0; }
/** * rt8515_exit - Module cleanup. **/ static void __exit rt8515_exit(void) { v4l2_int_device_unregister(&rt8515_int_device); platform_driver_unregister(&rt8515_driver); }
static int __exit adp1653_remove(struct i2c_client *client) { struct adp1653_flash *flash = i2c_get_clientdata(client); if (!client->adapter) return -ENODEV; /* our client isn't attached */ v4l2_int_device_unregister(flash->v4l2_int_device); i2c_set_clientdata(client, NULL); return 0; }
static int adv7610_video_remove(struct i2c_client *client) { v4l2_int_device_unregister(&adv7610_int_device); return 0; }