Lines Matching refs:rproc

119 	struct rproc *rproc;  member
170 static int pru_rproc_set_firmware(struct rproc *rproc, const char *fw_name) in pru_rproc_set_firmware() argument
172 struct pru_rproc *pru = rproc->priv; in pru_rproc_set_firmware()
177 return rproc_set_firmware(rproc, fw_name); in pru_rproc_set_firmware()
180 static struct rproc *__pru_rproc_get(struct device_node *np, int index) in __pru_rproc_get()
182 struct rproc *rproc; in __pru_rproc_get() local
190 rproc = rproc_get_by_phandle(rproc_phandle); in __pru_rproc_get()
191 if (!rproc) { in __pru_rproc_get()
197 if (!is_pru_rproc(rproc->dev.parent)) { in __pru_rproc_get()
198 rproc_put(rproc); in __pru_rproc_get()
202 return rproc; in __pru_rproc_get()
226 struct rproc *pru_rproc_get(struct device_node *np, int index, in pru_rproc_get()
229 struct rproc *rproc; in pru_rproc_get() local
236 rproc = __pru_rproc_get(np, index); in pru_rproc_get()
237 if (IS_ERR(rproc)) in pru_rproc_get()
238 return rproc; in pru_rproc_get()
240 pru = rproc->priv; in pru_rproc_get()
241 dev = &rproc->dev; in pru_rproc_get()
252 rproc->sysfs_read_only = true; in pru_rproc_get()
279 ret = pru_rproc_set_firmware(rproc, fw_name); in pru_rproc_get()
286 return rproc; in pru_rproc_get()
289 rproc_put(rproc); in pru_rproc_get()
293 pru_rproc_put(rproc); in pru_rproc_get()
305 void pru_rproc_put(struct rproc *rproc) in pru_rproc_put() argument
309 if (IS_ERR_OR_NULL(rproc) || !is_pru_rproc(rproc->dev.parent)) in pru_rproc_put()
312 pru = rproc->priv; in pru_rproc_put()
316 pru_rproc_set_firmware(rproc, NULL); in pru_rproc_put()
326 rproc->sysfs_read_only = false; in pru_rproc_put()
329 rproc_put(rproc); in pru_rproc_put()
341 int pru_rproc_set_ctable(struct rproc *rproc, enum pru_ctable_idx c, u32 addr) in pru_rproc_set_ctable() argument
343 struct pru_rproc *pru = rproc->priv; in pru_rproc_set_ctable()
349 if (IS_ERR_OR_NULL(rproc)) in pru_rproc_set_ctable()
352 if (!rproc->dev.parent || !is_pru_rproc(rproc->dev.parent)) in pru_rproc_set_ctable()
379 struct rproc *rproc = s->private; in regs_show() local
380 struct pru_rproc *pru = rproc->priv; in regs_show()
437 struct rproc *rproc = data; in pru_rproc_debug_ss_set() local
438 struct pru_rproc *pru = rproc->priv; in pru_rproc_debug_ss_set()
463 struct rproc *rproc = data; in pru_rproc_debug_ss_get() local
464 struct pru_rproc *pru = rproc->priv; in pru_rproc_debug_ss_get()
479 static void pru_rproc_create_debug_entries(struct rproc *rproc) in pru_rproc_create_debug_entries() argument
481 if (!rproc->dbg_dir) in pru_rproc_create_debug_entries()
484 debugfs_create_file("regs", 0400, rproc->dbg_dir, in pru_rproc_create_debug_entries()
485 rproc, &regs_fops); in pru_rproc_create_debug_entries()
486 debugfs_create_file("single_step", 0600, rproc->dbg_dir, in pru_rproc_create_debug_entries()
487 rproc, &pru_rproc_debug_ss_fops); in pru_rproc_create_debug_entries()
509 static int pru_handle_intrmap(struct rproc *rproc) in pru_handle_intrmap() argument
511 struct device *dev = rproc->dev.parent; in pru_handle_intrmap()
512 struct pru_rproc *pru = rproc->priv; in pru_handle_intrmap()
596 static int pru_rproc_start(struct rproc *rproc) in pru_rproc_start() argument
598 struct device *dev = &rproc->dev; in pru_rproc_start()
599 struct pru_rproc *pru = rproc->priv; in pru_rproc_start()
605 names[pru->data->type], pru->id, (rproc->bootaddr >> 2)); in pru_rproc_start()
607 ret = pru_handle_intrmap(rproc); in pru_rproc_start()
617 val = CTRL_CTRL_EN | ((rproc->bootaddr >> 2) << 16); in pru_rproc_start()
623 static int pru_rproc_stop(struct rproc *rproc) in pru_rproc_stop() argument
625 struct device *dev = &rproc->dev; in pru_rproc_stop()
626 struct pru_rproc *pru = rproc->priv; in pru_rproc_stop()
731 static void *pru_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem) in pru_rproc_da_to_va() argument
733 struct pru_rproc *pru = rproc->priv; in pru_rproc_da_to_va()
739 static void *pru_da_to_va(struct rproc *rproc, u64 da, size_t len, bool is_iram) in pru_da_to_va() argument
741 struct pru_rproc *pru = rproc->priv; in pru_da_to_va()
801 pru_rproc_load_elf_segments(struct rproc *rproc, const struct firmware *fw) in pru_rproc_load_elf_segments() argument
803 struct pru_rproc *pru = rproc->priv; in pru_rproc_load_elf_segments()
804 struct device *dev = &rproc->dev; in pru_rproc_load_elf_segments()
844 ptr = pru_da_to_va(rproc, da, memsz, is_iram); in pru_rproc_load_elf_segments()
925 static int pru_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) in pru_rproc_parse_fw() argument
927 struct device *dev = &rproc->dev; in pru_rproc_parse_fw()
928 struct pru_rproc *pru = rproc->priv; in pru_rproc_parse_fw()
936 ret = rproc_elf_load_rsc_table(rproc, fw); in pru_rproc_parse_fw()
938 dev_dbg(&rproc->dev, "no resource table found for this fw\n"); in pru_rproc_parse_fw()
995 struct rproc *rproc = NULL; in pru_rproc_probe() local
1011 rproc = devm_rproc_alloc(dev, pdev->name, &pru_rproc_ops, fw_name, in pru_rproc_probe()
1013 if (!rproc) { in pru_rproc_probe()
1018 rproc->ops->load = pru_rproc_load_elf_segments; in pru_rproc_probe()
1021 rproc->ops->parse_fw = pru_rproc_parse_fw; in pru_rproc_probe()
1024 rproc->recovery_disabled = true; in pru_rproc_probe()
1033 rproc->auto_boot = false; in pru_rproc_probe()
1035 pru = rproc->priv; in pru_rproc_probe()
1039 pru->rproc = rproc; in pru_rproc_probe()
1067 platform_set_drvdata(pdev, rproc); in pru_rproc_probe()
1069 ret = devm_rproc_add(dev, pru->rproc); in pru_rproc_probe()
1075 pru_rproc_create_debug_entries(rproc); in pru_rproc_probe()
1085 struct rproc *rproc = platform_get_drvdata(pdev); in pru_rproc_remove() local
1087 dev_dbg(dev, "%s: removing rproc %s\n", __func__, rproc->name); in pru_rproc_remove()