Loading drivers/platform/msm/gsi/gsi.c +3 −2 Original line number Diff line number Diff line Loading @@ -3752,8 +3752,9 @@ int gsi_config_channel_mode(unsigned long chan_hdl, enum gsi_chan_mode mode) * to losing an interrupt. For these versions an * explicit check is needed after enabling the interrupt */ if (gsi_ctx->per.ver == GSI_VER_2_2 || gsi_ctx->per.ver == GSI_VER_2_5) { if ((gsi_ctx->per.ver == GSI_VER_2_2 || gsi_ctx->per.ver == GSI_VER_2_5) && !gsi_ctx->per.skip_ieob_mask_wa) { u32 src = gsi_readl(gsi_ctx->base + GSI_EE_n_CNTXT_SRC_IEOB_IRQ_OFFS( gsi_ctx->per.ee)); Loading drivers/platform/msm/ipa/ipa_v3/ipa.c +8 −0 Original line number Diff line number Diff line Loading @@ -5634,6 +5634,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, gsi_props.mhi_er_id_limits[0] = resource_p->mhi_evid_limits[0]; gsi_props.mhi_er_id_limits[1] = resource_p->mhi_evid_limits[1]; } gsi_props.skip_ieob_mask_wa = resource_p->skip_ieob_mask_wa; result = gsi_register_device(&gsi_props, &ipa3_ctx->gsi_dev_hdl); Loading Loading @@ -6793,6 +6794,7 @@ static int get_ipa_dts_configuration(struct platform_device *pdev, ipa_drv_res->mhi_evid_limits[1] = IPA_MHI_GSI_EVENT_RING_ID_END; ipa_drv_res->ipa_fltrt_not_hashable = false; ipa_drv_res->ipa_endp_delay_wa = false; ipa_drv_res->skip_ieob_mask_wa = false; /* Get IPA HW Version */ result = of_property_read_u32(pdev->dev.of_node, "qcom,ipa-hw-ver", Loading Loading @@ -6919,6 +6921,12 @@ static int get_ipa_dts_configuration(struct platform_device *pdev, IPADBG(": use_bw_vote = %s\n", ipa_drv_res->use_bw_vote ? "True" : "False"); ipa_drv_res->skip_ieob_mask_wa = of_property_read_bool(pdev->dev.of_node, "qcom,skip-ieob-mask-wa"); IPADBG(": skip ieob mask wa = %s\n", ipa_drv_res->skip_ieob_mask_wa ? "True" : "False"); ipa_drv_res->skip_uc_pipe_reset = of_property_read_bool(pdev->dev.of_node, Loading drivers/platform/msm/ipa/ipa_v3/ipa_i.h +1 −0 Original line number Diff line number Diff line Loading @@ -1933,6 +1933,7 @@ struct ipa3_plat_drv_res { bool do_ram_collection_on_crash; u32 secure_debug_check_action; bool ipa_endp_delay_wa; bool skip_ieob_mask_wa; }; /** Loading Loading
drivers/platform/msm/gsi/gsi.c +3 −2 Original line number Diff line number Diff line Loading @@ -3752,8 +3752,9 @@ int gsi_config_channel_mode(unsigned long chan_hdl, enum gsi_chan_mode mode) * to losing an interrupt. For these versions an * explicit check is needed after enabling the interrupt */ if (gsi_ctx->per.ver == GSI_VER_2_2 || gsi_ctx->per.ver == GSI_VER_2_5) { if ((gsi_ctx->per.ver == GSI_VER_2_2 || gsi_ctx->per.ver == GSI_VER_2_5) && !gsi_ctx->per.skip_ieob_mask_wa) { u32 src = gsi_readl(gsi_ctx->base + GSI_EE_n_CNTXT_SRC_IEOB_IRQ_OFFS( gsi_ctx->per.ee)); Loading
drivers/platform/msm/ipa/ipa_v3/ipa.c +8 −0 Original line number Diff line number Diff line Loading @@ -5634,6 +5634,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, gsi_props.mhi_er_id_limits[0] = resource_p->mhi_evid_limits[0]; gsi_props.mhi_er_id_limits[1] = resource_p->mhi_evid_limits[1]; } gsi_props.skip_ieob_mask_wa = resource_p->skip_ieob_mask_wa; result = gsi_register_device(&gsi_props, &ipa3_ctx->gsi_dev_hdl); Loading Loading @@ -6793,6 +6794,7 @@ static int get_ipa_dts_configuration(struct platform_device *pdev, ipa_drv_res->mhi_evid_limits[1] = IPA_MHI_GSI_EVENT_RING_ID_END; ipa_drv_res->ipa_fltrt_not_hashable = false; ipa_drv_res->ipa_endp_delay_wa = false; ipa_drv_res->skip_ieob_mask_wa = false; /* Get IPA HW Version */ result = of_property_read_u32(pdev->dev.of_node, "qcom,ipa-hw-ver", Loading Loading @@ -6919,6 +6921,12 @@ static int get_ipa_dts_configuration(struct platform_device *pdev, IPADBG(": use_bw_vote = %s\n", ipa_drv_res->use_bw_vote ? "True" : "False"); ipa_drv_res->skip_ieob_mask_wa = of_property_read_bool(pdev->dev.of_node, "qcom,skip-ieob-mask-wa"); IPADBG(": skip ieob mask wa = %s\n", ipa_drv_res->skip_ieob_mask_wa ? "True" : "False"); ipa_drv_res->skip_uc_pipe_reset = of_property_read_bool(pdev->dev.of_node, Loading
drivers/platform/msm/ipa/ipa_v3/ipa_i.h +1 −0 Original line number Diff line number Diff line Loading @@ -1933,6 +1933,7 @@ struct ipa3_plat_drv_res { bool do_ram_collection_on_crash; u32 secure_debug_check_action; bool ipa_endp_delay_wa; bool skip_ieob_mask_wa; }; /** Loading