On Tue 26 Jan 02:42 CST 2021, Stanimir Varbanov wrote: > On production devices the firmware could be located on different > places, this path could be provided by special firmware-name DT > property. > > Here we check for existence of such DT property and if it exist > take the firmware path from there. Otherwise, if the property > is missing we fallback to the predefined path from driver resource > structure. > Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> But firmware-name is not mentioned in the dt binding. Regards, Bjorn > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@xxxxxxxxxx> > --- > drivers/media/platform/qcom/venus/firmware.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c > index d03e2dd5808c..56c8fb5a019b 100644 > --- a/drivers/media/platform/qcom/venus/firmware.c > +++ b/drivers/media/platform/qcom/venus/firmware.c > @@ -187,6 +187,7 @@ int venus_boot(struct venus_core *core) > { > struct device *dev = core->dev; > const struct venus_resources *res = core->res; > + const char *fwpath = NULL; > phys_addr_t mem_phys; > size_t mem_size; > int ret; > @@ -195,7 +196,12 @@ int venus_boot(struct venus_core *core) > (core->use_tz && !qcom_scm_is_available())) > return -EPROBE_DEFER; > > - ret = venus_load_fw(core, core->res->fwname, &mem_phys, &mem_size); > + ret = of_property_read_string_index(dev->of_node, "firmware-name", 0, > + &fwpath); > + if (ret) > + fwpath = core->res->fwname; > + > + ret = venus_load_fw(core, fwpath, &mem_phys, &mem_size); > if (ret) { > dev_err(dev, "fail to load video firmware\n"); > return -EINVAL; > -- > 2.25.1 >