From 2c28d7f5d42d0c755df938bbcc0957a001fae8f6 Mon Sep 17 00:00:00 2001 From: Shubhraprakash Das Date: Thu, 31 Mar 2016 12:30:48 -0700 Subject: [PATCH] msm: camera: Add new soc api Add a new soc api to set the flags of a clock. CRs-Fixed: 1044373 Change-Id: I81c8ffc49166f7bf6d5c6eb3b61bfb5699dfb091 Signed-off-by: Shubhraprakash Das --- .../platform/msm/camera_v2/common/cam_soc_api.c | 12 ++++++++++++ .../platform/msm/camera_v2/common/cam_soc_api.h | 13 +++++++++++++ 2 files changed, 25 insertions(+) diff --git a/drivers/media/platform/msm/camera_v2/common/cam_soc_api.c b/drivers/media/platform/msm/camera_v2/common/cam_soc_api.c index 7f5e49809a26..8da079d9d0c8 100644 --- a/drivers/media/platform/msm/camera_v2/common/cam_soc_api.c +++ b/drivers/media/platform/msm/camera_v2/common/cam_soc_api.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "cam_soc_api.h" struct msm_cam_bus_pscale_data { @@ -454,6 +455,17 @@ long msm_camera_clk_set_rate(struct device *dev, } EXPORT_SYMBOL(msm_camera_clk_set_rate); +int msm_camera_set_clk_flags(struct clk *clk, unsigned long flags) +{ + if (!clk) + return -EINVAL; + + CDBG("clk : %p, flags : %ld\n", clk, flags); + + return clk_set_flags(clk, flags); +} +EXPORT_SYMBOL(msm_camera_set_clk_flags); + /* release memory allocated for clocks */ static int msm_camera_put_clk_info_internal(struct device *dev, struct msm_cam_clk_info **clk_info, diff --git a/drivers/media/platform/msm/camera_v2/common/cam_soc_api.h b/drivers/media/platform/msm/camera_v2/common/cam_soc_api.h index d1eeab92773f..b4494d4d6bab 100644 --- a/drivers/media/platform/msm/camera_v2/common/cam_soc_api.h +++ b/drivers/media/platform/msm/camera_v2/common/cam_soc_api.h @@ -187,6 +187,18 @@ int msm_camera_clk_enable(struct device *dev, long msm_camera_clk_set_rate(struct device *dev, struct clk *clk, long clk_rate); +/** + * @brief : Sets flags of a clock + * + * This function will set the flags for a specified clock + * + * @param clk : Pointer to clock to set flags for + * @param flags : The flags to set + * + * @return Status of operation. + */ + +int msm_camera_set_clk_flags(struct clk *clk, unsigned long flags); /** * @brief : Gets regulator info * @@ -200,6 +212,7 @@ long msm_camera_clk_set_rate(struct device *dev, * * @return Status of operation. Negative in case of error. Zero otherwise. */ + int msm_camera_get_regulator_info(struct platform_device *pdev, struct msm_cam_regulator **vdd_info, int *num_reg); /**