Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.c +15 −2 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading @@ -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 */ Loading Loading @@ -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, Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_ver2.c +0 −4 Original line number Diff line number Diff line Loading @@ -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, Loading Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.c +15 −2 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading @@ -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 */ Loading Loading @@ -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, Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_ver2.c +0 −4 Original line number Diff line number Diff line Loading @@ -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, Loading