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

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

Merge "icnss: Add a flag to indicare FW rejuvenate"

parents 2786b1dc ad73d21e
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -613,6 +613,15 @@ bool icnss_is_fw_down(void)
}
}
EXPORT_SYMBOL(icnss_is_fw_down);
EXPORT_SYMBOL(icnss_is_fw_down);


bool icnss_is_rejuvenate(void)
{
	if (!penv)
		return false;
	else
		return test_bit(ICNSS_REJUVENATE, &penv->state);
}
EXPORT_SYMBOL(icnss_is_rejuvenate);

int icnss_power_off(struct device *dev)
int icnss_power_off(struct device *dev)
{
{
	struct icnss_priv *priv = dev_get_drvdata(dev);
	struct icnss_priv *priv = dev_get_drvdata(dev);
@@ -876,6 +885,7 @@ static int icnss_pd_restart_complete(struct icnss_priv *priv)


	icnss_call_driver_shutdown(priv);
	icnss_call_driver_shutdown(priv);


	clear_bit(ICNSS_REJUVENATE, &priv->state);
	clear_bit(ICNSS_PD_RESTART, &priv->state);
	clear_bit(ICNSS_PD_RESTART, &priv->state);
	priv->early_crash_ind = false;
	priv->early_crash_ind = false;


@@ -2486,6 +2496,9 @@ static int icnss_stats_show_state(struct seq_file *s, struct icnss_priv *priv)
			continue;
			continue;
		case ICNSS_DRIVER_UNLOADING:
		case ICNSS_DRIVER_UNLOADING:
			seq_puts(s, "DRIVER UNLOADING");
			seq_puts(s, "DRIVER UNLOADING");
			continue;
		case ICNSS_REJUVENATE:
			seq_puts(s, "FW REJUVENATE");
		}
		}


		seq_printf(s, "UNKNOWN-%d", i);
		seq_printf(s, "UNKNOWN-%d", i);
+1 −0
Original line number Original line Diff line number Diff line
@@ -151,6 +151,7 @@ enum icnss_driver_state {
	ICNSS_HOST_TRIGGERED_PDR,
	ICNSS_HOST_TRIGGERED_PDR,
	ICNSS_FW_DOWN,
	ICNSS_FW_DOWN,
	ICNSS_DRIVER_UNLOADING,
	ICNSS_DRIVER_UNLOADING,
	ICNSS_REJUVENATE,
};
};


struct ce_irq_list {
struct ce_irq_list {
+1 −0
Original line number Original line Diff line number Diff line
@@ -982,6 +982,7 @@ void icnss_handle_rejuvenate(struct icnss_priv *priv)
	event_data->crashed = true;
	event_data->crashed = true;
	event_data->fw_rejuvenate = true;
	event_data->fw_rejuvenate = true;
	fw_down_data.crashed = true;
	fw_down_data.crashed = true;
	set_bit(ICNSS_REJUVENATE, &priv->state);


	icnss_call_driver_uevent(priv, ICNSS_UEVENT_FW_DOWN,
	icnss_call_driver_uevent(priv, ICNSS_UEVENT_FW_DOWN,
				 &fw_down_data);
				 &fw_down_data);
+1 −0
Original line number Original line Diff line number Diff line
@@ -142,5 +142,6 @@ extern unsigned int icnss_socinfo_get_serial_number(struct device *dev);
extern bool icnss_is_qmi_disable(struct device *dev);
extern bool icnss_is_qmi_disable(struct device *dev);
extern bool icnss_is_fw_ready(void);
extern bool icnss_is_fw_ready(void);
extern bool icnss_is_fw_down(void);
extern bool icnss_is_fw_down(void);
extern bool icnss_is_rejuvenate(void);
extern int icnss_trigger_recovery(struct device *dev);
extern int icnss_trigger_recovery(struct device *dev);
#endif /* _ICNSS_WLAN_H_ */
#endif /* _ICNSS_WLAN_H_ */