diff --git a/drivers/net/wireless/cnss2/main.c b/drivers/net/wireless/cnss2/main.c index 029a6cd09dfe..1c3bc5865a7d 100644 --- a/drivers/net/wireless/cnss2/main.c +++ b/drivers/net/wireless/cnss2/main.c @@ -1115,6 +1115,7 @@ static int cnss_do_recovery(struct cnss_plat_data *plat_priv, return 0; self_recovery: + cnss_pr_dbg("Going for self recovery\n"); cnss_bus_dev_shutdown(plat_priv); cnss_bus_dev_powerup(plat_priv); @@ -2621,6 +2622,11 @@ static void cnss_init_control_params(struct cnss_plat_data *plat_priv) plat_priv->cbc_enabled = of_property_read_bool(plat_priv->plat_dev->dev.of_node, "qcom,wlan-cbc-enabled"); + + if (of_property_read_bool(plat_priv->plat_dev->dev.of_node, + "cnss-enable-self-recovery")) + plat_priv->ctrl_params.quirks |= BIT(LINK_DOWN_SELF_RECOVERY); + plat_priv->ctrl_params.mhi_timeout = CNSS_MHI_TIMEOUT_DEFAULT; plat_priv->ctrl_params.mhi_m2_timeout = CNSS_MHI_M2_TIMEOUT_DEFAULT; plat_priv->ctrl_params.qmi_timeout = CNSS_QMI_TIMEOUT_DEFAULT;