/* vpfe_remove : It un-register device from V4L2 driver  */
static int __devexit vpfe_remove(struct platform_device *pdev)
/* vpfe_remove : It un-register device from V4L2 driver  */
static int __devexit vpfe_remove(struct platform_device *pdev)
{
	struct vpfe_device *vpfe_dev = platform_get_drvdata(pdev);
	struct resource *res;
	v4l2_info(pdev->dev.driver, "vpfe_remove\n");
	free_irq(vpfe_dev->ccdc_irq0, vpfe_dev);
	kfree(vpfe_dev->sd);
	v4l2_device_unregister(&vpfe_dev->v4l2_dev);
	video_unregister_device(vpfe_dev->video_dev);
	mutex_lock(&ccdc_lock);
	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	release_mem_region(res->start, res->end - res->start + 1);
	iounmap(ccdc_cfg->ccdc_addr);
	mutex_unlock(&ccdc_lock);
	vpfe_disable_clock(vpfe_dev);
	kfree(vpfe_dev);
	kfree(ccdc_cfg);
	return 0;
}