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

Commit 4b5b8094 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "icnss: Avoid wlan driver remove during modem graceful shutdown"

parents a4956806 3b93407b
Loading
Loading
Loading
Loading
+1 −27
Original line number Original line Diff line number Diff line
@@ -2354,29 +2354,6 @@ static int icnss_driver_event_unregister_driver(void *data)
	return 0;
	return 0;
}
}


static int icnss_call_driver_remove(struct icnss_priv *priv)
{
	icnss_pr_dbg("Calling driver remove state: 0x%lx\n", priv->state);

	clear_bit(ICNSS_FW_READY, &priv->state);

	if (!test_bit(ICNSS_DRIVER_PROBED, &penv->state))
		return 0;

	if (!priv->ops || !priv->ops->remove)
		return 0;

	set_bit(ICNSS_DRIVER_UNLOADING, &penv->state);
	penv->ops->remove(&priv->pdev->dev);

	clear_bit(ICNSS_DRIVER_UNLOADING, &penv->state);
	clear_bit(ICNSS_DRIVER_PROBED, &priv->state);

	icnss_hw_power_off(penv);

	return 0;
}

static int icnss_fw_crashed(struct icnss_priv *priv,
static int icnss_fw_crashed(struct icnss_priv *priv,
			    struct icnss_event_pd_service_down_data *event_data)
			    struct icnss_event_pd_service_down_data *event_data)
{
{
@@ -2416,10 +2393,7 @@ static int icnss_driver_event_pd_service_down(struct icnss_priv *priv,
	if (priv->force_err_fatal)
	if (priv->force_err_fatal)
		ICNSS_ASSERT(0);
		ICNSS_ASSERT(0);


	if (event_data->crashed)
	icnss_fw_crashed(priv, event_data);
	icnss_fw_crashed(priv, event_data);
	else
		icnss_call_driver_remove(priv);


out:
out:
	kfree(data);
	kfree(data);