Loading drivers/platform/msm/ipa/ipa_v3/ipa.c +6 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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); Loading Loading @@ -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; Loading drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +3 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa.c +6 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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); Loading Loading @@ -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; Loading
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +3 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading