From 4097d970bb95659514717b49c6cc3cb2985aa07e Mon Sep 17 00:00:00 2001 From: Shubhraprakash Das Date: Tue, 26 Jul 2016 12:24:07 -0700 Subject: [PATCH] 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 --- .../media/platform/msm/camera_v2/isp/msm_isp48.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 #include +#include #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; }