diff options
author | Shridhar Rasal <srasal@nvidia.com> | 2014-02-27 15:41:40 +0530 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-03-17 22:43:50 -0700 |
commit | 11b81b13c3446715fd10374be4388ac452f542f9 (patch) | |
tree | c370bfd39f058faffa7a0c2c2fe0e5a5286d1aa7 | |
parent | 49f1c8299fed662c38d408869aa9c16d4ebe1d88 (diff) |
media: tegra_camera: update syncpt val on success
Update camera syncpoint value returned by nvhost on success.
Bug 1469913
Change-Id: Ic450631bda94f2bdd6d1d352dbd5ec8aa97d7e63
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/375434
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
-rw-r--r-- | drivers/media/platform/soc_camera/tegra_camera/vi.c | 22 | ||||
-rw-r--r-- | drivers/media/platform/soc_camera/tegra_camera/vi2.c | 14 |
2 files changed, 20 insertions, 16 deletions
diff --git a/drivers/media/platform/soc_camera/tegra_camera/vi.c b/drivers/media/platform/soc_camera/tegra_camera/vi.c index 9792d1869538..85f60713b4e3 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, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2013-2014, 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, @@ -410,17 +410,19 @@ static void vi_clks_disable(struct tegra_camera_dev *cam) static void vi_save_syncpts(struct tegra_camera_dev *cam) { - cam->syncpt_csi_a = - nvhost_syncpt_read_ext(cam->ndev, - TEGRA_VI_SYNCPT_CSI_A); + u32 val; - cam->syncpt_csi_b = - nvhost_syncpt_read_ext(cam->ndev, - TEGRA_VI_SYNCPT_CSI_B); + if (!nvhost_syncpt_read_ext_check(cam->ndev, + TEGRA_VI_SYNCPT_CSI_A, &val)) + cam->syncpt_csi_a = val; - cam->syncpt_vip = - nvhost_syncpt_read_ext(cam->ndev, - TEGRA_VI_SYNCPT_VI); + if (!nvhost_syncpt_read_ext_check(cam->ndev, + TEGRA_VI_SYNCPT_CSI_B, &val)) + cam->syncpt_csi_b = val; + + if (!nvhost_syncpt_read_ext_check(cam->ndev, + TEGRA_VI_SYNCPT_VI, &val)) + cam->syncpt_vip = val; } static void vi_incr_syncpts(struct tegra_camera_dev *cam) diff --git a/drivers/media/platform/soc_camera/tegra_camera/vi2.c b/drivers/media/platform/soc_camera/tegra_camera/vi2.c index 60bdaa4dabc7..232340082e06 100644 --- a/drivers/media/platform/soc_camera/tegra_camera/vi2.c +++ b/drivers/media/platform/soc_camera/tegra_camera/vi2.c @@ -433,13 +433,15 @@ static void vi2_clks_disable(struct tegra_camera_dev *cam) static void vi2_save_syncpts(struct tegra_camera_dev *cam) { - cam->syncpt_csi_a = - nvhost_syncpt_read_ext(cam->ndev, - TEGRA_VI_SYNCPT_CSI_A); + u32 val; - cam->syncpt_csi_b = - nvhost_syncpt_read_ext(cam->ndev, - TEGRA_VI_SYNCPT_CSI_B); + if (!nvhost_syncpt_read_ext_check(cam->ndev, + TEGRA_VI_SYNCPT_CSI_A, &val)) + cam->syncpt_csi_a = val; + + if (!nvhost_syncpt_read_ext_check(cam->ndev, + TEGRA_VI_SYNCPT_CSI_B, &val)) + cam->syncpt_csi_b = val; } static void vi2_incr_syncpts(struct tegra_camera_dev *cam) |