/linux/include/linux/ |
H A D | remoteproc.h | 314 struct rproc; 344 int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem); 345 int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem); 386 int (*prepare)(struct rproc *rproc); 387 int (*unprepare)(struct rproc *rproc); 388 int (*start)(struct rproc *rproc); 389 int (*stop)(struct rproc *rproc); 390 int (*attach)(struct rproc *rproc); 391 int (*detach)(struct rproc *rproc); 392 void (*kick)(struct rproc *rproc, int vqid); [all …]
|
H A D | pruss_driver.h | 108 struct pruss *pruss_get(struct rproc *rproc); 124 static inline struct pruss *pruss_get(struct rproc *rproc) in pruss_get() argument
|
H A D | wkup_m3_ipc.h | 21 struct rproc *rproc; member
|
/linux/drivers/remoteproc/ |
H A D | remoteproc_cdev.c | 23 struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev); in rproc_cdev_write() local 35 ret = rproc_boot(rproc); in rproc_cdev_write() 37 ret = rproc_shutdown(rproc); in rproc_cdev_write() 39 ret = rproc_detach(rproc); in rproc_cdev_write() 41 dev_err(&rproc->dev, "Unrecognized option\n"); in rproc_cdev_write() 50 struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev); in rproc_device_ioctl() local 59 rproc->cdev_put_on_release = !!param; in rproc_device_ioctl() 62 param = (s32)rproc->cdev_put_on_release; in rproc_device_ioctl() 68 dev_err(&rproc->dev, "Unsupported ioctl\n"); in rproc_device_ioctl() 77 struct rproc *rproc = container_of(inode->i_cdev, struct rproc, cdev); in rproc_cdev_release() local [all …]
|
H A D | qcom_common.h | 44 void qcom_minidump(struct rproc *rproc, unsigned int minidump_id, 45 void (*rproc_dumpfn_t)(struct rproc *rproc, 49 void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink, 51 void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink); 53 int qcom_register_dump_segments(struct rproc *rproc, const struct firmware *fw); 55 void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd); 56 void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd); 58 void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr, 60 void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr); 62 void qcom_add_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm); [all …]
|
H A D | remoteproc_debugfs.c | 45 struct rproc *rproc = filp->private_data; in rproc_coredump_read() local 50 rproc_coredump_str[rproc->dump_conf]); in rproc_coredump_read() 75 struct rproc *rproc = filp->private_data; in rproc_coredump_write() local 90 if (rproc->state == RPROC_CRASHED) { in rproc_coredump_write() 91 dev_err(&rproc->dev, "can't change coredump configuration\n"); in rproc_coredump_write() 97 rproc->dump_conf = RPROC_COREDUMP_DISABLED; in rproc_coredump_write() 99 rproc->dump_conf = RPROC_COREDUMP_ENABLED; in rproc_coredump_write() 101 rproc->dump_conf = RPROC_COREDUMP_INLINE; in rproc_coredump_write() 103 dev_err(&rproc->dev, "Invalid coredump configuration\n"); in rproc_coredump_write() 135 va = rproc_da_to_va(data->rproc, trace->da, trace->len, NULL); in rproc_trace_read() [all …]
|
H A D | remoteproc_coredump.c | 17 struct rproc *rproc; member 26 void rproc_coredump_cleanup(struct rproc *rproc) in rproc_coredump_cleanup() argument 30 list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) { in rproc_coredump_cleanup() 48 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size) in rproc_coredump_add_segment() argument 59 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_segment() 79 int rproc_coredump_add_custom_segment(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument 81 void (*dumpfn)(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument 98 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_custom_segment() 114 int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine) in rproc_coredump_set_elf_info() argument 119 rproc->elf_class = class; in rproc_coredump_set_elf_info() [all …]
|
H A D | qcom_common.c | 95 static void qcom_minidump_cleanup(struct rproc *rproc) in qcom_minidump_cleanup() argument 99 list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) { in qcom_minidump_cleanup() 106 static int qcom_add_minidump_segments(struct rproc *rproc, struct minidump_subsystem *subsystem, in qcom_add_minidump_segments() argument 107 void (*rproc_dumpfn_t)(struct rproc *rproc, struct rproc_dump_segment *segment, in qcom_add_minidump_segments() argument 117 if (WARN_ON(!list_empty(&rproc->dump_segments))) { in qcom_add_minidump_segments() 118 dev_err(&rproc->dev, "dump segment list already populated\n"); in qcom_add_minidump_segments() 138 rproc_coredump_add_custom_segment(rproc, da, size, rproc_dumpfn_t, name); in qcom_add_minidump_segments() 146 void qcom_minidump(struct rproc *rproc, unsigned int minidump_id, in qcom_minidump() argument 147 void (*rproc_dumpfn_t)(struct rproc *rproc, in qcom_minidump() argument 160 dev_err(&rproc->dev, "Minidump TOC not found in SMEM\n"); in qcom_minidump() [all …]
|
H A D | ingenic_rproc.c | 69 static int ingenic_rproc_prepare(struct rproc *rproc) in ingenic_rproc_prepare() argument 71 struct vpu *vpu = rproc->priv; in ingenic_rproc_prepare() 82 static int ingenic_rproc_unprepare(struct rproc *rproc) in ingenic_rproc_unprepare() argument 84 struct vpu *vpu = rproc->priv; in ingenic_rproc_unprepare() 91 static int ingenic_rproc_start(struct rproc *rproc) in ingenic_rproc_start() argument 93 struct vpu *vpu = rproc->priv; in ingenic_rproc_start() 105 static int ingenic_rproc_stop(struct rproc *rproc) in ingenic_rproc_stop() argument 107 struct vpu *vpu = rproc->priv; in ingenic_rproc_stop() 117 static void ingenic_rproc_kick(struct rproc *rproc, int vqid) in ingenic_rproc_kick() argument 119 struct vpu *vpu = rproc->priv; in ingenic_rproc_kick() [all …]
|
H A D | xlnx_r5_remoteproc.c | 153 struct rproc *rproc; member 187 struct rproc *rproc = data; in event_notified_idr_cb() local 189 if (rproc_vq_interrupt(rproc, id) == IRQ_NONE) in event_notified_idr_cb() 190 dev_dbg(&rproc->dev, "data not found for vqid=%d\n", id); in event_notified_idr_cb() 204 struct rproc *rproc; in handle_event_notified() local 207 rproc = ipi->r5_core->rproc; in handle_event_notified() 216 idr_for_each(&rproc->notifyids, event_notified_idr_cb, rproc); in handle_event_notified() 326 static void zynqmp_r5_rproc_kick(struct rproc *rproc, int vqid) in zynqmp_r5_rproc_kick() argument 328 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_kick() 354 static int zynqmp_r5_rproc_start(struct rproc *rproc) in zynqmp_r5_rproc_start() argument [all …]
|
H A D | st_slim_rproc.c | 111 static int slim_rproc_start(struct rproc *rproc) in slim_rproc_start() argument 113 struct device *dev = &rproc->dev; in slim_rproc_start() 114 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_start() 153 static int slim_rproc_stop(struct rproc *rproc) in slim_rproc_stop() argument 155 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_stop() 169 dev_warn(&rproc->dev, "Failed to disable SLIM"); in slim_rproc_stop() 171 dev_dbg(&rproc->dev, "slim stopped\n"); in slim_rproc_stop() 176 static void *slim_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem) in slim_rproc_da_to_va() argument 178 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_da_to_va() 193 dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%zx va = 0x%pK\n", in slim_rproc_da_to_va() [all …]
|
H A D | remoteproc_elf_loader.c | 37 int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw) argument 39 const char *name = rproc->firmware; 40 struct device *dev = &rproc->dev; 128 u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw) argument 160 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) argument 162 struct device *dev = &rproc->dev; 212 ptr = rproc_da_to_va(rproc, da, memsz, &is_iomem); 326 int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw) argument 329 struct device *dev = &rproc->dev; 350 rproc->cached_table = kmemdup(table, tablesz, GFP_KERNEL); [all …]
|
H A D | qcom_q6v5.h | 11 struct rproc; 17 struct rproc *rproc; member 46 struct rproc *rproc, int crash_reason, const char *load_state,
|
H A D | qcom_sysmon.c | 22 struct rproc *rproc; member 624 struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, in qcom_add_sysmon_subdev() argument 635 sysmon->dev = rproc->dev.parent; in qcom_add_sysmon_subdev() 636 sysmon->rproc = rproc; in qcom_add_sysmon_subdev() 687 rproc_add_subdev(rproc, &sysmon->subdev); in qcom_add_sysmon_subdev() 715 rproc_remove_subdev(sysmon->rproc, &sysmon->subdev); in qcom_remove_sysmon_subdev() 751 struct rproc *rproc; in sysmon_probe() local 753 rproc = rproc_get_by_child(&rpdev->dev); in sysmon_probe() 754 if (!rproc) { in sysmon_probe() 761 if (sysmon->rproc == rproc) in sysmon_probe()
|
H A D | qcom_q6v5.c | 110 rproc_report_crash(q6v5->rproc, RPROC_WATCHDOG); in q6v5_wdog_interrupt() 131 rproc_report_crash(q6v5->rproc, RPROC_FATAL_ERROR); in q6v5_fatal_interrupt() 203 if (q6v5->rproc->state != RPROC_RUNNING || qcom_sysmon_shutdown_acked(sysmon)) in qcom_q6v5_request_stop() 247 struct rproc *rproc, int crash_reason, const char *load_state, in qcom_q6v5_init() argument 252 q6v5->rproc = rproc; in qcom_q6v5_init()
|
/linux/include/linux/remoteproc/ |
H A D | pruss.h | 46 struct rproc; 50 struct rproc *pru_rproc_get(struct device_node *np, int index, 52 void pru_rproc_put(struct rproc *rproc); 53 int pru_rproc_set_ctable(struct rproc *rproc, enum pru_ctable_idx c, u32 addr); 57 static inline struct rproc * 63 static inline void pru_rproc_put(struct rproc *rproc) { } in pru_rproc_put() argument 65 static inline int pru_rproc_set_ctable(struct rproc *rproc, in pru_rproc_set_ctable() argument
|
H A D | st_slim_rproc.h | 41 struct rproc *rproc; member
|
/linux/Documentation/staging/ |
H A D | remoteproc.rst | 37 int rproc_boot(struct rproc *rproc) 45 Note: to use this function you should already have a valid rproc 52 int rproc_shutdown(struct rproc *rproc) 55 In case @rproc is still being used by an additional user(s), then 65 we're not decrementing the rproc's refcount, only the power refcount. 66 which means that the @rproc handle stays valid even after 72 struct rproc *rproc_get_by_phandle(phandle phandle) 74 Find an rproc handle using a device tree phandle. Returns the rproc 77 decrement it back once rproc isn't needed anymore. 86 /* in case we were given a valid 'rproc' handle */ [all …]
|
/linux/Documentation/devicetree/bindings/remoteproc/ |
H A D | st-rproc.txt | 12 "st,st231-rproc" 13 "st,st40-rproc" 27 audio_reserved: rproc@42000000 { 34 compatible = "st,st231-rproc";
|
/linux/Documentation/devicetree/bindings/dma/ |
H A D | st_fdma.txt | 11 - st,stih407-fdma-mpe31-11, "st,slim-rproc"; 12 - st,stih407-fdma-mpe31-12, "st,slim-rproc"; 13 - st,stih407-fdma-mpe31-13, "st,slim-rproc"; 26 compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
|
/linux/drivers/soc/ti/ |
H A D | pruss.c | 56 struct pruss *pruss_get(struct rproc *rproc) in pruss_get() argument 62 if (IS_ERR_OR_NULL(rproc)) in pruss_get() 65 dev = &rproc->dev; in pruss_get()
|
/linux/drivers/net/ethernet/ti/icssg/ |
H A D | icssg_prueth.h | 271 struct rproc *pru[PRUSS_NUM_PRUS]; 272 struct rproc *rtu[PRUSS_NUM_PRUS]; 273 struct rproc *txpru[PRUSS_NUM_PRUS];
|
/linux/drivers/net/wireless/ath/ath11k/ |
H A D | ahb.h | 25 struct rproc *tgt_rproc;
|
/linux/arch/arm/boot/dts/st/ |
H A D | stih407-family.dtsi | 20 gp0_reserved: rproc@45000000 { 26 delta_reserved: rproc@44000000 { 212 compatible = "st,st231-rproc"; 225 compatible = "st,st231-rproc"; 850 compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc"; 867 compatible = "st,stih407-fdma-mpe31-12", "st,slim-rproc"; 887 compatible = "st,stih407-fdma-mpe31-13", "st,slim-rproc";
|
/linux/Documentation/devicetree/bindings/interrupt-controller/ |
H A D | ti,keystone-irq.txt | 32 compatible = "linux,rproc-user";
|