Loading drivers/soc/qcom/peripheral-loader.c +15 −14 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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; Loading Loading @@ -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; } Loading Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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"); Loading drivers/soc/qcom/pil-msa.c +23 −15 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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) { Loading @@ -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 && Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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; Loading drivers/soc/qcom/pil-q6v5-mss.c +5 −3 Original line number Diff line number Diff line Loading @@ -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; } } Loading Loading @@ -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"); Loading drivers/soc/qcom/pil-q6v5.c +17 −11 Original line number Diff line number Diff line Loading @@ -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; } } Loading Loading @@ -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; } Loading Loading @@ -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 Loading drivers/soc/qcom/subsys-pil-tz.c +14 −8 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; } } Loading @@ -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; } } Loading @@ -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; } } Loading Loading @@ -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; } } Loading Loading @@ -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 Loading Loading @@ -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; } } Loading @@ -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); Loading Loading
drivers/soc/qcom/peripheral-loader.c +15 −14 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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; Loading Loading @@ -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; } Loading Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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"); Loading
drivers/soc/qcom/pil-msa.c +23 −15 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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) { Loading @@ -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 && Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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; Loading
drivers/soc/qcom/pil-q6v5-mss.c +5 −3 Original line number Diff line number Diff line Loading @@ -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; } } Loading Loading @@ -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"); Loading
drivers/soc/qcom/pil-q6v5.c +17 −11 Original line number Diff line number Diff line Loading @@ -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; } } Loading Loading @@ -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; } Loading Loading @@ -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 Loading
drivers/soc/qcom/subsys-pil-tz.c +14 −8 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; } } Loading @@ -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; } } Loading @@ -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; } } Loading Loading @@ -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; } } Loading Loading @@ -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 Loading Loading @@ -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; } } Loading @@ -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); Loading