remoteproc: mediatek: Allow reading firmware-name from DT
authorAllen-KH Cheng <allen-kh.cheng@mediatek.com>
Tue, 19 Apr 2022 12:33:31 +0000 (20:33 +0800)
committerMathieu Poirier <mathieu.poirier@linaro.org>
Tue, 26 Apr 2022 16:21:37 +0000 (10:21 -0600)
The SCP firmware blob differs between platforms and SoCs. We add
support in the SCP driver for reading the path of firmware file from
DT in order to allow these files to live in a generic file system
(or linux-firmware).

The firmware-name property is optional and the code falls back to the
old filename if the property isn't present.

Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20220419123331.14377-3-allen-kh.cheng@mediatek.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
drivers/remoteproc/mtk_scp.c

index 621174e..47b2a40 100644 (file)
@@ -809,9 +809,13 @@ static int scp_probe(struct platform_device *pdev)
        struct mtk_scp *scp;
        struct rproc *rproc;
        struct resource *res;
-       char *fw_name = "scp.img";
+       const char *fw_name = "scp.img";
        int ret, i;
 
+       ret = rproc_of_parse_firmware(dev, 0, &fw_name);
+       if (ret < 0 && ret != -EINVAL)
+               return ret;
+
        rproc = devm_rproc_alloc(dev, np->name, &scp_ops, fw_name, sizeof(*scp));
        if (!rproc)
                return dev_err_probe(dev, -ENOMEM, "unable to allocate remoteproc\n");