remoteproc: use rproc_coredump_set_elf_info in drivers
authorClement Leger <cleger@kalray.eu>
Fri, 10 Apr 2020 10:24:33 +0000 (12:24 +0200)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 20 Apr 2020 05:53:37 +0000 (22:53 -0700)
Modify drivers which are using remoteproc coredump functionality to use
rproc_coredump_set_elf_info in order to create correct elf coredump
format.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Clement Leger <cleger@kalray.eu>
Link: https://lore.kernel.org/r/20200410102433.2672-3-cleger@kalray.eu
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/qcom_q6v5_adsp.c
drivers/remoteproc/qcom_q6v5_mss.c
drivers/remoteproc/qcom_q6v5_pas.c
drivers/remoteproc/qcom_wcnss.c
drivers/remoteproc/stm32_rproc.c

index 24a3db9..c60dabc 100644 (file)
@@ -431,6 +431,7 @@ static int adsp_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "unable to allocate remoteproc\n");
                return -ENOMEM;
        }
+       rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
 
        adsp = (struct qcom_adsp *)rproc->priv;
        adsp->dev = &pdev->dev;
index ce49c32..a335d2e 100644 (file)
@@ -1357,6 +1357,8 @@ static int qcom_q6v5_register_dump_segments(struct rproc *rproc,
                return ret;
        }
 
+       rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
+
        ehdr = (struct elf32_hdr *)fw->data;
        phdrs = (struct elf32_phdr *)(ehdr + 1);
        qproc->dump_complete_mask = 0;
@@ -1667,6 +1669,7 @@ static int q6v5_probe(struct platform_device *pdev)
        }
 
        rproc->auto_boot = false;
+       rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
 
        qproc = (struct q6v5 *)rproc->priv;
        qproc->dev = &pdev->dev;
index 7a63efb..8ecc157 100644 (file)
@@ -398,6 +398,7 @@ static int adsp_probe(struct platform_device *pdev)
        }
 
        rproc->auto_boot = desc->auto_boot;
+       rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
 
        adsp = (struct qcom_adsp *)rproc->priv;
        adsp->dev = &pdev->dev;
index 0c7afd0..5d65e1a 100644 (file)
@@ -480,6 +480,7 @@ static int wcnss_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "unable to allocate remoteproc\n");
                return -ENOMEM;
        }
+       rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
 
        wcnss = (struct qcom_wcnss *)rproc->priv;
        wcnss->dev = &pdev->dev;
index 6a66dbf..0f9d02c 100644 (file)
@@ -625,6 +625,7 @@ static int stm32_rproc_probe(struct platform_device *pdev)
        if (!rproc)
                return -ENOMEM;
 
+       rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
        rproc->has_iommu = false;
        ddata = rproc->priv;
        ddata->workqueue = create_workqueue(dev_name(dev));