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
|
||||
* @rx_enabled: flag to indicate if rx is enabled
|
||||
* @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
|
||||
* @offline_mode: flag to indicate if csid in offline mode
|
||||
*/
|
||||
@@ -294,7 +293,6 @@ struct cam_ife_csid_hw_flags {
|
||||
bool rx_enabled;
|
||||
bool tpg_enabled;
|
||||
bool tpg_configured;
|
||||
bool sfe_inline_shdr;
|
||||
bool reset_awaited;
|
||||
bool offline_mode;
|
||||
};
|
||||
|
@@ -2497,7 +2497,7 @@ int cam_ife_csid_ver2_reserve(void *hw_priv,
|
||||
csid_hw->token = reserve->cb_priv;
|
||||
reserve->buf_done_controller = csid_hw->buf_done_irq_controller;
|
||||
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;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if (csid_hw->flags.sfe_inline_shdr)
|
||||
if (path_cfg->sfe_inline_shdr)
|
||||
cam_ife_csid_ver2_shdr_cfg(csid_hw, res->res_id);
|
||||
|
||||
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 ||
|
||||
csid_hw->flags.sfe_inline_shdr) &&
|
||||
path_cfg->sfe_inline_shdr) &&
|
||||
(res->res_id == CAM_IFE_PIX_PATH_RES_RDI_0)) {
|
||||
val |= path_reg->camif_irq_mask;
|
||||
path_cfg->handle_camif_irq = true;
|
||||
|
@@ -167,6 +167,7 @@ struct cam_ife_csid_ver2_camif_data {
|
||||
* the corresponding paths
|
||||
* @en_secondary_evt: Enable secondary evt for this path, to notify
|
||||
* hw manager
|
||||
* @sfe_inline_shdr: flag to indicate if sfe is inline shdr
|
||||
*
|
||||
*/
|
||||
struct cam_ife_csid_ver2_path_cfg {
|
||||
@@ -204,6 +205,7 @@ struct cam_ife_csid_ver2_path_cfg {
|
||||
bool discard_init_frames;
|
||||
bool skip_discard_frame_cfg;
|
||||
bool en_secondary_evt;
|
||||
bool sfe_inline_shdr;
|
||||
};
|
||||
|
||||
struct cam_ife_csid_ver2_top_reg_info {
|
||||
|
Reference in New Issue
Block a user