From 1a32977b86695c018a59240703b8bdc85d5d4446 Mon Sep 17 00:00:00 2001 From: Wojciech Bieganski Date: Mon, 30 Jan 2017 15:39:26 +0100 Subject: media: fix simultaneous capture Signed-off-by: Wojciech Bieganski Acked-by: Marcel Ziswiler --- .../media/platform/soc_camera/tegra_camera/vi2.c | 34 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'drivers/media/platform/soc_camera/tegra_camera/vi2.c') diff --git a/drivers/media/platform/soc_camera/tegra_camera/vi2.c b/drivers/media/platform/soc_camera/tegra_camera/vi2.c index 99bef12e1b7f..e79a56162e2d 100644 --- a/drivers/media/platform/soc_camera/tegra_camera/vi2.c +++ b/drivers/media/platform/soc_camera/tegra_camera/vi2.c @@ -360,6 +360,10 @@ static struct tegra_camera_clk vi2_clks0[] = { .name = "vi_sensor", .freq = 24000000, }, + { + .name = "vi_sensor2", + .freq = 24000000, + }, { .name = "csi", .freq = 408000000, @@ -387,6 +391,16 @@ static struct tegra_camera_clk vi2_clks0[] = { .freq = 102000000, .use_devname = 1, }, + { + .name = "cilcd", + .freq = 102000000, + .use_devname = 1, + }, + { + .name = "cile", + .freq = 102000000, + .use_devname = 1, + }, /* Always put "p11_d" at the end */ { .name = "pll_d", @@ -400,6 +414,10 @@ static struct tegra_camera_clk vi2_clks1[] = { .freq = 408000000, .use_devname = 1, }, + { + .name = "vi_sensor", + .freq = 24000000, + }, { .name = "vi_sensor2", .freq = 24000000, @@ -413,6 +431,11 @@ static struct tegra_camera_clk vi2_clks1[] = { .name = "isp", .freq = 0, }, + { + .name = "csus", + .freq = 0, + .use_devname = 1, + }, { .name = "sclk", .freq = 80000000, @@ -421,6 +444,11 @@ static struct tegra_camera_clk vi2_clks1[] = { .name = "emc", .freq = 300000000, }, + { + .name = "cilab", + .freq = 102000000, + .use_devname = 1, + }, { .name = "cilcd", .freq = 102000000, @@ -796,7 +824,7 @@ static int vi2_capture_setup(struct tegra_camera_dev *cam, int port = pdata->port; /* Skip VI2/CSI2 setup for second and later frame capture */ - if (!cam->sof) + if (!cam->sof[port-1]) return 0; /* Setup registers for CSI-A and CSI-B inputs */ @@ -1026,8 +1054,8 @@ static int vi2_capture_wait(struct tegra_camera_dev *cam, } /* Mark SOF flag to Zero after we captured the FIRST frame */ - if (cam->sof) - cam->sof = 0; + if (cam->sof[port-1]) + cam->sof[port-1] = 0; /* Capture syncpt timeout err, then dump error status */ if (err) { -- cgit v1.2.3