Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6dd8baf authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm-camera: add cx-ipeak support for vfe"

parents fb285dc2 ab20cd5e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@
#include "msm_isp44.h"
#include "msm_isp40.h"
#include "msm_isp32.h"
#include "msm_cam_cx_ipeak.h"

static struct msm_sd_req_vb2_q vfe_vb2_ops;
static struct msm_isp_buf_mgr vfe_buf_mgr;
@@ -654,6 +655,11 @@ int vfe_hw_probe(struct platform_device *pdev)
			"qcom,vfe-cx-ipeak", NULL)) {
			vfe_dev->vfe_cx_ipeak = cx_ipeak_register(
				pdev->dev.of_node, "qcom,vfe-cx-ipeak");
			if (vfe_dev->vfe_cx_ipeak)
				cam_cx_ipeak_register_cx_ipeak(
				vfe_dev->vfe_cx_ipeak, &vfe_dev->cx_ipeak_bit);
			pr_debug("%s: register cx_ipeak received bit %d\n",
				__func__, vfe_dev->cx_ipeak_bit);
		}
	} else {
		vfe_dev->hw_info = (struct msm_vfe_hardware_info *)
+1 −0
Original line number Diff line number Diff line
@@ -805,6 +805,7 @@ struct vfe_device {
	enum cam_ahb_clk_vote ahb_vote;
	enum cam_ahb_clk_vote user_requested_ahb_vote;
	struct cx_ipeak_client *vfe_cx_ipeak;
	int cx_ipeak_bit;

	/* Sync variables*/
	struct completion reset_complete;
+7 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include "cam_soc_api.h"
#include "msm_isp48.h"
#include "linux/iopoll.h"
#include "msm_cam_cx_ipeak.h"

#undef CDBG
#define CDBG(fmt, args...) pr_debug(fmt, ##args)
@@ -2715,7 +2716,9 @@ int msm_vfe47_set_clk_rate(struct vfe_device *vfe_dev, long *rate)
		prev_clk_rate <
		vfe_dev->vfe_clk_rates[MSM_VFE_CLK_RATE_NOMINAL]
		[vfe_dev->hw_info->vfe_clk_idx]) {
		ret = cx_ipeak_update(vfe_dev->vfe_cx_ipeak, true);
		pr_debug("%s: clk is more than Nominal vfe %d, ipeak bit %d\n",
			__func__, vfe_dev->pdev->id, vfe_dev->cx_ipeak_bit);
		ret = cam_cx_ipeak_update_vote_cx_ipeak(vfe_dev->cx_ipeak_bit);
		if (ret) {
			pr_err("%s: cx_ipeak_update failed %d\n",
				__func__, ret);
@@ -2738,7 +2741,9 @@ int msm_vfe47_set_clk_rate(struct vfe_device *vfe_dev, long *rate)
		prev_clk_rate >=
		vfe_dev->vfe_clk_rates[MSM_VFE_CLK_RATE_NOMINAL]
		[vfe_dev->hw_info->vfe_clk_idx]) {
		ret = cx_ipeak_update(vfe_dev->vfe_cx_ipeak, false);
		pr_debug("%s:clk is less than Nominal vfe %d, ipeak bit %d\n",
			__func__, vfe_dev->pdev->id, vfe_dev->cx_ipeak_bit);
		ret = cam_cx_ipeak_unvote_cx_ipeak(vfe_dev->cx_ipeak_bit);
		if (ret) {
			pr_err("%s: cx_ipeak_update failed %d\n",
				__func__, ret);