[PATCH 4/5] soc: qcom: wcnss_ctrl: Allow reading firmware-name from DT
Bryan O'Donoghue
bryan.odonoghue at linaro.org
Mon Mar 15 11:57:42 GMT 2021
On 12/03/2021 00:33, Bjorn Andersson wrote:
> 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 <bjorn.andersson at linaro.org>
> ---
> 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 at linaro.org>
More information about the wcn36xx
mailing list