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

Commit 2cf9fe25 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "icnss: Changes to avoid wlan driver idle shutdown"

parents aaa96242 09cd60c3
Loading
Loading
Loading
Loading
+8 −19
Original line number Diff line number Diff line
@@ -997,7 +997,6 @@ static int icnss_pd_restart_complete(struct icnss_priv *priv)
	icnss_call_driver_shutdown(priv);

	clear_bit(ICNSS_PDR, &priv->state);
	clear_bit(ICNSS_MODEM_CRASHED, &priv->state);
	clear_bit(ICNSS_REJUVENATE, &priv->state);
	clear_bit(ICNSS_PD_RESTART, &priv->state);
	priv->early_crash_ind = false;
@@ -1261,8 +1260,7 @@ static int icnss_driver_event_idle_shutdown(void *data)
	if (!penv->ops || !penv->ops->idle_shutdown)
		return 0;

	if (test_bit(ICNSS_MODEM_CRASHED, &penv->state) ||
			test_bit(ICNSS_PDR, &penv->state) ||
	if (penv->is_ssr || test_bit(ICNSS_PDR, &penv->state) ||
	    test_bit(ICNSS_REJUVENATE, &penv->state)) {
		icnss_pr_err("SSR/PDR is already in-progress during idle shutdown callback\n");
		ret = -EBUSY;
@@ -1284,8 +1282,7 @@ static int icnss_driver_event_idle_restart(void *data)
	if (!penv->ops || !penv->ops->idle_restart)
		return 0;

	if (test_bit(ICNSS_MODEM_CRASHED, &penv->state) ||
			test_bit(ICNSS_PDR, &penv->state) ||
	if (penv->is_ssr || test_bit(ICNSS_PDR, &penv->state) ||
	    test_bit(ICNSS_REJUVENATE, &penv->state)) {
		icnss_pr_err("SSR/PDR is already in-progress during idle restart callback\n");
		ret = -EBUSY;
@@ -1416,9 +1413,6 @@ static int icnss_modem_notifier_nb(struct notifier_block *nb,

	priv->is_ssr = true;

	if (notif->crashed)
		set_bit(ICNSS_MODEM_CRASHED, &priv->state);

	if (code == SUBSYS_BEFORE_SHUTDOWN && !notif->crashed &&
	    atomic_read(&priv->is_shutdown)) {
		atomic_set(&priv->is_shutdown, false);
@@ -2276,8 +2270,7 @@ int icnss_idle_shutdown(struct device *dev)
		return -EINVAL;
	}

	if (test_bit(ICNSS_MODEM_CRASHED, &priv->state) ||
			test_bit(ICNSS_PDR, &priv->state) ||
	if (priv->is_ssr || test_bit(ICNSS_PDR, &priv->state) ||
	    test_bit(ICNSS_REJUVENATE, &penv->state)) {
		icnss_pr_err("SSR/PDR is already in-progress during idle shutdown\n");
		return -EBUSY;
@@ -2297,8 +2290,7 @@ int icnss_idle_restart(struct device *dev)
		return -EINVAL;
	}

	if (test_bit(ICNSS_MODEM_CRASHED, &priv->state) ||
			test_bit(ICNSS_PDR, &priv->state) ||
	if (priv->is_ssr || test_bit(ICNSS_PDR, &priv->state) ||
	    test_bit(ICNSS_REJUVENATE, &penv->state)) {
		icnss_pr_err("SSR/PDR is already in-progress during idle restart\n");
		return -EBUSY;
@@ -2723,9 +2715,6 @@ static int icnss_stats_show_state(struct seq_file *s, struct icnss_priv *priv)
			continue;
		case ICNSS_PDR:
			seq_puts(s, "PDR TRIGGERED");
			continue;
		case ICNSS_MODEM_CRASHED:
			seq_puts(s, "MODEM CRASHED");
		}

		seq_printf(s, "UNKNOWN-%d", i);
+0 −1
Original line number Diff line number Diff line
@@ -157,7 +157,6 @@ enum icnss_driver_state {
	ICNSS_MODE_ON,
	ICNSS_BLOCK_SHUTDOWN,
	ICNSS_PDR,
	ICNSS_MODEM_CRASHED,
};

struct ce_irq_list {