Thread (19 messages) 19 messages, 6 authors, 2021-05-31

Re: [PATCH 4/5] soc: qcom: wcnss_ctrl: Allow reading firmware-name from DT

From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Date: 2021-03-15 11:57:18
Also in: linux-arm-msm, linux-devicetree, linux-wireless, lkml

On 12/03/2021 00:33, Bjorn Andersson wrote:
quoted hunk ↗ jump to hunk
The WLAN NV firmware blob differs between platforms, and possibly
devices, so add support in the wcnss_ctrl driver for reading the path of
this file from DT in order to allow these files to live in a generic
file system (or linux-firmware).

The new property is optional and the code falls back to the old filename
if the property isn't specified.

Signed-off-by: Bjorn Andersson <redacted>
---
  drivers/soc/qcom/wcnss_ctrl.c | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/soc/qcom/wcnss_ctrl.c b/drivers/soc/qcom/wcnss_ctrl.c
index 358526b9de06..2a06d631e415 100644
--- a/drivers/soc/qcom/wcnss_ctrl.c
+++ b/drivers/soc/qcom/wcnss_ctrl.c
@@ -200,6 +200,7 @@ static int wcnss_download_nv(struct wcnss_ctrl *wcnss, bool *expect_cbc)
  	struct wcnss_download_nv_req *req;
  	const struct firmware *fw;
  	struct device *dev = wcnss->dev;
+	const char *nvbin = NVBIN_FILE;
  	const void *data;
  	ssize_t left;
  	int ret;
@@ -208,10 +209,13 @@ static int wcnss_download_nv(struct wcnss_ctrl *wcnss, bool *expect_cbc)
  	if (!req)
  		return -ENOMEM;
  
-	ret = request_firmware(&fw, NVBIN_FILE, dev);
+	ret = of_property_read_string(dev->of_node, "firmware-name", &nvbin);
+	if (ret < 0 && ret != -EINVAL)
+		goto free_req;
+
+	ret = request_firmware(&fw, nvbin, dev);
  	if (ret < 0) {
-		dev_err(dev, "Failed to load nv file %s: %d\n",
-			NVBIN_FILE, ret);
+		dev_err(dev, "Failed to load nv file %s: %d\n", nvbin, ret);
  		goto free_req;
  	}
  
Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help