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

Commit 58433df0 authored by Praveen Kurapati's avatar Praveen Kurapati Committed by Gerrit - the friendly Code Review server
Browse files

msm: ipa4: Add change to stop netdev



As SSR event is not received to APPS, some data
is sent to modem. Add change to stop netdev first
during SSR events and halt the modem channels.

Change-Id: Id62d5f0cf811a30dc796401c15cf1ed6b8425992
Signed-off-by: default avatarPraveen Kurapati <pkurapat@codeaurora.org>
parent a1e88665
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -3678,6 +3678,8 @@ void ipa3_update_ssr_state(bool is_ssr)
 */
void ipa3_q6_pre_shutdown_cleanup(void)
{
	bool prod = false;

	IPADBG_LOW("ENTER\n");

	IPA_ACTIVE_CLIENTS_INC_SIMPLE();
@@ -3686,6 +3688,10 @@ void ipa3_q6_pre_shutdown_cleanup(void)
	if (!ipa3_ctx->ipa_endp_delay_wa)
		ipa3_q6_pipe_delay(true);
	ipa3_q6_avoid_holb();
	if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0) {
		prod = true;
		ipa3_halt_q6_gsi_channels(prod);
	}
	if (ipa3_ctx->ipa_config_is_mhi)
		ipa3_set_reset_client_cons_pipe_sus_holb(true,
		IPA_CLIENT_MHI_CONS);
@@ -3743,8 +3749,6 @@ void ipa3_q6_post_shutdown_cleanup(void)

	/* halt both prod and cons channels starting at IPAv4 */
	if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0) {
		prod = true;
		ipa3_halt_q6_gsi_channels(prod);
		IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
		IPADBG("Exit without consumer check\n");
		return;
+3 −2
Original line number Diff line number Diff line
@@ -2757,12 +2757,13 @@ static int ipa3_lcl_mdm_ssr_notifier_cb(struct notifier_block *this,
	switch (code) {
	case SUBSYS_BEFORE_SHUTDOWN:
		IPAWANINFO("IPA received MPSS BEFORE_SHUTDOWN\n");
		/*Stop netdev first to stop queueing pkts to Q6 */
		if (IPA_NETDEV())
			netif_stop_queue(IPA_NETDEV());
		/* send SSR before-shutdown notification to IPACM */
		rmnet_ipa_send_ssr_notification(false);
		atomic_set(&rmnet_ipa3_ctx->is_ssr, 1);
		ipa3_q6_pre_shutdown_cleanup();
		if (IPA_NETDEV())
			netif_stop_queue(IPA_NETDEV());
		ipa3_qmi_stop_workqueues();
		ipa3_wan_ioctl_stop_qmi_messages();
		ipa_stop_polling_stats();