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 d3ef03691d12..d699d091e3c7 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 @@ -395,32 +395,33 @@ cam_clk_set_err: EXPORT_SYMBOL(msm_camera_clk_enable); /* Set rate on a specific clock */ -int msm_camera_clk_set_rate(struct device *dev, +long msm_camera_clk_set_rate(struct device *dev, struct clk *clk, long clk_rate) { int rc = 0; + long rate = 0; - if (!dev || !clk) + if (!dev || !clk || (clk_rate < 0)) return -EINVAL; CDBG("clk : %p, enable : %ld\n", clk, clk_rate); if (clk_rate > 0) { - clk_rate = clk_round_rate(clk, clk_rate); - if (clk_rate < 0) { + rate = clk_round_rate(clk, clk_rate); + if (rate < 0) { pr_err("round rate failed\n"); return -EINVAL; } - rc = clk_set_rate(clk, clk_rate); + rc = clk_set_rate(clk, rate); if (rc < 0) { pr_err("set rate failed\n"); return -EINVAL; } } - return 0; + return rate; } EXPORT_SYMBOL(msm_camera_clk_set_rate); 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 e8f34504a04a..0b60d4137354 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 @@ -134,19 +134,19 @@ int msm_camera_clk_enable(struct device *dev, /** * @brief : Set clock rate * - * This function sets the rate for a specified clock + * This function sets the rate for a specified clock and + * returns the rounded value * * @param dev : Device to get clocks information * @param clk : Pointer to clock to set rate * @param clk_rate : Rate to be set * - * @return Status of operation. Negative in case of error. Zero otherwise. + * @return Status of operation. Negative in case of error. clk rate otherwise. */ -int msm_camera_clk_set_rate(struct device *dev, +long msm_camera_clk_set_rate(struct device *dev, struct clk *clk, long clk_rate); - /** * @brief : Gets regulator info *