diff options
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-is.c | 8 |
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; |