diff --git a/icnss2/main.c b/icnss2/main.c index 69059a16c0..5e36e0ac61 100644 --- a/icnss2/main.c +++ b/icnss2/main.c @@ -900,11 +900,13 @@ static int icnss_driver_event_server_arrive(struct icnss_priv *priv, if (!priv->fw_soc_wake_ack_irq) register_soc_wake_notif(&priv->pdev->dev); - icnss_get_smp2p_info(priv, ICNSS_SMP2P_OUT_POWER_SAVE); icnss_get_smp2p_info(priv, ICNSS_SMP2P_OUT_SOC_WAKE); icnss_get_smp2p_info(priv, ICNSS_SMP2P_OUT_EP_POWER_SAVE); } + if (priv->wpss_supported) + icnss_get_smp2p_info(priv, ICNSS_SMP2P_OUT_POWER_SAVE); + if (priv->device_id == ADRASTEA_DEVICE_ID) { if (priv->bdf_download_support) { ret = wlfw_cal_report_req(priv); @@ -1505,14 +1507,16 @@ static int icnss_driver_event_pd_service_down(struct icnss_priv *priv, ICNSS_ASSERT(0); if (priv->device_id == WCN6750_DEVICE_ID) { - icnss_send_smp2p(priv, ICNSS_RESET_MSG, - ICNSS_SMP2P_OUT_POWER_SAVE); icnss_send_smp2p(priv, ICNSS_RESET_MSG, ICNSS_SMP2P_OUT_SOC_WAKE); icnss_send_smp2p(priv, ICNSS_RESET_MSG, ICNSS_SMP2P_OUT_EP_POWER_SAVE); } + if (priv->wpss_supported) + icnss_send_smp2p(priv, ICNSS_RESET_MSG, + ICNSS_SMP2P_OUT_POWER_SAVE); + icnss_send_hang_event_data(priv); if (priv->early_crash_ind) { @@ -3420,7 +3424,7 @@ int icnss_trigger_recovery(struct device *dev) goto out; } - if (priv->device_id == WCN6750_DEVICE_ID) { + if (priv->wpss_supported) { icnss_pr_vdbg("Initiate Root PD restart"); ret = icnss_send_smp2p(priv, ICNSS_TRIGGER_SSR, ICNSS_SMP2P_OUT_POWER_SAVE);