Home
last modified time | relevance | path

Searched full:rproc (Results 1 – 25 of 45) sorted by relevance

12

/linux/drivers/remoteproc/
H A Dremoteproc_core.c51 typedef int (*rproc_handle_resource_t)(struct rproc *rproc,
54 static int rproc_alloc_carveout(struct rproc *rproc,
56 static int rproc_release_carveout(struct rproc *rproc,
88 struct rproc *rproc = token; in rproc_iommu_fault() local
92 rproc_report_crash(rproc, RPROC_MMUFAULT); in rproc_iommu_fault()
101 static int rproc_enable_iommu(struct rproc *rproc) in rproc_enable_iommu() argument
104 struct device *dev = rproc->dev.parent; in rproc_enable_iommu()
107 if (!rproc->has_iommu) { in rproc_enable_iommu()
118 iommu_set_fault_handler(domain, rproc_iommu_fault, rproc); in rproc_enable_iommu()
126 rproc->domain = domain; in rproc_enable_iommu()
[all …]
H A Dremoteproc_cdev.c23 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 Dqcom_common.h44 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 Dqcom_common.c95 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 Dremoteproc_coredump.c17 struct rproc *rproc; member
24 * @rproc: the remote processor handle
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()
39 * @rproc: handle of a remote processor
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()
67 * @rproc: handle of a remote processor
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
[all …]
H A Domap_remoteproc.c78 * struct omap_rproc_timer - data structure for a timer used by a omap rproc
96 * @num_timers: number of rproc timer(s)
97 * @num_wd_timers: number of rproc watchdog timers
98 * @timers: timer(s) info used by rproc
101 * @rproc: rproc handle
118 struct rproc *rproc; member
186 * @timer: handle to a OMAP rproc timer
202 * @timer: handle to a OMAP rproc timer
219 * @timer: handle to a OMAP rproc timer
234 * @timer: handle to a OMAP rproc timer
[all …]
H A Dremoteproc_debugfs.c45 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()
122 * We will most probably improve the rproc tracing facilities later on,
[all …]
H A Dxlnx_r5_remoteproc.c140 * @rproc: rproc handle
153 struct rproc *rproc; member
176 * @id: rproc->notify id
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()
323 * @rproc: r5 core's corresponding rproc structure
[all …]
H A Dremoteproc_virtio.c57 static struct rproc *vdev_to_rproc(struct virtio_device *vdev) in vdev_to_rproc()
61 return rvdev->rproc; in vdev_to_rproc()
68 struct rproc *rproc = rvring->rvdev->rproc; in rproc_virtio_notify() local
71 dev_dbg(&rproc->dev, "kicking vq index: %d\n", notifyid); in rproc_virtio_notify()
73 rproc->ops->kick(rproc, notifyid); in rproc_virtio_notify()
79 * @rproc: handle to the remote processor
80 * @notifyid: index of the signalled virtqueue (unique per this @rproc)
82 * This function should be called by the platform-specific rproc driver,
89 irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int notifyid) in rproc_vq_interrupt() argument
93 dev_dbg(&rproc->dev, "vq index %d is interrupted\n", notifyid); in rproc_vq_interrupt()
[all …]
H A Dingenic_rproc.c69 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 Dst_slim_rproc.c3 * SLIM core rproc driver
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()
[all …]
H A Dremoteproc_elf_loader.c30 * @rproc: the remote processor handle
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;
118 * rproc_elf_get_boot_addr() - Get rproc's boot address.
119 * @rproc: the remote processor handle
128 u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw) argument
136 * @rproc: remote processor which will be booted using these fw segments
160 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) argument
162 struct device *dev = &rproc->dev;
[all …]
H A Dqcom_wcnss.c68 struct rproc *rproc; member
155 static int wcnss_load(struct rproc *rproc, const struct firmware *fw) in wcnss_load() argument
157 struct qcom_wcnss *wcnss = rproc->priv; in wcnss_load()
160 ret = qcom_mdt_load(wcnss->dev, fw, rproc->firmware, WCNSS_PAS_ID, in wcnss_load()
228 static int wcnss_start(struct rproc *rproc) in wcnss_start() argument
230 struct qcom_wcnss *wcnss = rproc->priv; in wcnss_start()
294 static int wcnss_stop(struct rproc *rproc) in wcnss_stop() argument
296 struct qcom_wcnss *wcnss = rproc->priv; in wcnss_stop()
321 static void *wcnss_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem) in wcnss_da_to_va() argument
323 struct qcom_wcnss *wcnss = rproc->priv; in wcnss_da_to_va()
[all …]
H A Dqcom_q6v5.h11 struct rproc;
17 struct rproc *rproc; member
46 struct rproc *rproc, int crash_reason, const char *load_state,
/linux/include/linux/
H A Dremoteproc.h146 * needed to map it (in case @rproc is using an IOMMU). Reducing the TLB
246 * @notifyid: a unique rproc-wide notify index for this vring. This notify
269 * @notifyid: a unique rproc-wide notify index for this vdev. This notify
287 * to statically allocate a vdev upon registration of the rproc (dynamic vdev
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);
[all …]
H A Dpruss_driver.h108 struct pruss *pruss_get(struct rproc *rproc);
124 static inline struct pruss *pruss_get(struct rproc *rproc) in pruss_get() argument
/linux/include/linux/remoteproc/
H A Dpruss.h15 #define PRU_RPROC_DRVNAME "pru-rproc"
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 Dst_slim_rproc.h3 * SLIM core rproc driver header
34 * @rproc: rproc handle
41 struct rproc *rproc; member
/linux/Documentation/devicetree/bindings/bus/
H A Dxlnx,versal-net-cdx.yaml29 rproc property (xlnx,rproc) is used to identify the remote processor
45 xlnx,rproc:
48 phandle to the remoteproc_r5 rproc node using which APU interacts
63 - xlnx,rproc
80 xlnx,rproc = <&remoteproc_r5>;
/linux/Documentation/devicetree/bindings/memory-controllers/
H A Dxlnx,versal-net-ddrmc5.yaml23 amd,rproc:
26 phandle to the remoteproc_r5 rproc node using which APU interacts
32 - amd,rproc
40 amd,rproc = <&remoteproc_r5>;
/linux/Documentation/devicetree/bindings/remoteproc/
H A Dst-rproc.txt12 "st,st231-rproc"
13 "st,st40-rproc"
27 audio_reserved: rproc@42000000 {
34 compatible = "st,st231-rproc";
/linux/Documentation/devicetree/bindings/dma/
H A Dst_fdma.txt11 - 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 Dwkup_m3_ipc.c103 aux_data_addr = rproc_da_to_va(m3_ipc->rproc, in wkup_m3_copy_aux_data()
600 ret = rproc_boot(m3_ipc->rproc); in wkup_m3_rproc_boot_thread()
614 struct rproc *m3_rproc; in wkup_m3_ipc_probe()
651 if (of_property_read_u32(dev->of_node, "ti,rproc", &rproc_phandle)) { in wkup_m3_ipc_probe()
652 dev_err(&pdev->dev, "could not get rproc phandle\n"); in wkup_m3_ipc_probe()
659 dev_err(&pdev->dev, "could not get rproc handle\n"); in wkup_m3_ipc_probe()
664 m3_ipc->rproc = m3_rproc; in wkup_m3_ipc_probe()
717 rproc_shutdown(m3_ipc_state->rproc); in wkup_m3_ipc_remove()
718 rproc_put(m3_ipc_state->rproc); in wkup_m3_ipc_remove()
734 rproc_shutdown(m3_ipc_state->rproc); in wkup_m3_ipc_resume()
[all …]
/linux/Documentation/devicetree/bindings/soc/ti/
H A Dwkup-m3-ipc.yaml64 ti,rproc:
67 phandle to the wkup_m3 rproc node so the IPC driver can boot it
107 - ti,rproc
127 ti,rproc = <&wkup_m3>;
168 ti,rproc = <&wkup_m3>;
/linux/drivers/net/ethernet/ti/icssg/
H A Dicssg_prueth.h274 * @pru: rproc instances of PRUs
275 * @rtu: rproc instances of RTUs
276 * @txpru: rproc instances of TX_PRUs
315 struct rproc *pru[PRUSS_NUM_PRUS];
316 struct rproc *rtu[PRUSS_NUM_PRUS];
317 struct rproc *txpru[PRUSS_NUM_PRUS];

12