aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/s5p-fimc/fimc-core.c
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2011-06-10 14:36:45 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-09-06 14:19:16 -0400
commitebdfea810ec21744840f647341a1e74b8c762586 (patch)
tree5c4fd2f716dd80f0f532104650fd356c8b6a2518 /drivers/media/video/s5p-fimc/fimc-core.c
parent96a857421a9d212696364d210bd85a2162e73966 (diff)
[media] s5p-fimc: Remove sclk_cam clock handling
There are 2 separate clock outputs available in the SoC for external sensors. These two clocks can be shared among all FIMC entities and there is currently no any arbitration of the clocks in the driver. So make the capture driver not touching these clocks and let them be be properly handled at the media device driver level, enabling proper arbitration between FIMC entities. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/s5p-fimc/fimc-core.c')
-rw-r--r--drivers/media/video/s5p-fimc/fimc-core.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-core.c b/drivers/media/video/s5p-fimc/fimc-core.c
index 93c4e1a02f90..9809764b5388 100644
--- a/drivers/media/video/s5p-fimc/fimc-core.c
+++ b/drivers/media/video/s5p-fimc/fimc-core.c
@@ -30,7 +30,7 @@
30#include "fimc-core.h" 30#include "fimc-core.h"
31 31
32static char *fimc_clocks[MAX_FIMC_CLOCKS] = { 32static char *fimc_clocks[MAX_FIMC_CLOCKS] = {
33 "sclk_fimc", "fimc", "sclk_cam" 33 "sclk_fimc", "fimc"
34}; 34};
35 35
36static struct fimc_fmt fimc_formats[] = { 36static struct fimc_fmt fimc_formats[] = {
@@ -1636,7 +1636,6 @@ static int fimc_probe(struct platform_device *pdev)
1636 struct samsung_fimc_driverdata *drv_data; 1636 struct samsung_fimc_driverdata *drv_data;
1637 struct s5p_platform_fimc *pdata; 1637 struct s5p_platform_fimc *pdata;
1638 int ret = 0; 1638 int ret = 0;
1639 int cap_input_index = -1;
1640 1639
1641 dev_dbg(&pdev->dev, "%s():\n", __func__); 1640 dev_dbg(&pdev->dev, "%s():\n", __func__);
1642 1641
@@ -1689,14 +1688,6 @@ static int fimc_probe(struct platform_device *pdev)
1689 goto err_req_region; 1688 goto err_req_region;
1690 } 1689 }
1691 1690
1692 fimc->num_clocks = MAX_FIMC_CLOCKS - 1;
1693
1694 /* Check if a video capture node needs to be registered. */
1695 if (pdata && pdata->num_clients > 0) {
1696 cap_input_index = 0;
1697 fimc->num_clocks++;
1698 }
1699
1700 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 1691 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
1701 if (!res) { 1692 if (!res) {
1702 dev_err(&pdev->dev, "failed to get IRQ resource\n"); 1693 dev_err(&pdev->dev, "failed to get IRQ resource\n");
@@ -1705,6 +1696,7 @@ static int fimc_probe(struct platform_device *pdev)
1705 } 1696 }
1706 fimc->irq = res->start; 1697 fimc->irq = res->start;
1707 1698
1699 fimc->num_clocks = MAX_FIMC_CLOCKS;
1708 ret = fimc_clk_get(fimc); 1700 ret = fimc_clk_get(fimc);
1709 if (ret) 1701 if (ret)
1710 goto err_regs_unmap; 1702 goto err_regs_unmap;