summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShubhraprakash Das <sadas@codeaurora.org>2016-07-26 12:24:07 -0700
committerShubhraprakash Das <sadas@codeaurora.org>2016-08-09 11:09:11 -0700
commit4097d970bb95659514717b49c6cc3cb2985aa07e (patch)
treedd7f6209bee13963d251904d7ead59bba24a2268
parent2c28d7f5d42d0c755df938bbcc0957a001fae8f6 (diff)
msm: camera: isp: Set no memory retention
Set the memory retention flags for certain hardware clocks to save power. Memory does not need to be retained for these clocks since the driver reinitializes the vfe hardware whenever the clocks are turned on. CRs-Fixed: 1044373 Change-Id: Idea83ef287710add893b48af0ecd9465e4ff7a98 Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp48.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp48.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp48.c
index ffcd88dc44f3..a792404c243c 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp48.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp48.c
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/ratelimit.h>
+#include <linux/clk/msm-clk.h>
#include "msm_isp_util.h"
#include "msm_isp_axi_util.h"
@@ -198,6 +199,18 @@ static int msm_vfe48_get_clks(struct vfe_device *vfe_dev)
if (strcmp(vfe_dev->vfe_clk_info[i].clk_name,
"mnoc_maxi_clk") == 0)
vfe_dev->vfe_clk_info[i].clk_rate = INIT_RATE;
+ /* set no memory retention */
+ if (strcmp(vfe_dev->vfe_clk_info[i].clk_name,
+ "camss_vfe_clk") == 0 ||
+ strcmp(vfe_dev->vfe_clk_info[i].clk_name,
+ "camss_csi_vfe_clk") == 0 ||
+ strcmp(vfe_dev->vfe_clk_info[i].clk_name,
+ "camss_vfe_vbif_axi_clk") == 0) {
+ msm_camera_set_clk_flags(vfe_dev->vfe_clk[i],
+ CLKFLAG_NORETAIN_MEM);
+ msm_camera_set_clk_flags(vfe_dev->vfe_clk[i],
+ CLKFLAG_NORETAIN_PERIPH);
+ }
}
return 0;
}