Messages in this thread | | | Subject | Re: [PATCH 4/5] soc: qcom: wcnss_ctrl: Allow reading firmware-name from DT | From | Bryan O'Donoghue <> | Date | Mon, 15 Mar 2021 11:57:42 +0000 |
| |
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@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@linaro.org>
| |