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

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

Merge "icnss2: Avoid calibration during SSR of WCN6750"

parents 50909ff9 aec3153e
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -407,6 +407,9 @@ static int icnss_stats_show_state(struct seq_file *s, struct icnss_priv *priv)
			continue;
			continue;
		case ICNSS_DEL_SERVER:
		case ICNSS_DEL_SERVER:
			seq_puts(s, "DEL SERVER");
			seq_puts(s, "DEL SERVER");
			continue;
		case ICNSS_COLD_BOOT_CAL:
			seq_puts(s, "COLD BOOT CALIBRATION");
		}
		}


		seq_printf(s, "UNKNOWN-%d", i);
		seq_printf(s, "UNKNOWN-%d", i);
+5 −1
Original line number Original line Diff line number Diff line
@@ -821,8 +821,11 @@ static int icnss_driver_event_fw_init_done(struct icnss_priv *priv, void *data)


	icnss_pr_info("WLAN FW Initialization done: 0x%lx\n", priv->state);
	icnss_pr_info("WLAN FW Initialization done: 0x%lx\n", priv->state);


	if (test_bit(ICNSS_COLD_BOOT_CAL, &priv->state))
		ret = wlfw_wlan_mode_send_sync_msg(priv,
		ret = wlfw_wlan_mode_send_sync_msg(priv,
			(enum wlfw_driver_mode_enum_v01)ICNSS_CALIBRATION);
			(enum wlfw_driver_mode_enum_v01)ICNSS_CALIBRATION);
	else
		icnss_driver_event_fw_ready_ind(priv, NULL);


	return ret;
	return ret;
}
}
@@ -3265,6 +3268,7 @@ static int icnss_probe(struct platform_device *pdev)


		icnss_runtime_pm_init(priv);
		icnss_runtime_pm_init(priv);
		icnss_get_cpr_info(priv);
		icnss_get_cpr_info(priv);
		set_bit(ICNSS_COLD_BOOT_CAL, &priv->state);
	}
	}


	INIT_LIST_HEAD(&priv->icnss_tcdev_list);
	INIT_LIST_HEAD(&priv->icnss_tcdev_list);
+1 −0
Original line number Original line Diff line number Diff line
@@ -110,6 +110,7 @@ enum icnss_driver_state {
	ICNSS_BLOCK_SHUTDOWN,
	ICNSS_BLOCK_SHUTDOWN,
	ICNSS_PDR,
	ICNSS_PDR,
	ICNSS_DEL_SERVER,
	ICNSS_DEL_SERVER,
	ICNSS_COLD_BOOT_CAL,
};
};


struct ce_irq_list {
struct ce_irq_list {
+5 −0
Original line number Original line Diff line number Diff line
@@ -1726,12 +1726,17 @@ static void rejuvenate_ind_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq,
static void cal_done_ind_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq,
static void cal_done_ind_cb(struct qmi_handle *qmi, struct sockaddr_qrtr *sq,
			    struct qmi_txn *txn, const void *data)
			    struct qmi_txn *txn, const void *data)
{
{
	struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi);

	icnss_pr_dbg("Received QMI WLFW calibration done indication\n");
	icnss_pr_dbg("Received QMI WLFW calibration done indication\n");


	if (!txn) {
	if (!txn) {
		icnss_pr_err("Spurious indication\n");
		icnss_pr_err("Spurious indication\n");
		return;
		return;
	}
	}

	priv->cal_done = true;
	clear_bit(ICNSS_COLD_BOOT_CAL, &priv->state);
}
}


static void fw_init_done_ind_cb(struct qmi_handle *qmi,
static void fw_init_done_ind_cb(struct qmi_handle *qmi,