|
@@ -2177,6 +2177,12 @@ static void pxa_camera_sensor_unbind(struct v4l2_async_notifier *notifier,
|
|
|
pxa_dma_stop_channels(pcdev);
|
|
|
|
|
|
pxa_camera_destroy_formats(pcdev);
|
|
|
+
|
|
|
+ if (pcdev->mclk_clk) {
|
|
|
+ v4l2_clk_unregister(pcdev->mclk_clk);
|
|
|
+ pcdev->mclk_clk = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
video_unregister_device(&pcdev->vdev);
|
|
|
pcdev->sensor = NULL;
|
|
|
|
|
@@ -2501,7 +2507,13 @@ static int pxa_camera_remove(struct platform_device *pdev)
|
|
|
dma_release_channel(pcdev->dma_chans[1]);
|
|
|
dma_release_channel(pcdev->dma_chans[2]);
|
|
|
|
|
|
- v4l2_clk_unregister(pcdev->mclk_clk);
|
|
|
+ v4l2_async_notifier_unregister(&pcdev->notifier);
|
|
|
+
|
|
|
+ if (pcdev->mclk_clk) {
|
|
|
+ v4l2_clk_unregister(pcdev->mclk_clk);
|
|
|
+ pcdev->mclk_clk = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
v4l2_device_unregister(&pcdev->v4l2_dev);
|
|
|
|
|
|
dev_info(&pdev->dev, "PXA Camera driver unloaded\n");
|