Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb09d9b5 authored by Praveen Kurapati's avatar Praveen Kurapati
Browse files

msm: ipa3: Fix to avoid using ieob mask wa in bengal target



No need of explicit check for IEOB interrupt after enabling
it. Hardware support is present in bengal target. Add changes
to skip the workaround for bengal target.

Change-Id: I393f27ec931b39ba09b96d830beda65b9e15d323
Signed-off-by: default avatarPraveen Kurapati <pkurapat@codeaurora.org>
parent ea699bd2
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -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
		 * to losing an interrupt. For these versions an
		 * explicit check is needed after enabling the interrupt
		 * explicit check is needed after enabling the interrupt
		 */
		 */
		if (gsi_ctx->per.ver == GSI_VER_2_2 ||
		if ((gsi_ctx->per.ver == GSI_VER_2_2 ||
		    gsi_ctx->per.ver == GSI_VER_2_5) {
		    gsi_ctx->per.ver == GSI_VER_2_5) &&
			!gsi_ctx->per.skip_ieob_mask_wa) {
			u32 src = gsi_readl(gsi_ctx->base +
			u32 src = gsi_readl(gsi_ctx->base +
				GSI_EE_n_CNTXT_SRC_IEOB_IRQ_OFFS(
				GSI_EE_n_CNTXT_SRC_IEOB_IRQ_OFFS(
					gsi_ctx->per.ee));
					gsi_ctx->per.ee));
+8 −0
Original line number Original line Diff line number Diff line
@@ -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[0] = resource_p->mhi_evid_limits[0];
		gsi_props.mhi_er_id_limits[1] = resource_p->mhi_evid_limits[1];
		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,
	result = gsi_register_device(&gsi_props,
		&ipa3_ctx->gsi_dev_hdl);
		&ipa3_ctx->gsi_dev_hdl);
@@ -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->mhi_evid_limits[1] = IPA_MHI_GSI_EVENT_RING_ID_END;
	ipa_drv_res->ipa_fltrt_not_hashable = false;
	ipa_drv_res->ipa_fltrt_not_hashable = false;
	ipa_drv_res->ipa_endp_delay_wa = false;
	ipa_drv_res->ipa_endp_delay_wa = false;
	ipa_drv_res->skip_ieob_mask_wa = false;


	/* Get IPA HW Version */
	/* Get IPA HW Version */
	result = of_property_read_u32(pdev->dev.of_node, "qcom,ipa-hw-ver",
	result = of_property_read_u32(pdev->dev.of_node, "qcom,ipa-hw-ver",
@@ -6919,6 +6921,12 @@ static int get_ipa_dts_configuration(struct platform_device *pdev,
	IPADBG(": use_bw_vote = %s\n",
	IPADBG(": use_bw_vote = %s\n",
			ipa_drv_res->use_bw_vote
			ipa_drv_res->use_bw_vote
			? "True" : "False");
			? "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 =
	ipa_drv_res->skip_uc_pipe_reset =
		of_property_read_bool(pdev->dev.of_node,
		of_property_read_bool(pdev->dev.of_node,
+1 −0
Original line number Original line Diff line number Diff line
@@ -1933,6 +1933,7 @@ struct ipa3_plat_drv_res {
	bool do_ram_collection_on_crash;
	bool do_ram_collection_on_crash;
	u32 secure_debug_check_action;
	u32 secure_debug_check_action;
	bool ipa_endp_delay_wa;
	bool ipa_endp_delay_wa;
	bool skip_ieob_mask_wa;
};
};


/**
/**