]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
remoteproc: stm32_rproc: Allow to specify firmware default name
authorArnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Thu, 27 Mar 2025 08:27:21 +0000 (09:27 +0100)
committerMathieu Poirier <mathieu.poirier@linaro.org>
Mon, 7 Apr 2025 15:43:43 +0000 (09:43 -0600)
Enhance the stm32_rproc driver to allow enabling the configuration of the
firmware name based on the 'firmware-name' property in the device tree,
offering flexibility compared to using the remote proc device node
name.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Link: https://lore.kernel.org/r/20250327082721.641278-3-arnaud.pouliquen@foss.st.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
drivers/remoteproc/stm32_rproc.c

index b02b36a3f515644a7b8a6a079461ab3ec27be663..431648607d53ae58a9a556d53f17b1bf924bcd80 100644 (file)
@@ -835,6 +835,7 @@ static int stm32_rproc_probe(struct platform_device *pdev)
        struct device *dev = &pdev->dev;
        struct stm32_rproc *ddata;
        struct device_node *np = dev->of_node;
+       const char *fw_name;
        struct rproc *rproc;
        unsigned int state;
        int ret;
@@ -843,7 +844,12 @@ static int stm32_rproc_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       rproc = devm_rproc_alloc(dev, np->name, &st_rproc_ops, NULL, sizeof(*ddata));
+       /* Look for an optional firmware name */
+       ret = rproc_of_parse_firmware(dev, 0, &fw_name);
+       if (ret < 0 && ret != -EINVAL)
+               return ret;
+
+       rproc = devm_rproc_alloc(dev, np->name, &st_rproc_ops, fw_name, sizeof(*ddata));
        if (!rproc)
                return -ENOMEM;