summaryrefslogtreecommitdiff
path: root/drivers/media/platform/soc_camera/tegra_camera/vi.c
diff options
context:
space:
mode:
authorShridhar Rasal <srasal@nvidia.com>2014-02-25 17:17:20 +0530
committerTerje Bergstrom <tbergstrom@nvidia.com>2014-02-25 05:54:34 -0800
commit22fd2ba354071237fe4c199e10b6d284b03d29a5 (patch)
tree0f9158812d9619d96780802f72db091ceb647044 /drivers/media/platform/soc_camera/tegra_camera/vi.c
parente392dd5d6fa08ab41a65f719e0db7e17e607c0c7 (diff)
video: tegra: host: Revert dynamic syncpt patches
With dynamic syncpoint allocation ap_systemsw fails intermittently for TN8. so reverting series of dynamic syncpoint patches. Bug 1305024 Bug 1467163 Revert "video: tegra: host: add pbdma syncpoint headers" commit 62efc18329c5da0e6dc90f088c145e1099213f20. Revert "video: tegra: host: print syncpt id in debug spew" commit c918cc4494008fe764e746142060d896436a1d3c. Revert "video: tegra: host: remove static from get_syncpt_name()" commit c098ce933738d892bbeba003ab35505c4b7d7951. Revert "video: tegra: host: remove unused variable" commit a4dad0592c95165e8366ebe939367a1ece2cb9b9. Revert "video: tegra: host: Hardcode AVP sync point" commit 8da84e56de66f20806cb706ee005f263ca5e213f. Revert "video: tegra: host: hard-code syncpts for t114" commit 410536f668a62d94603bc3287efaef3dcffb1226. Revert "video: tegra: host: remove static syncpt mappings" commit 4cee1d17b01019cc122acf21604d4f01ac6f7474. Revert "media: tegra_camera: use dynamic syncpts" commit eae55c8e4cbb65e3ed1a8c8ef8150d8a6ba938bf. Revert "video: tegra: dc: use dynamic syncpt" commit 03d7c261ceb62bf1eb93cae48aaa84881d6de5b9. Revert "video: tegra: host: use dynamic syncpt for hwctx" commit 03136f549f54a26d77987f3751bf12d202614372. Revert "video: tegra: host: implement dynamic synpt" commit 6c2d1b43e51f2e0424b793c9da1c25adf63ea569. Change-Id: I19a63e812680b7521bed3c1188858b2165a88c89 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/374169 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/media/platform/soc_camera/tegra_camera/vi.c')
-rw-r--r--drivers/media/platform/soc_camera/tegra_camera/vi.c53
1 files changed, 27 insertions, 26 deletions
diff --git a/drivers/media/platform/soc_camera/tegra_camera/vi.c b/drivers/media/platform/soc_camera/tegra_camera/vi.c
index 201abd2f7406..9792d1869538 100644
--- a/drivers/media/platform/soc_camera/tegra_camera/vi.c
+++ b/drivers/media/platform/soc_camera/tegra_camera/vi.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014, NVIDIA CORPORATION. All rights reserved.
+ * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
@@ -33,6 +33,11 @@
#define TEGRA_VIP_H_ACTIVE_START 0x98
#define TEGRA_VIP_V_ACTIVE_START 0x10
+/* SYNCPTs 12-17 are reserved for VI. */
+#define TEGRA_VI_SYNCPT_VI NVSYNCPT_VI_ISP_2
+#define TEGRA_VI_SYNCPT_CSI_A NVSYNCPT_VI_ISP_3
+#define TEGRA_VI_SYNCPT_CSI_B NVSYNCPT_VI_ISP_4
+
/* Tegra CSI-MIPI registers. */
#define TEGRA_VI_OUT_1_INCR_SYNCPT 0x000
#define TEGRA_VI_OUT_1_INCR_SYNCPT_CNTRL 0x004
@@ -403,34 +408,31 @@ static void vi_clks_disable(struct tegra_camera_dev *cam)
}
}
-static void vi_init_syncpts(struct tegra_camera_dev *cam)
-{
- cam->syncpt_id_csi_a = nvhost_get_syncpt_client_managed("vi_csi_A");
-
- cam->syncpt_id_csi_b = nvhost_get_syncpt_client_managed("vi_csi_B");
-
- cam->syncpt_id_vip = nvhost_get_syncpt_client_managed("vi_vip");
-}
-
static void vi_save_syncpts(struct tegra_camera_dev *cam)
{
cam->syncpt_csi_a =
- nvhost_syncpt_read_ext(cam->ndev, cam->syncpt_id_csi_a);
+ nvhost_syncpt_read_ext(cam->ndev,
+ TEGRA_VI_SYNCPT_CSI_A);
cam->syncpt_csi_b =
- nvhost_syncpt_read_ext(cam->ndev, cam->syncpt_id_csi_b);
+ nvhost_syncpt_read_ext(cam->ndev,
+ TEGRA_VI_SYNCPT_CSI_B);
cam->syncpt_vip =
- nvhost_syncpt_read_ext(cam->ndev, cam->syncpt_id_vip);
+ nvhost_syncpt_read_ext(cam->ndev,
+ TEGRA_VI_SYNCPT_VI);
}
static void vi_incr_syncpts(struct tegra_camera_dev *cam)
{
- nvhost_syncpt_cpu_incr_ext(cam->ndev, cam->syncpt_id_csi_a);
+ nvhost_syncpt_cpu_incr_ext(cam->ndev,
+ TEGRA_VI_SYNCPT_CSI_A);
- nvhost_syncpt_cpu_incr_ext(cam->ndev, cam->syncpt_id_csi_b);
+ nvhost_syncpt_cpu_incr_ext(cam->ndev,
+ TEGRA_VI_SYNCPT_CSI_B);
- nvhost_syncpt_cpu_incr_ext(cam->ndev, cam->syncpt_id_vip);
+ nvhost_syncpt_cpu_incr_ext(cam->ndev,
+ TEGRA_VI_SYNCPT_VI);
}
static void vi_capture_clean(struct tegra_camera_dev *cam)
@@ -515,7 +517,7 @@ static void vi_capture_setup_csi_a(struct tegra_camera_dev *cam,
TC_VI_REG_WT(cam, TEGRA_VI_CONT_SYNCPT_CSI_PPA_FRAME_END,
(0x1 << 8) | /* Enable continuous syncpt */
- cam->syncpt_id_csi_a);
+ TEGRA_VI_SYNCPT_CSI_A);
TC_VI_REG_WT(cam, TEGRA_CSI_PHY_CIL_COMMAND, 0x00020001);
@@ -598,7 +600,7 @@ static void vi_capture_setup_csi_b(struct tegra_camera_dev *cam,
TC_VI_REG_WT(cam, TEGRA_VI_CONT_SYNCPT_CSI_PPB_FRAME_END,
(0x1 << 8) | /* Enable continuous syncpt */
- cam->syncpt_id_csi_b);
+ TEGRA_VI_SYNCPT_CSI_B);
TC_VI_REG_WT(cam, TEGRA_CSI_PHY_CIL_COMMAND, 0x00010002);
@@ -638,7 +640,7 @@ static void vi_capture_setup_vip(struct tegra_camera_dev *cam,
TC_VI_REG_WT(cam, TEGRA_VI_CONT_SYNCPT_VIP_VSYNC,
(0x1 << 8) | /* Enable continuous syncpt */
- cam->syncpt_id_vip);
+ TEGRA_VI_SYNCPT_VI);
TC_VI_REG_WT(cam, TEGRA_VI_CAMERA_CONTROL, 0x00000004);
}
@@ -722,7 +724,7 @@ static int vi_capture_output_channel_setup(
TC_VI_REG_WT(cam, TEGRA_VI_CONT_SYNCPT_OUT_1,
(0x1 << 8) | /* Enable continuous syncpt */
- cam->syncpt_id_vip);
+ TEGRA_VI_SYNCPT_VI);
TC_VI_REG_WT(cam, TEGRA_VI_VI_ENABLE, 0x00000000);
} else if (buf->output_channel == 1) {
@@ -746,7 +748,7 @@ static int vi_capture_output_channel_setup(
TC_VI_REG_WT(cam, TEGRA_VI_CONT_SYNCPT_OUT_2,
(0x1 << 8) | /* Enable continuous syncpt */
- cam->syncpt_id_vip);
+ TEGRA_VI_SYNCPT_VI);
TC_VI_REG_WT(cam, TEGRA_VI_VI_ENABLE_2, 0x00000000);
} else {
@@ -900,7 +902,7 @@ static int vi_capture_start(struct tegra_camera_dev *cam,
TC_VI_REG_WT(cam, TEGRA_CSI_PIXEL_STREAM_PPA_COMMAND,
0x0000f005);
err = nvhost_syncpt_wait_timeout_ext(cam->ndev,
- cam->syncpt_id_csi_a,
+ TEGRA_VI_SYNCPT_CSI_A,
cam->syncpt_csi_a,
TEGRA_SYNCPT_CSI_WAIT_TIMEOUT,
NULL,
@@ -910,7 +912,7 @@ static int vi_capture_start(struct tegra_camera_dev *cam,
TC_VI_REG_WT(cam, TEGRA_CSI_PIXEL_STREAM_PPB_COMMAND,
0x0000f005);
err = nvhost_syncpt_wait_timeout_ext(cam->ndev,
- cam->syncpt_id_csi_b,
+ TEGRA_VI_SYNCPT_CSI_B,
cam->syncpt_csi_b,
TEGRA_SYNCPT_CSI_WAIT_TIMEOUT,
NULL,
@@ -920,7 +922,7 @@ static int vi_capture_start(struct tegra_camera_dev *cam,
TC_VI_REG_WT(cam, TEGRA_VI_CAMERA_CONTROL,
0x00000001);
err = nvhost_syncpt_wait_timeout_ext(cam->ndev,
- cam->syncpt_id_vip,
+ TEGRA_VI_SYNCPT_VI,
cam->syncpt_csi_a,
TEGRA_SYNCPT_VI_WAIT_TIMEOUT,
NULL,
@@ -976,7 +978,7 @@ static int vi_capture_stop(struct tegra_camera_dev *cam, int port)
if (vi_port_is_csi(port))
err = nvhost_syncpt_wait_timeout_ext(cam->ndev,
- cam->syncpt_id_vip,
+ TEGRA_VI_SYNCPT_VI,
cam->syncpt_vip,
TEGRA_SYNCPT_VI_WAIT_TIMEOUT,
NULL,
@@ -1051,7 +1053,6 @@ struct tegra_camera_ops vi_ops = {
.activate = vi_unpowergate,
.deactivate = vi_powergate,
- .init_syncpts = vi_init_syncpts,
.save_syncpts = vi_save_syncpts,
.incr_syncpts = vi_incr_syncpts,