Lines Matching full:rproc
100 * @rproc: rproc handler
117 struct rproc *rproc; member
283 static int imx_dsp_rproc_ready(struct rproc *rproc) in imx_dsp_rproc_ready() argument
285 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_ready()
308 static int imx_dsp_rproc_start(struct rproc *rproc) in imx_dsp_rproc_start() argument
310 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_start()
313 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_start()
327 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()
441 struct rproc *rproc = priv->rproc; in imx_dsp_rproc_vq_work() local
443 mutex_lock(&rproc->lock); in imx_dsp_rproc_vq_work()
445 if (rproc->state != RPROC_RUNNING) in imx_dsp_rproc_vq_work()
448 rproc_vq_interrupt(priv->rproc, 0); in imx_dsp_rproc_vq_work()
449 rproc_vq_interrupt(priv->rproc, 1); in imx_dsp_rproc_vq_work()
452 mutex_unlock(&rproc->lock); in imx_dsp_rproc_vq_work()
466 struct rproc *rproc = dev_get_drvdata(cl->dev); in imx_dsp_rproc_rx_tx_callback() local
467 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_rx_tx_callback()
468 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_rx_tx_callback()
496 struct rproc *rproc = dev_get_drvdata(cl->dev); in imx_dsp_rproc_rxdb_callback() local
497 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_rxdb_callback()
511 struct device *dev = priv->rproc->dev.parent; in imx_dsp_rproc_mbox_alloc()
591 * This function registers specified memory entry in @rproc carveouts list
598 struct rproc *rproc = priv->rproc; in imx_dsp_rproc_add_carveout() local
599 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_add_carveout()
629 rproc_coredump_add_segment(rproc, da, att->size); in imx_dsp_rproc_add_carveout()
633 rproc_add_carveout(rproc, mem); in imx_dsp_rproc_add_carveout()
669 rproc_coredump_add_segment(rproc, da, rmem->size); in imx_dsp_rproc_add_carveout()
675 rproc_add_carveout(rproc, mem); in imx_dsp_rproc_add_carveout()
682 static int imx_dsp_rproc_prepare(struct rproc *rproc) in imx_dsp_rproc_prepare() argument
684 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_prepare()
685 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_prepare()
701 list_for_each_entry(carveout, &rproc->carveouts, node) { in imx_dsp_rproc_prepare()
710 static int imx_dsp_rproc_unprepare(struct rproc *rproc) in imx_dsp_rproc_unprepare() argument
712 pm_runtime_put_sync(rproc->dev.parent); in imx_dsp_rproc_unprepare()
718 static void imx_dsp_rproc_kick(struct rproc *rproc, int vqid) in imx_dsp_rproc_kick() argument
720 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_kick()
721 struct device *dev = rproc->dev.parent; in imx_dsp_rproc_kick()
835 * @rproc: remote processor which will be booted using these fw segments
843 static int imx_dsp_rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) in imx_dsp_rproc_elf_load_segments() argument
845 struct device *dev = &rproc->dev; in imx_dsp_rproc_elf_load_segments()
894 ptr = rproc_da_to_va(rproc, da, memsz, NULL); in imx_dsp_rproc_elf_load_segments()
926 static int imx_dsp_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) in imx_dsp_rproc_parse_fw() argument
928 if (rproc_elf_load_rsc_table(rproc, fw)) in imx_dsp_rproc_parse_fw()
929 dev_warn(&rproc->dev, "no resource table found for this firmware\n"); in imx_dsp_rproc_parse_fw()
956 struct device *dev = priv->rproc->dev.parent; in imx_dsp_attach_pm_domains()
982 struct device *dev = priv->rproc->dev.parent; in imx_dsp_rproc_detect_mode()
1023 struct device *dev = priv->rproc->dev.parent; in imx_dsp_rproc_clk_get()
1038 struct rproc *rproc; in imx_dsp_rproc_probe() local
1053 rproc = devm_rproc_alloc(dev, "imx-dsp-rproc", &imx_dsp_rproc_ops, in imx_dsp_rproc_probe()
1055 if (!rproc) in imx_dsp_rproc_probe()
1058 priv = rproc->priv; in imx_dsp_rproc_probe()
1059 priv->rproc = rproc; in imx_dsp_rproc_probe()
1067 dev_set_drvdata(dev, rproc); in imx_dsp_rproc_probe()
1091 rproc->auto_boot = false; in imx_dsp_rproc_probe()
1092 ret = rproc_add(rproc); in imx_dsp_rproc_probe()
1110 struct rproc *rproc = platform_get_drvdata(pdev); in imx_dsp_rproc_remove() local
1111 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_rproc_remove()
1114 rproc_del(rproc); in imx_dsp_rproc_remove()
1121 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_runtime_resume() local
1122 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_runtime_resume()
1153 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_runtime_suspend() local
1154 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_runtime_suspend()
1165 struct rproc *rproc = context; in imx_dsp_load_firmware() local
1172 ret = rproc_load_segments(rproc, fw); in imx_dsp_load_firmware()
1177 ret = rproc->ops->start(rproc); in imx_dsp_load_firmware()
1181 rproc->ops->kick(rproc, 0); in imx_dsp_load_firmware()
1189 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_suspend() local
1190 struct imx_dsp_rproc *priv = rproc->priv; in imx_dsp_suspend()
1194 if (rproc->state != RPROC_RUNNING) in imx_dsp_suspend()
1224 struct rproc *rproc = dev_get_drvdata(dev); in imx_dsp_resume() local
1231 if (rproc->state != RPROC_RUNNING) in imx_dsp_resume()
1240 rproc->firmware, dev, GFP_KERNEL, in imx_dsp_resume()
1241 rproc, imx_dsp_load_firmware); in imx_dsp_resume()
1273 .name = "imx-dsp-rproc",