msm: camera: isp: shdr enable pdaf occur overflow
If we config stream in order like IMAGE/IMAGE_SHORT/ PDAF, while PDAF stream reserve, it will override sfe_inline_shdr flag to false on csid_hw, and we can not configure the master/slave register correctly, so we move the common sfe_inline_shdr flag to path cfg. CRs-Fixed: 3047943 Change-Id: Ie4a863e9aa24a142c5c4b3c90553e4a2bd92d7f3 Signed-off-by: chengxue <chengxue@codeaurora.org>
This commit is contained in:
@@ -281,7 +281,6 @@ struct cam_ife_csid_debug_info {
|
|||||||
* @fatal_err_detected: flag to indicate if fatal err detected
|
* @fatal_err_detected: flag to indicate if fatal err detected
|
||||||
* @rx_enabled: flag to indicate if rx is enabled
|
* @rx_enabled: flag to indicate if rx is enabled
|
||||||
* @tpg_configured: flag to indicate if internal_tpg is configured
|
* @tpg_configured: flag to indicate if internal_tpg is configured
|
||||||
* @sfe_inline_shdr: flag to indicate if sfe is inline shdr
|
|
||||||
* @reset_awaited: flag to indicate if reset is awaited
|
* @reset_awaited: flag to indicate if reset is awaited
|
||||||
* @offline_mode: flag to indicate if csid in offline mode
|
* @offline_mode: flag to indicate if csid in offline mode
|
||||||
*/
|
*/
|
||||||
@@ -294,7 +293,6 @@ struct cam_ife_csid_hw_flags {
|
|||||||
bool rx_enabled;
|
bool rx_enabled;
|
||||||
bool tpg_enabled;
|
bool tpg_enabled;
|
||||||
bool tpg_configured;
|
bool tpg_configured;
|
||||||
bool sfe_inline_shdr;
|
|
||||||
bool reset_awaited;
|
bool reset_awaited;
|
||||||
bool offline_mode;
|
bool offline_mode;
|
||||||
};
|
};
|
||||||
|
@@ -2497,7 +2497,7 @@ int cam_ife_csid_ver2_reserve(void *hw_priv,
|
|||||||
csid_hw->token = reserve->cb_priv;
|
csid_hw->token = reserve->cb_priv;
|
||||||
reserve->buf_done_controller = csid_hw->buf_done_irq_controller;
|
reserve->buf_done_controller = csid_hw->buf_done_irq_controller;
|
||||||
res->cdm_ops = reserve->cdm_ops;
|
res->cdm_ops = reserve->cdm_ops;
|
||||||
csid_hw->flags.sfe_inline_shdr = reserve->sfe_inline_shdr;
|
path_cfg->sfe_inline_shdr = reserve->sfe_inline_shdr;
|
||||||
csid_hw->flags.offline_mode = reserve->is_offline;
|
csid_hw->flags.offline_mode = reserve->is_offline;
|
||||||
|
|
||||||
reserve->need_top_cfg = csid_reg->need_top_cfg;
|
reserve->need_top_cfg = csid_reg->need_top_cfg;
|
||||||
@@ -2784,7 +2784,7 @@ static int cam_ife_csid_ver2_init_config_rdi_path(
|
|||||||
path_reg->err_recovery_cfg0_addr);
|
path_reg->err_recovery_cfg0_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (csid_hw->flags.sfe_inline_shdr)
|
if (path_cfg->sfe_inline_shdr)
|
||||||
cam_ife_csid_ver2_shdr_cfg(csid_hw, res->res_id);
|
cam_ife_csid_ver2_shdr_cfg(csid_hw, res->res_id);
|
||||||
|
|
||||||
if (csid_hw->debug_info.debug_val &
|
if (csid_hw->debug_info.debug_val &
|
||||||
@@ -3069,7 +3069,7 @@ static int cam_ife_csid_ver2_program_rdi_path(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((csid_hw->flags.offline_mode ||
|
if ((csid_hw->flags.offline_mode ||
|
||||||
csid_hw->flags.sfe_inline_shdr) &&
|
path_cfg->sfe_inline_shdr) &&
|
||||||
(res->res_id == CAM_IFE_PIX_PATH_RES_RDI_0)) {
|
(res->res_id == CAM_IFE_PIX_PATH_RES_RDI_0)) {
|
||||||
val |= path_reg->camif_irq_mask;
|
val |= path_reg->camif_irq_mask;
|
||||||
path_cfg->handle_camif_irq = true;
|
path_cfg->handle_camif_irq = true;
|
||||||
|
@@ -167,6 +167,7 @@ struct cam_ife_csid_ver2_camif_data {
|
|||||||
* the corresponding paths
|
* the corresponding paths
|
||||||
* @en_secondary_evt: Enable secondary evt for this path, to notify
|
* @en_secondary_evt: Enable secondary evt for this path, to notify
|
||||||
* hw manager
|
* hw manager
|
||||||
|
* @sfe_inline_shdr: flag to indicate if sfe is inline shdr
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
struct cam_ife_csid_ver2_path_cfg {
|
struct cam_ife_csid_ver2_path_cfg {
|
||||||
@@ -204,6 +205,7 @@ struct cam_ife_csid_ver2_path_cfg {
|
|||||||
bool discard_init_frames;
|
bool discard_init_frames;
|
||||||
bool skip_discard_frame_cfg;
|
bool skip_discard_frame_cfg;
|
||||||
bool en_secondary_evt;
|
bool en_secondary_evt;
|
||||||
|
bool sfe_inline_shdr;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cam_ife_csid_ver2_top_reg_info {
|
struct cam_ife_csid_ver2_top_reg_info {
|
||||||
|
Reference in New Issue
Block a user