Lines Matching defs:rproc
93 static int imx_rproc_xtr_mbox_init(struct rproc *rproc);
94 static void imx_rproc_free_mbox(struct rproc *rproc);
95 static int imx_rproc_detach_pd(struct rproc *rproc);
101 struct rproc *rproc;
373 static int imx_rproc_start(struct rproc *rproc)
375 struct imx_rproc *priv = rproc->priv;
381 ret = imx_rproc_xtr_mbox_init(rproc);
413 static int imx_rproc_stop(struct rproc *rproc)
415 struct imx_rproc *priv = rproc->priv;
452 imx_rproc_free_mbox(rproc);
493 static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
495 struct imx_rproc *priv = rproc->priv;
520 dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%zx va = 0x%p\n",
526 static int imx_rproc_mem_alloc(struct rproc *rproc,
529 struct device *dev = rproc->dev.parent;
546 static int imx_rproc_mem_release(struct rproc *rproc,
549 dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma);
555 static int imx_rproc_prepare(struct rproc *rproc)
557 struct imx_rproc *priv = rproc->priv;
593 rproc_coredump_add_segment(rproc, da, rmem->size);
599 rproc_add_carveout(rproc, mem);
605 static int imx_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
609 ret = rproc_elf_load_rsc_table(rproc, fw);
611 dev_info(&rproc->dev, "No resource table in elf\n");
616 static void imx_rproc_kick(struct rproc *rproc, int vqid)
618 struct imx_rproc *priv = rproc->priv;
639 static int imx_rproc_attach(struct rproc *rproc)
641 return imx_rproc_xtr_mbox_init(rproc);
644 static int imx_rproc_detach(struct rproc *rproc)
646 struct imx_rproc *priv = rproc->priv;
655 imx_rproc_free_mbox(rproc);
660 static struct resource_table *imx_rproc_get_loaded_rsc_table(struct rproc *rproc, size_t *table_sz)
662 struct imx_rproc *priv = rproc->priv;
765 struct rproc *rproc = data;
767 rproc_vq_interrupt(rproc, id);
776 struct rproc *rproc = priv->rproc;
778 idr_for_each(&rproc->notifyids, imx_rproc_notified_idr_cb, rproc);
783 struct rproc *rproc = dev_get_drvdata(cl->dev);
784 struct imx_rproc *priv = rproc->priv;
789 static int imx_rproc_xtr_mbox_init(struct rproc *rproc)
791 struct imx_rproc *priv = rproc->priv;
832 static void imx_rproc_free_mbox(struct rproc *rproc)
834 struct imx_rproc *priv = rproc->priv;
847 static void imx_rproc_put_scu(struct rproc *rproc)
849 struct imx_rproc *priv = rproc->priv;
856 imx_rproc_detach_pd(rproc);
873 rproc_report_crash(priv->rproc, RPROC_WATCHDOG);
931 static int imx_rproc_detach_pd(struct rproc *rproc)
933 struct imx_rproc *priv = rproc->priv;
953 struct regmap_config config = { .name = "imx-rproc" };
964 priv->rproc->state = RPROC_DETACHED;
969 priv->rproc->state = RPROC_DETACHED;
997 priv->rproc->state = RPROC_DETACHED;
998 priv->rproc->recovery_disabled = false;
999 rproc_set_feature(priv->rproc, RPROC_FEAT_ATTACH_ON_RECOVERY);
1051 imx_rproc_stop(priv->rproc);
1063 priv->rproc->state = RPROC_DETACHED;
1102 struct rproc *rproc;
1107 rproc = rproc_alloc(dev, "imx-rproc", &imx_rproc_ops,
1109 if (!rproc)
1118 priv = rproc->priv;
1119 priv->rproc = rproc;
1123 dev_set_drvdata(dev, rproc);
1131 ret = imx_rproc_xtr_mbox_init(rproc);
1151 if (rproc->state != RPROC_DETACHED)
1152 rproc->auto_boot = of_property_read_bool(np, "fsl,auto-boot");
1154 ret = rproc_add(rproc);
1165 imx_rproc_put_scu(rproc);
1167 imx_rproc_free_mbox(rproc);
1171 rproc_free(rproc);
1178 struct rproc *rproc = platform_get_drvdata(pdev);
1179 struct imx_rproc *priv = rproc->priv;
1182 rproc_del(rproc);
1183 imx_rproc_put_scu(rproc);
1184 imx_rproc_free_mbox(rproc);
1186 rproc_free(rproc);
1211 .name = "imx-rproc",