diff options
6 files changed, 47 insertions, 357 deletions
diff --git a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c index da2381d24394..4e18659bf95e 100644 --- a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c +++ b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c @@ -49,35 +49,17 @@ #define ISPIF_TIMEOUT_ALL_US 1000000 #define ISPIF_SOF_DEBUG_COUNT 5 -/* 3D Threshold value according guidelines for line width 1280 */ -#define STEREO_DEFAULT_3D_THRESHOLD 0x36 - -/* - * Overflows before restarting interface during stereo usecase - * to give some tolerance for cases when the two sensors sync fails - * this value is chosen by experiment - */ -#define MAX_PIX_OVERFLOW_ERROR_COUNT 10 -static int pix_overflow_error_count[VFE_MAX] = { 0 }; - #undef CDBG #ifdef CONFIG_MSMB_CAMERA_DEBUG #define CDBG(fmt, args...) pr_debug(fmt, ##args) #else -#define CDBG(fmt, args...) +#define CDBG(fmt, args...) do { } while (0) #endif -/* Backward interface compatibility for 3D THRESHOLD calculation */ -#define ISPIF_USE_DEFAULT_THRESHOLD (0) -#define ISPIF_CALCULATE_THRESHOLD (1) - static int msm_ispif_clk_ahb_enable(struct ispif_device *ispif, int enable); static int ispif_close_node(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh); static long msm_ispif_subdev_ioctl_unlocked(struct v4l2_subdev *sd, unsigned int cmd, void *arg); -static long msm_ispif_dispatch_cmd(enum ispif_cfg_type_t cmd, - struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params); int msm_ispif_get_clk_info(struct ispif_device *ispif_dev, struct platform_device *pdev); @@ -275,7 +257,16 @@ static long msm_ispif_cmd_ext(struct v4l2_subdev *sd, } mutex_lock(&ispif->mutex); - rc = msm_ispif_dispatch_cmd(pcdata.cfg_type, ispif, params); + switch (pcdata.cfg_type) { + case ISPIF_CFG2: + rc = msm_ispif_config2(ispif, params); + msm_ispif_io_dump_reg(ispif); + break; + default: + pr_err("%s: invalid cfg_type\n", __func__); + rc = -EINVAL; + break; + } mutex_unlock(&ispif->mutex); kfree(params); return rc; @@ -464,7 +455,7 @@ static int msm_ispif_reset_hw(struct ispif_device *ispif) /* This is set when device is 8974 */ ispif->clk_idx = 1; } - memset(ispif->stereo_configured, 0, sizeof(ispif->stereo_configured)); + atomic_set(&ispif->reset_trig[VFE0], 1); /* initiate reset of ISPIF */ msm_camera_io_w(ISPIF_RST_CMD_MASK, @@ -872,34 +863,15 @@ static uint16_t msm_ispif_get_cids_mask_from_cfg( return cids_mask; } - -static uint16_t msm_ispif_get_right_cids_mask_from_cfg( - struct msm_ispif_right_param_entry *entry, int num_cids) -{ - int i; - uint16_t cids_mask = 0; - - if (WARN_ON(!entry)) - return cids_mask; - - for (i = 0; i < num_cids && i < MAX_CID_CH_PARAM_ENTRY; i++) { - if (entry->cids[i] < CID_MAX) - cids_mask |= (1 << entry->cids[i]); - } - - return cids_mask; -} - static int msm_ispif_config(struct ispif_device *ispif, void *data) { int rc = 0, i = 0; - uint16_t cid_mask = 0; - uint16_t cid_right_mask = 0; + uint16_t cid_mask; enum msm_ispif_intftype intftype; enum msm_ispif_vfe_intf vfe_intf; - struct msm_ispif_param_data_ext *params = - (struct msm_ispif_param_data_ext *)data; + struct msm_ispif_param_data *params = + (struct msm_ispif_param_data *)data; BUG_ON(!ispif); BUG_ON(!params); @@ -949,15 +921,9 @@ static int msm_ispif_config(struct ispif_device *ispif, return -EINVAL; } - if (ispif->csid_version >= CSID_VERSION_V30) { + if (ispif->csid_version >= CSID_VERSION_V30) msm_ispif_select_clk_mux(ispif, intftype, params->entries[i].csid, vfe_intf); - if (intftype == PIX0 && params->stereo_enable && - params->right_entries[i].csid < CSID_MAX) - msm_ispif_select_clk_mux(ispif, PIX1, - params->right_entries[i].csid, - vfe_intf); - } rc = msm_ispif_validate_intf_status(ispif, intftype, vfe_intf); if (rc) { @@ -968,26 +934,10 @@ static int msm_ispif_config(struct ispif_device *ispif, msm_ispif_sel_csid_core(ispif, intftype, params->entries[i].csid, vfe_intf); - if (intftype == PIX0 && params->stereo_enable && - params->right_entries[i].csid < CSID_MAX) - /* configure right stereo csid */ - msm_ispif_sel_csid_core(ispif, PIX1, - params->right_entries[i].csid, vfe_intf); - cid_mask = msm_ispif_get_cids_mask_from_cfg( ¶ms->entries[i]); msm_ispif_enable_intf_cids(ispif, intftype, cid_mask, vfe_intf, 1); - if (params->stereo_enable) - cid_right_mask = msm_ispif_get_right_cids_mask_from_cfg( - ¶ms->right_entries[i], - params->entries[i].num_cids); - else - cid_right_mask = 0; - if (cid_right_mask && params->stereo_enable) - /* configure right stereo cids */ - msm_ispif_enable_intf_cids(ispif, PIX1, - cid_right_mask, vfe_intf, 1); if (params->entries[i].crop_enable) msm_ispif_enable_crop(ispif, intftype, vfe_intf, params->entries[i].crop_start_pixel, @@ -1020,44 +970,8 @@ static int msm_ispif_config(struct ispif_device *ispif, return rc; } -static void msm_ispif_config_stereo(struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params, int use_line_width) { - - int i; - enum msm_ispif_vfe_intf vfe_intf; - uint32_t stereo_3d_threshold = STEREO_DEFAULT_3D_THRESHOLD; - - if (params->num > MAX_PARAM_ENTRIES) - return; - - for (i = 0; i < params->num; i++) { - vfe_intf = params->entries[i].vfe_intf; - if (!msm_ispif_is_intf_valid(ispif->csid_version, vfe_intf)) { - pr_err("%s: invalid interface type %d\n", __func__, - vfe_intf); - return; - } - if (params->entries[i].intftype == PIX0 && - params->stereo_enable && - params->right_entries[i].csid < CSID_MAX && - !ispif->stereo_configured[vfe_intf]) { - msm_camera_io_w_mb(0x3, - ispif->base + ISPIF_VFE_m_OUTPUT_SEL(vfe_intf)); - if (use_line_width && - (params->line_width[vfe_intf] > 0)) - stereo_3d_threshold = - (params->line_width[vfe_intf] + - 2 * 6 - 1) / (2 * 6); - msm_camera_io_w_mb(stereo_3d_threshold, - ispif->base + - ISPIF_VFE_m_3D_THRESHOLD(vfe_intf)); - ispif->stereo_configured[vfe_intf] = 1; - } - } -} - static void msm_ispif_intf_cmd(struct ispif_device *ispif, uint32_t cmd_bits, - struct msm_ispif_param_data_ext *params) + struct msm_ispif_param_data *params) { uint8_t vc; int i, k; @@ -1102,19 +1016,6 @@ static void msm_ispif_intf_cmd(struct ispif_device *ispif, uint32_t cmd_bits, ispif->applied_intf_cmd[vfe_intf].intf_cmd |= (cmd_bits << (vc * 2 + intf_type * 8)); } - if (intf_type == PIX0 && params->stereo_enable && - params->right_entries[i].cids[k] < CID_MAX) { - cid = params->right_entries[i].cids[k]; - vc = cid / 4; - - /* fill right stereo command */ - /* zero 2 bits */ - ispif->applied_intf_cmd[vfe_intf].intf_cmd &= - ~(0x3 << (vc * 2 + PIX1 * 8)); - /* set cmd bits */ - ispif->applied_intf_cmd[vfe_intf].intf_cmd |= - (cmd_bits << (vc * 2 + PIX1 * 8)); - } } /* cmd for PIX0, PIX1, RDI0, RDI1 */ if (ispif->applied_intf_cmd[vfe_intf].intf_cmd != 0xFFFFFFFF) @@ -1131,7 +1032,7 @@ static void msm_ispif_intf_cmd(struct ispif_device *ispif, uint32_t cmd_bits, } static int msm_ispif_stop_immediately(struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params) + struct msm_ispif_param_data *params) { int i, rc = 0; uint16_t cid_mask = 0; @@ -1159,24 +1060,13 @@ static int msm_ispif_stop_immediately(struct ispif_device *ispif, ¶ms->entries[i]); msm_ispif_enable_intf_cids(ispif, params->entries[i].intftype, cid_mask, params->entries[i].vfe_intf, 0); - if (params->stereo_enable) { - ispif->stereo_configured[ - params->entries[i].vfe_intf] = 0; - cid_mask = msm_ispif_get_right_cids_mask_from_cfg( - ¶ms->right_entries[i], - params->entries[i].num_cids); - if (cid_mask) - msm_ispif_enable_intf_cids(ispif, - params->entries[i].intftype, cid_mask, - params->entries[i].vfe_intf, 0); - } } return rc; } static int msm_ispif_start_frame_boundary(struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params) + struct msm_ispif_param_data *params) { int rc = 0; @@ -1192,15 +1082,13 @@ static int msm_ispif_start_frame_boundary(struct ispif_device *ispif, rc = -EINVAL; return rc; } - - msm_ispif_config_stereo(ispif, params, ISPIF_USE_DEFAULT_THRESHOLD); msm_ispif_intf_cmd(ispif, ISPIF_INTF_CMD_ENABLE_FRAME_BOUNDARY, params); return rc; } static int msm_ispif_restart_frame_boundary(struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params) + struct msm_ispif_param_data *params) { int rc = 0, i; long timeout = 0; @@ -1342,11 +1230,10 @@ end: } static int msm_ispif_stop_frame_boundary(struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params) + struct msm_ispif_param_data *params) { int i, rc = 0; uint16_t cid_mask = 0; - uint16_t cid_right_mask = 0; uint32_t intf_addr; enum msm_ispif_vfe_intf vfe_intf; uint32_t stop_flag = 0; @@ -1384,13 +1271,6 @@ static int msm_ispif_stop_frame_boundary(struct ispif_device *ispif, for (i = 0; i < params->num; i++) { cid_mask = msm_ispif_get_cids_mask_from_cfg(¶ms->entries[i]); - if (params->stereo_enable) - cid_right_mask = - msm_ispif_get_right_cids_mask_from_cfg( - ¶ms->right_entries[i], - params->entries[i].num_cids); - else - cid_right_mask = 0; vfe_intf = params->entries[i].vfe_intf; switch (params->entries[i].intftype) { @@ -1422,26 +1302,10 @@ static int msm_ispif_stop_frame_boundary(struct ispif_device *ispif, ISPIF_TIMEOUT_ALL_US); if (rc < 0) goto end; - if (cid_right_mask) { - ispif->stereo_configured[ - params->entries[i].vfe_intf] = 0; - intf_addr = ISPIF_VFE_m_PIX_INTF_n_STATUS(vfe_intf, 1); - rc = readl_poll_timeout(ispif->base + intf_addr, - stop_flag, - (stop_flag & 0xF) == 0xF, - ISPIF_TIMEOUT_SLEEP_US, - ISPIF_TIMEOUT_ALL_US); - if (rc < 0) - goto end; - } /* disable CIDs in CID_MASK register */ msm_ispif_enable_intf_cids(ispif, params->entries[i].intftype, cid_mask, vfe_intf, 0); - if (cid_right_mask) - msm_ispif_enable_intf_cids(ispif, - params->entries[i].intftype, cid_right_mask, - params->entries[i].vfe_intf, 0); } end: @@ -1462,14 +1326,6 @@ static void ispif_process_irq(struct ispif_device *ispif, ispif->sof_count[vfe_id].sof_cnt[PIX0]++; ispif->ispif_sof_debug++; } - if (out[vfe_id].ispifIrqStatus1 & - ISPIF_IRQ_STATUS_PIX_SOF_MASK) { - if (ispif->ispif_sof_debug < ISPIF_SOF_DEBUG_COUNT*2) - pr_err("%s: PIX1 frame id: %u\n", __func__, - ispif->sof_count[vfe_id].sof_cnt[PIX1]); - ispif->sof_count[vfe_id].sof_cnt[PIX1]++; - ispif->ispif_sof_debug++; - } if (out[vfe_id].ispifIrqStatus0 & ISPIF_IRQ_STATUS_RDI0_SOF_MASK) { if (ispif->ispif_rdi0_debug < ISPIF_SOF_DEBUG_COUNT) @@ -1496,55 +1352,12 @@ static void ispif_process_irq(struct ispif_device *ispif, } } -static int msm_ispif_reconfig_3d_output(struct ispif_device *ispif, - enum msm_ispif_vfe_intf vfe_id) -{ - uint32_t reg_data; - - if (WARN_ON(!ispif)) - return -EINVAL; - - if (!((vfe_id == VFE0) || (vfe_id == VFE1))) { - pr_err("%s;%d Cannot reconfigure 3D mode for VFE%d", __func__, - __LINE__, vfe_id); - return -EINVAL; - } - pr_info("%s;%d Reconfiguring 3D mode for VFE%d", __func__, __LINE__, - vfe_id); - reg_data = 0xFFFCFFFC; - msm_camera_io_w_mb(reg_data, ispif->base + - ISPIF_VFE_m_INTF_CMD_0(vfe_id)); - msm_camera_io_w_mb(reg_data, ispif->base + - ISPIF_IRQ_GLOBAL_CLEAR_CMD_ADDR); - - if (vfe_id == VFE0) { - reg_data = 0; - reg_data |= (PIX_0_VFE_RST_STB | PIX_1_VFE_RST_STB | - STROBED_RST_EN | PIX_0_CSID_RST_STB | - PIX_1_CSID_RST_STB | PIX_OUTPUT_0_MISR_RST_STB); - msm_camera_io_w_mb(reg_data, ispif->base + ISPIF_RST_CMD_ADDR); - } else { - reg_data = 0; - reg_data |= (PIX_0_VFE_RST_STB | PIX_1_VFE_RST_STB | - STROBED_RST_EN | PIX_0_CSID_RST_STB | - PIX_1_CSID_RST_STB | PIX_OUTPUT_0_MISR_RST_STB); - msm_camera_io_w_mb(reg_data, ispif->base + - ISPIF_RST_CMD_1_ADDR); - } - - reg_data = 0xFFFDFFFD; - msm_camera_io_w_mb(reg_data, ispif->base + - ISPIF_VFE_m_INTF_CMD_0(vfe_id)); - return 0; -} - static inline void msm_ispif_read_irq_status(struct ispif_irq_status *out, void *data) { struct ispif_device *ispif = (struct ispif_device *)data; bool fatal_err = false; int i = 0; - uint32_t reg_data; BUG_ON(!ispif); BUG_ON(!out); @@ -1595,12 +1408,6 @@ static inline void msm_ispif_read_irq_status(struct ispif_irq_status *out, fatal_err = true; } - if (out[VFE0].ispifIrqStatus1 & PIX_INTF_1_OVERFLOW_IRQ) { - pr_err_ratelimited("%s: VFE0 pix1 overflow.\n", - __func__); - fatal_err = true; - } - if (out[VFE0].ispifIrqStatus0 & RAW_INTF_0_OVERFLOW_IRQ) { pr_err_ratelimited("%s: VFE0 rdi0 overflow.\n", __func__); @@ -1633,12 +1440,6 @@ static inline void msm_ispif_read_irq_status(struct ispif_irq_status *out, fatal_err = true; } - if (out[VFE1].ispifIrqStatus1 & PIX_INTF_1_OVERFLOW_IRQ) { - pr_err_ratelimited("%s: VFE1 pix1 overflow.\n", - __func__); - fatal_err = true; - } - if (out[VFE1].ispifIrqStatus0 & RAW_INTF_0_OVERFLOW_IRQ) { pr_err_ratelimited("%s: VFE1 rdi0 overflow.\n", __func__); @@ -1660,43 +1461,6 @@ static inline void msm_ispif_read_irq_status(struct ispif_irq_status *out, ispif_process_irq(ispif, out, VFE1); } - if ((out[VFE0].ispifIrqStatus0 & PIX_INTF_0_OVERFLOW_IRQ) || - (out[VFE0].ispifIrqStatus1 & PIX_INTF_0_OVERFLOW_IRQ) || - (out[VFE0].ispifIrqStatus2 & (L_R_SOF_MISMATCH_ERR_IRQ | - L_R_EOF_MISMATCH_ERR_IRQ | L_R_SOL_MISMATCH_ERR_IRQ))) { - reg_data = msm_camera_io_r(ispif->base + - ISPIF_VFE_m_OUTPUT_SEL(VFE0)); - if ((reg_data & 0x03) == VFE_PIX_INTF_SEL_3D) { - pix_overflow_error_count[VFE0]++; - if (pix_overflow_error_count[VFE0] >= - MAX_PIX_OVERFLOW_ERROR_COUNT) { - msm_ispif_reconfig_3d_output(ispif, VFE0); - pix_overflow_error_count[VFE0] = 0; - } - fatal_err = false; - } - } - - if (ispif->vfe_info.num_vfe > 1) { - if ((out[VFE1].ispifIrqStatus0 & PIX_INTF_0_OVERFLOW_IRQ) || - (out[VFE1].ispifIrqStatus1 & PIX_INTF_0_OVERFLOW_IRQ) || - (out[VFE1].ispifIrqStatus2 & (L_R_SOF_MISMATCH_ERR_IRQ | - L_R_EOF_MISMATCH_ERR_IRQ | L_R_SOL_MISMATCH_ERR_IRQ))) { - reg_data = msm_camera_io_r(ispif->base + - ISPIF_VFE_m_OUTPUT_SEL(VFE1)); - if ((reg_data & 0x03) == VFE_PIX_INTF_SEL_3D) { - pix_overflow_error_count[VFE1]++; - if (pix_overflow_error_count[VFE1] >= - MAX_PIX_OVERFLOW_ERROR_COUNT) { - msm_ispif_reconfig_3d_output(ispif, - VFE1); - pix_overflow_error_count[VFE1] = 0; - } - } - fatal_err = false; - } - } - if (fatal_err == true) { pr_err_ratelimited("%s: fatal error, stop ispif immediately\n", __func__); @@ -1805,101 +1569,61 @@ static void msm_ispif_release(struct ispif_device *ispif) pr_err("%s: failed to remove vote for AHB\n", __func__); } -static long msm_ispif_dispatch_cmd(enum ispif_cfg_type_t cmd, - struct ispif_device *ispif, - struct msm_ispif_param_data_ext *params) +static long msm_ispif_cmd(struct v4l2_subdev *sd, void *arg) { long rc = 0; + struct ispif_cfg_data *pcdata = (struct ispif_cfg_data *)arg; + struct ispif_device *ispif = + (struct ispif_device *)v4l2_get_subdevdata(sd); - switch (cmd) { + BUG_ON(!sd); + BUG_ON(!pcdata); + + mutex_lock(&ispif->mutex); + switch (pcdata->cfg_type) { + case ISPIF_ENABLE_REG_DUMP: + ispif->enb_dump_reg = pcdata->reg_dump; /* save dump config */ + break; + case ISPIF_INIT: + rc = msm_ispif_init(ispif, pcdata->csid_version); + msm_ispif_io_dump_reg(ispif); + break; case ISPIF_CFG: - rc = msm_ispif_config(ispif, params); + rc = msm_ispif_config(ispif, &pcdata->params); msm_ispif_io_dump_reg(ispif); break; case ISPIF_START_FRAME_BOUNDARY: - rc = msm_ispif_start_frame_boundary(ispif, params); + rc = msm_ispif_start_frame_boundary(ispif, &pcdata->params); msm_ispif_io_dump_reg(ispif); break; case ISPIF_RESTART_FRAME_BOUNDARY: - rc = msm_ispif_restart_frame_boundary(ispif, params); + rc = msm_ispif_restart_frame_boundary(ispif, &pcdata->params); msm_ispif_io_dump_reg(ispif); break; + case ISPIF_STOP_FRAME_BOUNDARY: - rc = msm_ispif_stop_frame_boundary(ispif, params); + rc = msm_ispif_stop_frame_boundary(ispif, &pcdata->params); msm_ispif_io_dump_reg(ispif); break; case ISPIF_STOP_IMMEDIATELY: - rc = msm_ispif_stop_immediately(ispif, params); + rc = msm_ispif_stop_immediately(ispif, &pcdata->params); msm_ispif_io_dump_reg(ispif); break; case ISPIF_RELEASE: msm_ispif_reset(ispif); msm_ispif_reset_hw(ispif); break; - case ISPIF_CFG2: - rc = msm_ispif_config2(ispif, params); - msm_ispif_io_dump_reg(ispif); - break; - case ISPIF_CFG_STEREO: - msm_ispif_config_stereo(ispif, params, - ISPIF_CALCULATE_THRESHOLD); - break; - default: - pr_err("%s: invalid cfg_type\n", __func__); - rc = -EINVAL; - break; - } - return rc; -} - -static long msm_ispif_cmd(struct v4l2_subdev *sd, void *arg) -{ - long rc = 0; - struct ispif_cfg_data *pcdata = (struct ispif_cfg_data *)arg; - struct ispif_device *ispif = - (struct ispif_device *)v4l2_get_subdevdata(sd); - int i; - struct msm_ispif_param_data_ext params; - - if (WARN_ON(!sd) || WARN_ON(!pcdata)) - return -EINVAL; - - mutex_lock(&ispif->mutex); - switch (pcdata->cfg_type) { - case ISPIF_ENABLE_REG_DUMP: - /* save dump config */ - ispif->enb_dump_reg = pcdata->reg_dump; - break; - case ISPIF_INIT: - rc = msm_ispif_init(ispif, pcdata->csid_version); - msm_ispif_io_dump_reg(ispif); - break; case ISPIF_SET_VFE_INFO: rc = msm_ispif_set_vfe_info(ispif, &pcdata->vfe_info); break; default: - memset(¶ms, 0, sizeof(params)); - if (pcdata->params.num > MAX_PARAM_ENTRIES) { - pr_err("%s: invalid num entries %u\n", __func__, - pcdata->params.num); - rc = -EINVAL; - } else { - params.num = pcdata->params.num; - for (i = 0; i < pcdata->params.num; i++) - memcpy(¶ms.entries[i], - &pcdata->params.entries[i], - sizeof(struct msm_ispif_params_entry)); - params.stereo_enable = 0; - rc = msm_ispif_dispatch_cmd(pcdata->cfg_type, ispif, - ¶ms); - } + pr_err("%s: invalid cfg_type\n", __func__); + rc = -EINVAL; break; } mutex_unlock(&ispif->mutex); - return rc; } - static struct v4l2_file_operations msm_ispif_v4l2_subdev_fops; static long msm_ispif_subdev_ioctl_unlocked(struct v4l2_subdev *sd, diff --git a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.h b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.h index 3e6680c63ee5..61e8f1dd7aff 100644 --- a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.h +++ b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -77,6 +77,5 @@ struct ispif_device { int ispif_vdd_count; struct regulator *vfe_vdd[ISPIF_VFE_VDD_INFO_MAX]; int vfe_vdd_count; - int stereo_configured[VFE_MAX]; }; #endif diff --git a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v1.h b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v1.h index 49d7d0f7624e..d488ca618537 100644 --- a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v1.h +++ b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v1.h @@ -87,12 +87,6 @@ #define MISC_LOGIC_RST_STB BIT(1) #define STROBED_RST_EN BIT(0) -#define VFE_PIX_INTF_SEL_3D 0x3 -#define PIX_OUTPUT_0_MISR_RST_STB BIT(16) -#define L_R_SOF_MISMATCH_ERR_IRQ BIT(16) -#define L_R_EOF_MISMATCH_ERR_IRQ BIT(17) -#define L_R_SOL_MISMATCH_ERR_IRQ BIT(18) - #define ISPIF_RST_CMD_MASK 0xFE1C77FF #define ISPIF_RST_CMD_1_MASK 0xFFFFFFFF /* undefined */ diff --git a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v2.h b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v2.h index 9abf55efc46c..8ae61dc2d4f6 100644 --- a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v2.h +++ b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v2.h @@ -22,7 +22,6 @@ #define ISPIF_VFE(m) ((m) * 0x200) #define ISPIF_VFE_m_CTRL_0(m) (0x200 + ISPIF_VFE(m)) -#define ISPIF_VFE_m_CTRL_1(m) (0x204 + ISPIF_VFE(m)) #define ISPIF_VFE_m_IRQ_MASK_0(m) (0x208 + ISPIF_VFE(m)) #define ISPIF_VFE_m_IRQ_MASK_1(m) (0x20C + ISPIF_VFE(m)) #define ISPIF_VFE_m_IRQ_MASK_2(m) (0x210 + ISPIF_VFE(m)) @@ -72,12 +71,6 @@ #define MISC_LOGIC_RST_STB BIT(1) #define STROBED_RST_EN BIT(0) -#define VFE_PIX_INTF_SEL_3D 0x3 -#define PIX_OUTPUT_0_MISR_RST_STB BIT(16) -#define L_R_SOF_MISMATCH_ERR_IRQ BIT(16) -#define L_R_EOF_MISMATCH_ERR_IRQ BIT(17) -#define L_R_SOL_MISMATCH_ERR_IRQ BIT(18) - #define ISPIF_RST_CMD_MASK 0xFE0F1FFF #define ISPIF_RST_CMD_1_MASK 0xFC0F1FF9 @@ -85,7 +78,6 @@ #define ISPIF_RST_CMD_1_MASK_RESTART 0x00001FF9 #define PIX_INTF_0_OVERFLOW_IRQ BIT(12) -#define PIX_INTF_1_OVERFLOW_IRQ BIT(12) #define RAW_INTF_0_OVERFLOW_IRQ BIT(25) #define RAW_INTF_1_OVERFLOW_IRQ BIT(25) #define RAW_INTF_2_OVERFLOW_IRQ BIT(12) diff --git a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v3.h b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v3.h index 5f2aa06f3e13..94cc974441ee 100644 --- a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v3.h +++ b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif_hwreg_v3.h @@ -74,12 +74,6 @@ #define MISC_LOGIC_RST_STB BIT(1) #define STROBED_RST_EN BIT(0) -#define VFE_PIX_INTF_SEL_3D 0x3 -#define PIX_OUTPUT_0_MISR_RST_STB BIT(16) -#define L_R_SOF_MISMATCH_ERR_IRQ BIT(16) -#define L_R_EOF_MISMATCH_ERR_IRQ BIT(17) -#define L_R_SOL_MISMATCH_ERR_IRQ BIT(18) - #define ISPIF_RST_CMD_MASK 0xFE7F1FFF #define ISPIF_RST_CMD_1_MASK 0xFC7F1FF9 @@ -87,7 +81,6 @@ #define ISPIF_RST_CMD_1_MASK_RESTART 0x7F1FF9 #define PIX_INTF_0_OVERFLOW_IRQ BIT(12) -#define PIX_INTF_1_OVERFLOW_IRQ BIT(12) #define RAW_INTF_0_OVERFLOW_IRQ BIT(25) #define RAW_INTF_1_OVERFLOW_IRQ BIT(25) #define RAW_INTF_2_OVERFLOW_IRQ BIT(12) diff --git a/include/uapi/media/msmb_ispif.h b/include/uapi/media/msmb_ispif.h index d532037427cc..3720056aa28d 100644 --- a/include/uapi/media/msmb_ispif.h +++ b/include/uapi/media/msmb_ispif.h @@ -36,6 +36,7 @@ enum msm_ispif_intftype { #define RDI1_MASK (1 << RDI1) #define RDI2_MASK (1 << RDI2) + enum msm_ispif_vc { VC0, VC1, @@ -101,18 +102,10 @@ struct msm_ispif_params_entry { uint16_t crop_end_pixel; }; -struct msm_ispif_right_param_entry { - enum msm_ispif_cid cids[MAX_CID_CH_PARAM_ENTRY]; - enum msm_ispif_csid csid; -}; - struct msm_ispif_param_data_ext { uint32_t num; struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES]; struct msm_ispif_pack_cfg pack_cfg[CID_MAX]; - struct msm_ispif_right_param_entry right_entries[MAX_PARAM_ENTRIES]; - uint32_t stereo_enable; - uint16_t line_width[VFE_MAX]; }; struct msm_ispif_param_data { @@ -144,7 +137,6 @@ enum ispif_cfg_type_t { ISPIF_ENABLE_REG_DUMP, ISPIF_SET_VFE_INFO, ISPIF_CFG2, - ISPIF_CFG_STEREO, }; struct ispif_cfg_data { @@ -165,10 +157,6 @@ struct ispif_cfg_data_ext { #define ISPIF_RDI_PACK_MODE_SUPPORT 1 -#define ISPIF_3D_SUPPORT 1 - -#define ISPIF_LINE_WIDTH_SUPPORT 1 - #define VIDIOC_MSM_ISPIF_CFG \ _IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data) |
