Lines Matching refs:rproc
83 struct rproc *rproc; member
322 static int adsp_load(struct rproc *rproc, const struct firmware *fw) in adsp_load() argument
324 struct qcom_adsp *adsp = rproc->priv; in adsp_load()
327 ret = qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, 0, in adsp_load()
338 static void adsp_unmap_carveout(struct rproc *rproc) in adsp_unmap_carveout() argument
340 struct qcom_adsp *adsp = rproc->priv; in adsp_unmap_carveout()
343 iommu_unmap(rproc->domain, adsp->mem_phys, adsp->mem_size); in adsp_unmap_carveout()
346 static int adsp_map_carveout(struct rproc *rproc) in adsp_map_carveout() argument
348 struct qcom_adsp *adsp = rproc->priv; in adsp_map_carveout()
357 if (!rproc->domain) in adsp_map_carveout()
369 ret = iommu_map(rproc->domain, iova, adsp->mem_phys, in adsp_map_carveout()
380 static int adsp_start(struct rproc *rproc) in adsp_start() argument
382 struct qcom_adsp *adsp = rproc->priv; in adsp_start()
390 ret = adsp_map_carveout(rproc); in adsp_start()
455 adsp_unmap_carveout(rproc); in adsp_start()
470 static int adsp_stop(struct rproc *rproc) in adsp_stop() argument
472 struct qcom_adsp *adsp = rproc->priv; in adsp_stop()
484 adsp_unmap_carveout(rproc); in adsp_stop()
493 static void *adsp_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem) in adsp_da_to_va() argument
495 struct qcom_adsp *adsp = rproc->priv; in adsp_da_to_va()
505 static int adsp_parse_firmware(struct rproc *rproc, const struct firmware *fw) in adsp_parse_firmware() argument
507 struct qcom_adsp *adsp = rproc->priv; in adsp_parse_firmware()
510 ret = qcom_register_dump_segments(rproc, fw); in adsp_parse_firmware()
512 dev_err(&rproc->dev, "Error in registering dump segments\n"); in adsp_parse_firmware()
517 ret = rproc_elf_load_rsc_table(rproc, fw); in adsp_parse_firmware()
519 dev_err(&rproc->dev, "Error in loading resource table\n"); in adsp_parse_firmware()
526 static unsigned long adsp_panic(struct rproc *rproc) in adsp_panic() argument
528 struct qcom_adsp *adsp = rproc->priv; in adsp_panic()
671 struct rproc *rproc; in adsp_probe() local
686 rproc = rproc_alloc(&pdev->dev, pdev->name, &adsp_ops, in adsp_probe()
688 if (!rproc) { in adsp_probe()
693 rproc->auto_boot = desc->auto_boot; in adsp_probe()
694 rproc->has_iommu = desc->has_iommu; in adsp_probe()
695 rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE); in adsp_probe()
697 adsp = rproc->priv; in adsp_probe()
699 adsp->rproc = rproc; in adsp_probe()
734 ret = qcom_q6v5_init(&adsp->q6v5, pdev, rproc, desc->crash_reason_smem, in adsp_probe()
739 qcom_add_glink_subdev(rproc, &adsp->glink_subdev, desc->ssr_name); in adsp_probe()
740 qcom_add_ssr_subdev(rproc, &adsp->ssr_subdev, desc->ssr_name); in adsp_probe()
741 adsp->sysmon = qcom_add_sysmon_subdev(rproc, in adsp_probe()
749 ret = rproc_add(rproc); in adsp_probe()
759 rproc_free(rproc); in adsp_probe()
768 rproc_del(adsp->rproc); in adsp_remove()
771 qcom_remove_glink_subdev(adsp->rproc, &adsp->glink_subdev); in adsp_remove()
773 qcom_remove_ssr_subdev(adsp->rproc, &adsp->ssr_subdev); in adsp_remove()
775 rproc_free(adsp->rproc); in adsp_remove()