|
@@ -162,7 +162,8 @@ static ssize_t icnss_sysfs_store(struct kobject *kobj,
|
|
|
icnss_pr_dbg("Received shutdown indication");
|
|
|
|
|
|
atomic_set(&priv->is_shutdown, true);
|
|
|
- if (priv->wpss_supported && priv->device_id == ADRASTEA_DEVICE_ID)
|
|
|
+ if ((priv->wpss_supported || priv->rproc_fw_download) &&
|
|
|
+ priv->device_id == ADRASTEA_DEVICE_ID)
|
|
|
icnss_wpss_unload(priv);
|
|
|
return count;
|
|
|
}
|
|
@@ -2831,7 +2832,8 @@ static int icnss_enable_recovery(struct icnss_priv *priv)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- icnss_modem_ssr_register_notifier(priv);
|
|
|
+ if (!(priv->rproc_fw_download))
|
|
|
+ icnss_modem_ssr_register_notifier(priv);
|
|
|
|
|
|
if (priv->is_slate_rfa) {
|
|
|
icnss_slate_ssr_register_notifier(priv);
|
|
@@ -4069,7 +4071,7 @@ static ssize_t wpss_boot_store(struct device *dev,
|
|
|
struct icnss_priv *priv = dev_get_drvdata(dev);
|
|
|
int wpss_rproc = 0;
|
|
|
|
|
|
- if (!priv->wpss_supported)
|
|
|
+ if (!priv->wpss_supported && !priv->rproc_fw_download)
|
|
|
return count;
|
|
|
|
|
|
if (sscanf(buf, "%du", &wpss_rproc) != 1) {
|
|
@@ -4561,6 +4563,10 @@ static void icnss_init_control_params(struct icnss_priv *priv)
|
|
|
"bdf-download-support"))
|
|
|
priv->bdf_download_support = true;
|
|
|
|
|
|
+ if (of_property_read_bool(priv->pdev->dev.of_node,
|
|
|
+ "rproc-fw-download"))
|
|
|
+ priv->rproc_fw_download = true;
|
|
|
+
|
|
|
if (priv->bdf_download_support && priv->device_id == ADRASTEA_DEVICE_ID)
|
|
|
priv->ctrl_params.bdf_type = ICNSS_BDF_BIN;
|
|
|
}
|
|
@@ -4766,9 +4772,11 @@ static int icnss_probe(struct platform_device *pdev)
|
|
|
priv->use_nv_mac = icnss_use_nv_mac(priv);
|
|
|
icnss_pr_dbg("NV MAC feature is %s\n",
|
|
|
priv->use_nv_mac ? "Mandatory":"Not Mandatory");
|
|
|
- INIT_WORK(&wpss_loader, icnss_wpss_load);
|
|
|
}
|
|
|
|
|
|
+ if (priv->wpss_supported || priv->rproc_fw_download)
|
|
|
+ INIT_WORK(&wpss_loader, icnss_wpss_load);
|
|
|
+
|
|
|
timer_setup(&priv->recovery_timer,
|
|
|
icnss_recovery_timeout_hdlr, 0);
|
|
|
|