soc: qcom: mdt_loader: Always invoke PAS mem_setup
authorBjorn Andersson <bjorn.andersson@linaro.org>
Fri, 28 Jan 2022 02:55:07 +0000 (18:55 -0800)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Thu, 3 Feb 2022 21:32:30 +0000 (15:32 -0600)
After spelunking various old kernel trees no finds has been found
indicating that the PAS mem_setup call should actually be made
conditional on the image being relocatable.

Group the two PAS operations together, to facilitate splitting them out
in a following patch.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20220128025513.97188-8-bjorn.andersson@linaro.org
drivers/soc/qcom/mdt_loader.c

index ee991784a7384b1a1e292c878c534c916d048b07..c8d43dc50cffcde1050ff80a7048cf0d449151b6 100644 (file)
@@ -247,20 +247,17 @@ static int __qcom_mdt_load(struct device *dev, const struct firmware *fw,
                                ret, fw_name);
                        goto out;
                }
-       }
 
-       if (relocate) {
-               if (pas_init) {
-                       ret = qcom_scm_pas_mem_setup(pas_id, mem_phys,
-                                                    max_addr - min_addr);
-                       if (ret) {
-                               /* Unable to set up relocation */
-                               dev_err(dev, "error %d setting up firmware %s\n",
-                                       ret, fw_name);
-                               goto out;
-                       }
+               ret = qcom_scm_pas_mem_setup(pas_id, mem_phys, max_addr - min_addr);
+               if (ret) {
+                       /* Unable to set up relocation */
+                       dev_err(dev, "error %d setting up firmware %s\n",
+                               ret, fw_name);
+                       goto out;
                }
+       }
 
+       if (relocate) {
                /*
                 * The image is relocatable, so offset each segment based on
                 * the lowest segment address.