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: Praveen Kurapati <pkurapat@codeaurora.org>
This commit is contained in:
Praveen Kurapati 2020-09-15 16:31:54 +05:30
commit 6e129eb1ea
2 changed files with 9 additions and 4 deletions

View file

@ -3965,6 +3965,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();
@ -3973,6 +3975,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);
@ -4030,8 +4036,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;

View file

@ -2857,12 +2857,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();