diff options
author | Shridhar Rasal <srasal@nvidia.com> | 2014-02-25 17:17:20 +0530 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-02-25 05:54:34 -0800 |
commit | 22fd2ba354071237fe4c199e10b6d284b03d29a5 (patch) | |
tree | 0f9158812d9619d96780802f72db091ceb647044 /drivers/media/platform/soc_camera/tegra_camera/vi.c | |
parent | e392dd5d6fa08ab41a65f719e0db7e17e607c0c7 (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.c | 53 |
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, |