aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/media/platform/exynos4-is/fimc-is.c b/drivers/media/platform/exynos4-is/fimc-is.c
index 47c6363d04e2..1adf6dfcb39e 100644
--- a/drivers/media/platform/exynos4-is/fimc-is.c
+++ b/drivers/media/platform/exynos4-is/fimc-is.c
@@ -326,6 +326,11 @@ int fimc_is_start_firmware(struct fimc_is *is)
326 struct device *dev = &is->pdev->dev; 326 struct device *dev = &is->pdev->dev;
327 int ret; 327 int ret;
328 328
329 if (is->fw.f_w == NULL) {
330 dev_err(dev, "firmware is not loaded\n");
331 return -EINVAL;
332 }
333
329 memcpy(is->memory.vaddr, is->fw.f_w->data, is->fw.f_w->size); 334 memcpy(is->memory.vaddr, is->fw.f_w->data, is->fw.f_w->size);
330 wmb(); 335 wmb();
331 336
@@ -941,7 +946,8 @@ static int fimc_is_remove(struct platform_device *pdev)
941 vb2_dma_contig_cleanup_ctx(is->alloc_ctx); 946 vb2_dma_contig_cleanup_ctx(is->alloc_ctx);
942 fimc_is_put_clocks(is); 947 fimc_is_put_clocks(is);
943 fimc_is_debugfs_remove(is); 948 fimc_is_debugfs_remove(is);
944 release_firmware(is->fw.f_w); 949 if (is->fw.f_w)
950 release_firmware(is->fw.f_w);
945 fimc_is_free_cpu_memory(is); 951 fimc_is_free_cpu_memory(is);
946 952
947 return 0; 953 return 0;