Lines Matching full:rproc
98 * @rproc: rproc handler
114 struct rproc *rproc; member
286 static int imx_dsp_rproc_ready(struct rproc *rproc) in imx_dsp_rproc_ready() argument
288 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_ready()
311 static int imx_dsp_rproc_start(struct rproc *rproc) in imx_dsp_rproc_start() argument
313 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_start()
316 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_start()
330 rproc->bootaddr); in imx_dsp_rproc_start()
339 ret = imx_dsp_rproc_ready(rproc); in imx_dsp_rproc_start()
348 static int imx_dsp_rproc_stop(struct rproc *rproc) in imx_dsp_rproc_stop() argument
350 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_stop()
353 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_stop()
356 if (rproc->state == RPROC_CRASHED) { in imx_dsp_rproc_stop()
370 rproc->bootaddr); in imx_dsp_rproc_stop()
438 struct rproc *rproc = priv->rproc; in imx_dsp_rproc_vq_work() local
440 mutex_lock(&rproc->lock); in imx_dsp_rproc_vq_work()
442 if (rproc->state != RPROC_RUNNING) in imx_dsp_rproc_vq_work()
445 rproc_vq_interrupt(priv->rproc, 0); in imx_dsp_rproc_vq_work()
446 rproc_vq_interrupt(priv->rproc, 1); in imx_dsp_rproc_vq_work()
449 mutex_unlock(&rproc->lock); in imx_dsp_rproc_vq_work()
463 struct rproc *rproc = dev_get_drvdata(cl->dev); in imx_dsp_rproc_rx_tx_callback() local
464 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_rx_tx_callback()
465 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_rx_tx_callback()
493 struct rproc *rproc = dev_get_drvdata(cl->dev); in imx_dsp_rproc_rxdb_callback() local
494 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_rxdb_callback()
508 struct device *dev = priv->rproc->dev.parent; in imx_dsp_rproc_mbox_alloc()
588 * This function registers specified memory entry in @rproc carveouts list
595 struct rproc *rproc = priv->rproc; in imx_dsp_rproc_add_carveout() local
596 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_add_carveout()
626 rproc_coredump_add_segment(rproc, da, att->size); in imx_dsp_rproc_add_carveout()
630 rproc_add_carveout(rproc, mem); in imx_dsp_rproc_add_carveout()
666 rproc_coredump_add_segment(rproc, da, rmem->size); in imx_dsp_rproc_add_carveout()
672 rproc_add_carveout(rproc, mem); in imx_dsp_rproc_add_carveout()
679 static int imx_dsp_rproc_prepare(struct rproc *rproc) in imx_dsp_rproc_prepare() argument
681 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_prepare()
682 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_prepare()
698 list_for_each_entry(carveout, &rproc->carveouts, node) { in imx_dsp_rproc_prepare()
707 static int imx_dsp_rproc_unprepare(struct rproc *rproc) in imx_dsp_rproc_unprepare() argument
709 pm_runtime_put_sync(rproc->dev.parent); in imx_dsp_rproc_unprepare()
715 static void imx_dsp_rproc_kick(struct rproc *rproc, int vqid) in imx_dsp_rproc_kick() argument
717 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_kick()
718 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_kick()
832 * @rproc: remote processor which will be booted using these fw segments
840 static int imx_dsp_rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) in imx_dsp_rproc_elf_load_segments() argument
842 struct device *dev = &rproc->dev; in imx_dsp_rproc_elf_load_segments()
891 ptr = rproc_da_to_va(rproc, da, memsz, NULL); in imx_dsp_rproc_elf_load_segments()
923 static int imx_dsp_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) in imx_dsp_rproc_parse_fw() argument
925 if (rproc_elf_load_rsc_table(rproc, fw)) in imx_dsp_rproc_parse_fw()
926 dev_warn(&rproc->dev, "no resource table found for this firmware\n"); in imx_dsp_rproc_parse_fw()
953 struct device *dev = priv->rproc->dev.parent; in imx_dsp_attach_pm_domains()
979 struct device *dev = priv->rproc->dev.parent; in imx_dsp_rproc_detect_mode()
1013 struct device *dev = priv->rproc->dev.parent; in imx_dsp_rproc_clk_get()
1028 struct rproc *rproc; in imx_dsp_rproc_probe() local
1043 rproc = devm_rproc_alloc(dev, "imx-dsp-rproc", &imx_dsp_rproc_ops, in imx_dsp_rproc_probe()
1045 if (!rproc) in imx_dsp_rproc_probe()
1048 priv = rproc->priv; in imx_dsp_rproc_probe()
1049 priv->rproc = rproc; in imx_dsp_rproc_probe()
1057 dev_set_drvdata(dev, rproc); in imx_dsp_rproc_probe()
1081 rproc->auto_boot = false; in imx_dsp_rproc_probe()
1082 ret = rproc_add(rproc); in imx_dsp_rproc_probe()
1100 struct rproc *rproc = platform_get_drvdata(pdev); in imx_dsp_rproc_remove() local
1101 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_remove()
1104 rproc_del(rproc); in imx_dsp_rproc_remove()
1111 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_runtime_resume() local
1112 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_runtime_resume()
1143 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_runtime_suspend() local
1144 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_runtime_suspend()
1155 struct rproc *rproc = context; in imx_dsp_load_firmware() local
1162 ret = rproc_load_segments(rproc, fw); in imx_dsp_load_firmware()
1167 ret = rproc->ops->start(rproc); in imx_dsp_load_firmware()
1171 rproc->ops->kick(rproc, 0); in imx_dsp_load_firmware()
1179 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_suspend() local
1180 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_suspend()
1184 if (rproc->state != RPROC_RUNNING) in imx_dsp_suspend()
1214 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_resume() local
1221 if (rproc->state != RPROC_RUNNING) in imx_dsp_resume()
1230 rproc->firmware, dev, GFP_KERNEL, in imx_dsp_resume()
1231 rproc, imx_dsp_load_firmware); in imx_dsp_resume()
1263 .name = "imx-dsp-rproc",