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

Commit 1addf9a9 authored by Jeyaprakash Soundrapandian's avatar Jeyaprakash Soundrapandian Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: cam: isp: add kernel HFR support" into dev/msm-4.9-camx

parents c5a33b90 193d78cd
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@

#define FRAME_BASED_EN 0

#define MAX_BUF_UPDATE_REG_NUM   20
#define MAX_BUF_UPDATE_REG_NUM   \
	(sizeof(struct cam_vfe_bus_ver2_reg_offset_bus_client)/4)
#define MAX_REG_VAL_PAIR_SIZE    \
		(MAX_BUF_UPDATE_REG_NUM * 2 * CAM_PACKET_MAX_PLANES)

@@ -1652,6 +1653,7 @@ static int cam_vfe_bus_update_buf(void *priv, void *cmd_args,
	struct cam_vfe_bus_ver2_wm_resource_data *wm_data = NULL;
	uint32_t *reg_val_pair;
	uint32_t  i, j, size = 0;
	uint32_t  frame_inc = 0;

	/*
	 * Need the entire buf io config so we can get the stride info
@@ -1672,13 +1674,19 @@ static int cam_vfe_bus_update_buf(void *priv, void *cmd_args,
	if (update_buf->num_buf != vfe_out_data->num_wm) {
		pr_err("Failed! Invalid number buffers:%d required:%d\n",
			update_buf->num_buf, vfe_out_data->num_wm);
		return -ENOMEM;
		return -EINVAL;
	}

	reg_val_pair = &vfe_out_data->common_data->io_buf_update[0];
	io_cfg = update_buf->io_cfg;

	for (i = 0, j = 0; i < vfe_out_data->num_wm; i++) {
		if (j >= (MAX_REG_VAL_PAIR_SIZE - MAX_BUF_UPDATE_REG_NUM * 2)) {
			pr_err("reg_val_pair %d exceeds the array limit %lu\n",
				j, MAX_REG_VAL_PAIR_SIZE);
			return -ENOMEM;
		}

		wm_data = vfe_out_data->wm_res[i]->res_priv;

		/* For initial configuration program all bus registers */
@@ -1833,6 +1841,11 @@ static int cam_vfe_bus_update_buf(void *priv, void *cmd_args,

		CDBG("image address 0x%x\n", reg_val_pair[j-1]);

		frame_inc = io_cfg->planes[i].plane_stride *
			io_cfg->planes[i].slice_height;
		CAM_VFE_ADD_REG_VAL_PAIR(reg_val_pair, j,
			wm_data->hw_regs->frame_inc, frame_inc);

		/* enable the WM */
		CAM_VFE_ADD_REG_VAL_PAIR(reg_val_pair, j,
			wm_data->hw_regs->cfg,
+0 −4
Original line number Diff line number Diff line
@@ -119,10 +119,6 @@ static int cam_vfe_camif_resource_start(
			rsrc_data->camif_reg->line_skip_pattern);
	cam_io_w_mb(0x1, rsrc_data->mem_base +
			rsrc_data->camif_reg->pixel_skip_pattern);
	cam_io_w_mb(0x0, rsrc_data->mem_base +
			rsrc_data->camif_reg->skip_period);
	cam_io_w_mb(0x1, rsrc_data->mem_base +
			rsrc_data->camif_reg->irq_subsample_pattern);

	/* epoch config with 20 line */
	cam_io_w_mb(0x00140014,