Merge "soc: qcom: pil: Add error codes to error logs"

This commit is contained in:
Linux Build Service Account 2016-08-04 21:39:47 -07:00 committed by Gerrit - the friendly Code Review server
commit 286ce4f15c
5 changed files with 74 additions and 51 deletions

View file

@ -189,8 +189,8 @@ int pil_assign_mem_to_subsys(struct pil_desc *desc, phys_addr_t addr,
ret = hyp_assign_phys(addr, size, srcVM, 1, destVM, destVMperm, 1);
if (ret)
pil_err(desc, "%s: failed for %pa address of size %zx - subsys VMid %d\n",
__func__, &addr, size, desc->subsys_vmid);
pil_err(desc, "%s: failed for %pa address of size %zx - subsys VMid %d rc:%d\n",
__func__, &addr, size, desc->subsys_vmid, ret);
return ret;
}
EXPORT_SYMBOL(pil_assign_mem_to_subsys);
@ -205,8 +205,8 @@ int pil_assign_mem_to_linux(struct pil_desc *desc, phys_addr_t addr,
ret = hyp_assign_phys(addr, size, srcVM, 1, destVM, destVMperm, 1);
if (ret)
panic("%s: failed for %pa address of size %zx - subsys VMid %d. Fatal error.\n",
__func__, &addr, size, desc->subsys_vmid);
panic("%s: failed for %pa address of size %zx - subsys VMid %d rc:%d\n",
__func__, &addr, size, desc->subsys_vmid, ret);
return ret;
}
@ -222,8 +222,8 @@ int pil_assign_mem_to_subsys_and_linux(struct pil_desc *desc,
ret = hyp_assign_phys(addr, size, srcVM, 1, destVM, destVMperm, 2);
if (ret)
pil_err(desc, "%s: failed for %pa address of size %zx - subsys VMid %d\n",
__func__, &addr, size, desc->subsys_vmid);
pil_err(desc, "%s: failed for %pa address of size %zx - subsys VMid %d rc:%d\n",
__func__, &addr, size, desc->subsys_vmid, ret);
return ret;
}
@ -642,8 +642,8 @@ static int pil_load_seg(struct pil_desc *desc, struct pil_seg *seg)
seg->filesz, desc->map_fw_mem,
desc->unmap_fw_mem, map_data);
if (ret < 0) {
pil_err(desc, "Failed to locate blob %s or blob is too big.\n",
fw_name);
pil_err(desc, "Failed to locate blob %s or blob is too big(rc:%d)\n",
fw_name, ret);
return ret;
}
@ -679,7 +679,8 @@ static int pil_load_seg(struct pil_desc *desc, struct pil_seg *seg)
if (desc->ops->verify_blob) {
ret = desc->ops->verify_blob(desc, seg->paddr, seg->sz);
if (ret)
pil_err(desc, "Blob%u failed verification\n", num);
pil_err(desc, "Blob%u failed verification(rc:%d)\n",
num, ret);
}
return ret;
@ -754,7 +755,7 @@ int pil_boot(struct pil_desc *desc)
snprintf(fw_name, sizeof(fw_name), "%s.mdt", desc->fw_name);
ret = request_firmware(&fw, fw_name, desc->dev);
if (ret) {
pil_err(desc, "Failed to locate %s\n", fw_name);
pil_err(desc, "Failed to locate %s(rc:%d)\n", fw_name, ret);
goto out;
}
@ -792,14 +793,14 @@ int pil_boot(struct pil_desc *desc)
desc->priv->unvoted_flag = 0;
ret = pil_proxy_vote(desc);
if (ret) {
pil_err(desc, "Failed to proxy vote\n");
pil_err(desc, "Failed to proxy vote(rc:%d)\n", ret);
goto release_fw;
}
if (desc->ops->init_image)
ret = desc->ops->init_image(desc, fw->data, fw->size);
if (ret) {
pil_err(desc, "Invalid firmware metadata\n");
pil_err(desc, "Initializing image failed(rc:%d)\n", ret);
goto err_boot;
}
@ -807,7 +808,7 @@ int pil_boot(struct pil_desc *desc)
ret = desc->ops->mem_setup(desc, priv->region_start,
priv->region_end - priv->region_start);
if (ret) {
pil_err(desc, "Memory setup error\n");
pil_err(desc, "Memory setup error(rc:%d)\n", ret);
goto err_deinit_image;
}
@ -852,7 +853,7 @@ int pil_boot(struct pil_desc *desc)
ret = desc->ops->auth_and_reset(desc);
if (ret) {
pil_err(desc, "Failed to bring out of reset\n");
pil_err(desc, "Failed to bring out of reset(rc:%d)\n", ret);
goto err_auth_and_reset;
}
pil_info(desc, "Brought out of reset\n");

View file

@ -123,7 +123,8 @@ static int pil_mss_power_up(struct q6v5_data *drv)
if (drv->vreg) {
ret = regulator_enable(drv->vreg);
if (ret)
dev_err(drv->desc.dev, "Failed to enable modem regulator.\n");
dev_err(drv->desc.dev, "Failed to enable modem regulator(rc:%d)\n",
ret);
}
if (drv->cxrail_bhs) {
@ -245,7 +246,7 @@ static int pil_msa_wait_for_mba_ready(struct q6v5_data *drv)
ret = readl_poll_timeout(drv->rmb_base + RMB_PBL_STATUS, status,
status != 0, POLL_INTERVAL_US, val);
if (ret) {
dev_err(dev, "PBL boot timed out\n");
dev_err(dev, "PBL boot timed out (rc:%d)\n", ret);
return ret;
}
if (status != STATUS_PBL_SUCCESS) {
@ -257,7 +258,7 @@ static int pil_msa_wait_for_mba_ready(struct q6v5_data *drv)
ret = readl_poll_timeout(drv->rmb_base + RMB_MBA_STATUS, status,
status != 0, POLL_INTERVAL_US, val);
if (ret) {
dev_err(dev, "MBA boot timed out\n");
dev_err(dev, "MBA boot timed out (rc:%d)\n", ret);
return ret;
}
if (status != STATUS_XPU_UNLOCKED &&
@ -299,7 +300,8 @@ int pil_mss_shutdown(struct pil_desc *pil)
if (!ret)
assert_clamps(pil);
else
dev_err(pil->dev, "error turning ON AHB clock\n");
dev_err(pil->dev, "error turning ON AHB clock(rc:%d)\n",
ret);
}
ret = pil_mss_restart_reg(drv, 1);
@ -328,7 +330,8 @@ int __pil_mss_deinit_image(struct pil_desc *pil, bool err_path)
status == STATUS_MBA_UNLOCKED || status < 0,
POLL_INTERVAL_US, val);
if (ret)
dev_err(pil->dev, "MBA region unlock timed out\n");
dev_err(pil->dev, "MBA region unlock timed out(rc:%d)\n",
ret);
else if (status < 0)
dev_err(pil->dev, "MBA unlock returned err status: %d\n",
status);
@ -367,19 +370,20 @@ int pil_mss_make_proxy_votes(struct pil_desc *pil)
ret = of_property_read_u32(pil->dev->of_node, "vdd_mx-uV", &uv);
if (ret) {
dev_err(pil->dev, "missing vdd_mx-uV property\n");
dev_err(pil->dev, "missing vdd_mx-uV property(rc:%d)\n", ret);
return ret;
}
ret = regulator_set_voltage(drv->vreg_mx, uv, INT_MAX);
if (ret) {
dev_err(pil->dev, "Failed to request vreg_mx voltage\n");
dev_err(pil->dev, "Failed to request vreg_mx voltage(rc:%d)\n",
ret);
return ret;
}
ret = regulator_enable(drv->vreg_mx);
if (ret) {
dev_err(pil->dev, "Failed to enable vreg_mx\n");
dev_err(pil->dev, "Failed to enable vreg_mx(rc:%d)\n", ret);
regulator_set_voltage(drv->vreg_mx, 0, INT_MAX);
return ret;
}
@ -540,8 +544,8 @@ int pil_mss_reset_load_mba(struct pil_desc *pil)
fw_name_p = drv->non_elf_image ? fw_name_legacy : fw_name;
ret = request_firmware(&fw, fw_name_p, pil->dev);
if (ret) {
dev_err(pil->dev, "Failed to locate %s\n",
fw_name_p);
dev_err(pil->dev, "Failed to locate %s (rc:%d)\n",
fw_name_p, ret);
return ret;
}
@ -611,14 +615,15 @@ int pil_mss_reset_load_mba(struct pil_desc *pil)
ret = pil_assign_mem_to_subsys(pil, drv->mba_dp_phys,
drv->mba_dp_size);
if (ret) {
pr_err("scm_call to unprotect MBA and DP mem failed\n");
pr_err("scm_call to unprotect MBA and DP mem failed(rc:%d)\n",
ret);
goto err_mba_data;
}
}
ret = pil_mss_reset(pil);
if (ret) {
dev_err(pil->dev, "MBA boot failed.\n");
dev_err(pil->dev, "MBA boot failed(rc:%d)\n", ret);
goto err_mss_reset;
}
@ -673,7 +678,8 @@ static int pil_msa_auth_modem_mdt(struct pil_desc *pil, const u8 *metadata,
ret = pil_assign_mem_to_subsys(pil, mdata_phys,
ALIGN(size, SZ_4K));
if (ret) {
pr_err("scm_call to unprotect modem metadata mem failed\n");
pr_err("scm_call to unprotect modem metadata mem failed(rc:%d)\n",
ret);
dma_free_attrs(&drv->mba_mem_dev, size, mdata_virt,
mdata_phys, &attrs);
goto fail;
@ -690,7 +696,8 @@ static int pil_msa_auth_modem_mdt(struct pil_desc *pil, const u8 *metadata,
status == STATUS_META_DATA_AUTH_SUCCESS || status < 0,
POLL_INTERVAL_US, val);
if (ret) {
dev_err(pil->dev, "MBA authentication of headers timed out\n");
dev_err(pil->dev, "MBA authentication of headers timed out(rc:%d)\n",
ret);
} else if (status < 0) {
dev_err(pil->dev, "MBA returned error %d for headers\n",
status);
@ -771,7 +778,8 @@ static int pil_msa_mba_auth(struct pil_desc *pil)
ret = readl_poll_timeout(drv->rmb_base + RMB_MBA_STATUS, status,
status == STATUS_AUTH_COMPLETE || status < 0, 50, val);
if (ret) {
dev_err(pil->dev, "MBA authentication of image timed out\n");
dev_err(pil->dev, "MBA authentication of image timed out(rc:%d)\n",
ret);
} else if (status < 0) {
dev_err(pil->dev, "MBA returned error %d for image\n", status);
ret = -EINVAL;

View file

@ -291,11 +291,13 @@ static int pil_mss_loadable_init(struct modem_data *drv,
ret = regulator_set_voltage(q6->vreg, VDD_MSS_UV,
MAX_VDD_MSS_UV);
if (ret)
dev_err(&pdev->dev, "Failed to set vreg voltage.\n");
dev_err(&pdev->dev, "Failed to set vreg voltage(rc:%d)\n",
ret);
ret = regulator_set_load(q6->vreg, 100000);
if (ret < 0) {
dev_err(&pdev->dev, "Failed to set vreg mode.\n");
dev_err(&pdev->dev, "Failed to set vreg mode(rc:%d)\n",
ret);
return ret;
}
}
@ -330,7 +332,7 @@ static int pil_mss_loadable_init(struct modem_data *drv,
ret = of_property_read_u32(pdev->dev.of_node,
"qcom,pas-id", &drv->pas_id);
if (ret)
dev_warn(&pdev->dev, "Failed to find the pas_id.\n");
dev_info(&pdev->dev, "No pas_id found.\n");
drv->subsys_desc.pil_mss_memsetup =
of_property_read_bool(pdev->dev.of_node, "qcom,pil-mss-memsetup");

View file

@ -91,50 +91,53 @@ int pil_q6v5_make_proxy_votes(struct pil_desc *pil)
ret = of_property_read_u32(pil->dev->of_node, "vdd_cx-voltage", &uv);
if (ret) {
dev_err(pil->dev, "missing vdd_cx-voltage property\n");
dev_err(pil->dev, "missing vdd_cx-voltage property(rc:%d)\n",
ret);
return ret;
}
ret = clk_prepare_enable(drv->xo);
if (ret) {
dev_err(pil->dev, "Failed to vote for XO\n");
dev_err(pil->dev, "Failed to vote for XO(rc:%d)\n", ret);
goto out;
}
ret = clk_prepare_enable(drv->pnoc_clk);
if (ret) {
dev_err(pil->dev, "Failed to vote for pnoc\n");
dev_err(pil->dev, "Failed to vote for pnoc(rc:%d)\n", ret);
goto err_pnoc_vote;
}
ret = clk_prepare_enable(drv->qdss_clk);
if (ret) {
dev_err(pil->dev, "Failed to vote for qdss\n");
dev_err(pil->dev, "Failed to vote for qdss(rc:%d)\n", ret);
goto err_qdss_vote;
}
ret = regulator_set_voltage(drv->vreg_cx, uv, INT_MAX);
if (ret) {
dev_err(pil->dev, "Failed to request vdd_cx voltage.\n");
dev_err(pil->dev, "Failed to request vdd_cx voltage(rc:%d)\n",
ret);
goto err_cx_voltage;
}
ret = regulator_set_load(drv->vreg_cx, 100000);
if (ret < 0) {
dev_err(pil->dev, "Failed to set vdd_cx mode.\n");
dev_err(pil->dev, "Failed to set vdd_cx mode(rc:%d)\n", ret);
goto err_cx_mode;
}
ret = regulator_enable(drv->vreg_cx);
if (ret) {
dev_err(pil->dev, "Failed to vote for vdd_cx\n");
dev_err(pil->dev, "Failed to vote for vdd_cx(rc:%d)\n", ret);
goto err_cx_enable;
}
if (drv->vreg_pll) {
ret = regulator_enable(drv->vreg_pll);
if (ret) {
dev_err(pil->dev, "Failed to vote for vdd_pll\n");
dev_err(pil->dev, "Failed to vote for vdd_pll(rc:%d)\n",
ret);
goto err_vreg_pll;
}
}
@ -165,7 +168,8 @@ void pil_q6v5_remove_proxy_votes(struct pil_desc *pil)
ret = of_property_read_u32(pil->dev->of_node, "vdd_cx-voltage", &uv);
if (ret) {
dev_err(pil->dev, "missing vdd_cx-voltage property\n");
dev_err(pil->dev, "missing vdd_cx-voltage property(rc:%d)\n",
ret);
return;
}
@ -708,13 +712,15 @@ struct q6v5_data *pil_q6v5_init(struct platform_device *pdev)
ret = regulator_set_voltage(drv->vreg_pll, vdd_pll,
vdd_pll);
if (ret) {
dev_err(&pdev->dev, "Failed to set vdd_pll voltage.\n");
dev_err(&pdev->dev, "Failed to set vdd_pll voltage(rc:%d)\n",
ret);
return ERR_PTR(ret);
}
ret = regulator_set_load(drv->vreg_pll, 10000);
if (ret < 0) {
dev_err(&pdev->dev, "Failed to set vdd_pll mode.\n");
dev_err(&pdev->dev, "Failed to set vdd_pll mode(rc:%d)\n",
ret);
return ERR_PTR(ret);
}
} else

View file

@ -339,7 +339,8 @@ static int of_read_regs(struct device *dev, struct reg_info **regs_ref,
rc = of_property_read_u32_array(dev->of_node, reg_uV_uA_name,
vdd_uV_uA, len);
if (rc) {
dev_err(dev, "Failed to read uV/uA values\n");
dev_err(dev, "Failed to read uV/uA values(rc:%d)\n",
rc);
return rc;
}
@ -423,7 +424,8 @@ static int enable_regulators(struct pil_tz_data *d, struct device *dev,
rc = regulator_set_voltage(regs[i].reg,
regs[i].uV, INT_MAX);
if (rc) {
dev_err(dev, "Failed to request voltage.\n");
dev_err(dev, "Failed to request voltage(rc:%d)\n",
rc);
goto err_voltage;
}
}
@ -432,7 +434,8 @@ static int enable_regulators(struct pil_tz_data *d, struct device *dev,
rc = regulator_set_load(regs[i].reg,
regs[i].uA);
if (rc < 0) {
dev_err(dev, "Failed to set regulator mode\n");
dev_err(dev, "Failed to set regulator mode(rc:%d)\n",
rc);
goto err_mode;
}
}
@ -442,7 +445,7 @@ static int enable_regulators(struct pil_tz_data *d, struct device *dev,
rc = regulator_enable(regs[i].reg);
if (rc) {
dev_err(dev, "Regulator enable failed\n");
dev_err(dev, "Regulator enable failed(rc:%d)\n", rc);
goto err_enable;
}
}
@ -499,7 +502,7 @@ static int prepare_enable_clocks(struct device *dev, struct clk **clks,
for (i = 0; i < clk_count; i++) {
rc = clk_prepare_enable(clks[i]);
if (rc) {
dev_err(dev, "Clock enable failed\n");
dev_err(dev, "Clock enable failed(rc:%d)\n", rc);
goto err;
}
}
@ -541,7 +544,8 @@ static int pil_make_proxy_vote(struct pil_desc *pil)
if (d->bus_client) {
rc = msm_bus_scale_client_update_request(d->bus_client, 1);
if (rc) {
dev_err(pil->dev, "bandwidth request failed\n");
dev_err(pil->dev, "bandwidth request failed(rc:%d)\n",
rc);
goto err_bw;
}
} else
@ -995,7 +999,8 @@ static int pil_tz_driver_probe(struct platform_device *pdev)
rc = of_property_read_u32(pdev->dev.of_node, "qcom,smem-id",
&d->smem_id);
if (rc) {
dev_err(&pdev->dev, "Failed to get the smem_id.\n");
dev_err(&pdev->dev, "Failed to get the smem_id(rc:%d)\n",
rc);
return rc;
}
}
@ -1019,7 +1024,8 @@ static int pil_tz_driver_probe(struct platform_device *pdev)
rc = of_property_read_u32(pdev->dev.of_node, "qcom,pas-id",
&d->pas_id);
if (rc) {
dev_err(&pdev->dev, "Failed to find the pas_id.\n");
dev_err(&pdev->dev, "Failed to find the pas_id(rc:%d)\n",
rc);
return rc;
}
scm_pas_init(MSM_BUS_MASTER_CRYPTO_CORE0);