Home
last modified time | relevance | path

Searched refs:rproc (Results 1 – 25 of 40) sorted by relevance

12

/Linux-v4.19/drivers/remoteproc/
Dremoteproc_core.c51 typedef int (*rproc_handle_resources_t)(struct rproc *rproc,
53 typedef int (*rproc_handle_resource_t)(struct rproc *rproc,
84 struct rproc *rproc = token; in rproc_iommu_fault() local
88 rproc_report_crash(rproc, RPROC_MMUFAULT); in rproc_iommu_fault()
97 static int rproc_enable_iommu(struct rproc *rproc) in rproc_enable_iommu() argument
100 struct device *dev = rproc->dev.parent; in rproc_enable_iommu()
103 if (!rproc->has_iommu) { in rproc_enable_iommu()
114 iommu_set_fault_handler(domain, rproc_iommu_fault, rproc); in rproc_enable_iommu()
122 rproc->domain = domain; in rproc_enable_iommu()
131 static void rproc_disable_iommu(struct rproc *rproc) in rproc_disable_iommu() argument
[all …]
Dremoteproc_internal.h26 struct rproc;
30 irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int vq_id);
39 struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc,
41 void rproc_delete_debug_dir(struct rproc *rproc);
42 void rproc_create_debug_dir(struct rproc *rproc);
54 void *rproc_da_to_va(struct rproc *rproc, u64 da, int len);
55 int rproc_trigger_recovery(struct rproc *rproc);
57 int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw);
58 u32 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw);
59 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw);
[all …]
Domap_remoteproc.c47 struct rproc *rproc; member
68 struct device *dev = oproc->rproc->dev.parent; in omap_rproc_mbox_callback()
69 const char *name = oproc->rproc->name; in omap_rproc_mbox_callback()
84 if (rproc_vq_interrupt(oproc->rproc, msg) == IRQ_NONE) in omap_rproc_mbox_callback()
90 static void omap_rproc_kick(struct rproc *rproc, int vqid) in omap_rproc_kick() argument
92 struct omap_rproc *oproc = rproc->priv; in omap_rproc_kick()
93 struct device *dev = rproc->dev.parent; in omap_rproc_kick()
110 static int omap_rproc_start(struct rproc *rproc) in omap_rproc_start() argument
112 struct omap_rproc *oproc = rproc->priv; in omap_rproc_start()
113 struct device *dev = rproc->dev.parent; in omap_rproc_start()
[all …]
Dqcom_common.h33 void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
34 void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
36 int qcom_register_dump_segments(struct rproc *rproc, const struct firmware *fw);
38 void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd);
39 void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd);
41 void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
43 void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr);
46 struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
51 static inline struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, in qcom_add_sysmon_subdev() argument
Dremoteproc_sysfs.c18 #define to_rproc(d) container_of(d, struct rproc, dev)
24 struct rproc *rproc = to_rproc(dev); in firmware_show() local
26 return sprintf(buf, "%s\n", rproc->firmware); in firmware_show()
34 struct rproc *rproc = to_rproc(dev); in firmware_store() local
38 err = mutex_lock_interruptible(&rproc->lock); in firmware_store()
40 dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, err); in firmware_store()
44 if (rproc->state != RPROC_OFFLINE) { in firmware_store()
58 kfree(rproc->firmware); in firmware_store()
59 rproc->firmware = p; in firmware_store()
61 mutex_unlock(&rproc->lock); in firmware_store()
[all …]
Dda8xx_remoteproc.c70 struct rproc *rproc; member
90 struct rproc *rproc = (struct rproc *)p; in handle_event() local
93 rproc_vq_interrupt(rproc, 0); in handle_event()
94 rproc_vq_interrupt(rproc, 1); in handle_event()
110 struct rproc *rproc = (struct rproc *)p; in da8xx_rproc_callback() local
111 struct da8xx_rproc *drproc = (struct da8xx_rproc *)rproc->priv; in da8xx_rproc_callback()
136 static int da8xx_rproc_start(struct rproc *rproc) in da8xx_rproc_start() argument
138 struct device *dev = rproc->dev.parent; in da8xx_rproc_start()
139 struct da8xx_rproc *drproc = (struct da8xx_rproc *)rproc->priv; in da8xx_rproc_start()
145 if (rproc->bootaddr & 0x3ff) { in da8xx_rproc_start()
[all …]
Dst_remoteproc.c60 struct rproc *rproc = dev_get_drvdata(dev); in st_rproc_mbox_callback() local
62 if (rproc_vq_interrupt(rproc, msg) == IRQ_NONE) in st_rproc_mbox_callback()
78 static void st_rproc_kick(struct rproc *rproc, int vqid) in st_rproc_kick() argument
80 struct st_rproc *ddata = rproc->priv; in st_rproc_kick()
81 struct device *dev = rproc->dev.parent; in st_rproc_kick()
94 static int st_rproc_start(struct rproc *rproc) in st_rproc_start() argument
96 struct st_rproc *ddata = rproc->priv; in st_rproc_start()
100 ddata->config->bootaddr_mask, rproc->bootaddr); in st_rproc_start()
104 dev_err(&rproc->dev, "Failed to enable clock\n"); in st_rproc_start()
111 dev_err(&rproc->dev, "Failed to deassert S/W Reset\n"); in st_rproc_start()
[all …]
Dremoteproc_debugfs.c66 struct rproc *rproc = filp->private_data; in rproc_name_read() local
71 i = scnprintf(buf, sizeof(buf), "%.98s\n", rproc->name); in rproc_name_read()
86 struct rproc *rproc = filp->private_data; in rproc_recovery_read() local
87 char *buf = rproc->recovery_disabled ? "disabled\n" : "enabled\n"; in rproc_recovery_read()
120 struct rproc *rproc = filp->private_data; in rproc_recovery_write() local
136 rproc->recovery_disabled = false; in rproc_recovery_write()
138 if (rproc->state == RPROC_CRASHED) in rproc_recovery_write()
139 rproc_trigger_recovery(rproc); in rproc_recovery_write()
141 rproc->recovery_disabled = true; in rproc_recovery_write()
144 if (rproc->state == RPROC_CRASHED) in rproc_recovery_write()
[all …]
Dqcom_common.c58 void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink) in qcom_add_glink_subdev() argument
60 struct device *dev = &rproc->dev; in qcom_add_glink_subdev()
70 rproc_add_subdev(rproc, &glink->subdev); in qcom_add_glink_subdev()
79 void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink) in qcom_remove_glink_subdev() argument
84 rproc_remove_subdev(rproc, &glink->subdev); in qcom_remove_glink_subdev()
98 int qcom_register_dump_segments(struct rproc *rproc, in qcom_register_dump_segments() argument
122 ret = rproc_coredump_add_segment(rproc, phdr->p_paddr, in qcom_register_dump_segments()
154 void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd) in qcom_add_smd_subdev() argument
156 struct device *dev = &rproc->dev; in qcom_add_smd_subdev()
166 rproc_add_subdev(rproc, &smd->subdev); in qcom_add_smd_subdev()
[all …]
Dwkup_m3_rproc.c56 struct rproc *rproc; member
61 static int wkup_m3_rproc_start(struct rproc *rproc) in wkup_m3_rproc_start() argument
63 struct wkup_m3_rproc *wkupm3 = rproc->priv; in wkup_m3_rproc_start()
76 static int wkup_m3_rproc_stop(struct rproc *rproc) in wkup_m3_rproc_stop() argument
78 struct wkup_m3_rproc *wkupm3 = rproc->priv; in wkup_m3_rproc_stop()
91 static void *wkup_m3_rproc_da_to_va(struct rproc *rproc, u64 da, int len) in wkup_m3_rproc_da_to_va() argument
93 struct wkup_m3_rproc *wkupm3 = rproc->priv; in wkup_m3_rproc_da_to_va()
135 struct rproc *rproc; in wkup_m3_rproc_probe() local
163 rproc = rproc_alloc(dev, "wkup_m3", &wkup_m3_rproc_ops, in wkup_m3_rproc_probe()
165 if (!rproc) { in wkup_m3_rproc_probe()
[all …]
Dqcom_adsp_pil.c50 struct rproc *rproc; member
78 static int adsp_load(struct rproc *rproc, const struct firmware *fw) in adsp_load() argument
80 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_load()
82 return qcom_mdt_load(adsp->dev, fw, rproc->firmware, adsp->pas_id, in adsp_load()
88 static int adsp_start(struct rproc *rproc) in adsp_start() argument
90 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_start()
149 static int adsp_stop(struct rproc *rproc) in adsp_stop() argument
151 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_stop()
170 static void *adsp_da_to_va(struct rproc *rproc, u64 da, int len) in adsp_da_to_va() argument
172 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_da_to_va()
[all …]
Dremoteproc_virtio.c36 struct rproc *rproc = rvring->rvdev->rproc; in rproc_virtio_notify() local
39 dev_dbg(&rproc->dev, "kicking vq index: %d\n", notifyid); in rproc_virtio_notify()
41 rproc->ops->kick(rproc, notifyid); in rproc_virtio_notify()
57 irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int notifyid) in rproc_vq_interrupt() argument
61 dev_dbg(&rproc->dev, "vq index %d is interrupted\n", notifyid); in rproc_vq_interrupt()
63 rvring = idr_find(&rproc->notifyids, notifyid); in rproc_vq_interrupt()
77 struct rproc *rproc = vdev_to_rproc(vdev); in rp_find_vq() local
78 struct device *dev = &rproc->dev; in rp_find_vq()
167 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; in rproc_virtio_get_status()
177 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; in rproc_virtio_set_status()
[all …]
Dremoteproc_elf_loader.c42 int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw) argument
44 const char *name = rproc->firmware;
45 struct device *dev = &rproc->dev;
113 u32 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw) argument
145 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) argument
147 struct device *dev = &rproc->dev;
185 ptr = rproc_da_to_va(rproc, da, memsz);
280 int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw) argument
284 struct device *dev = &rproc->dev;
304 rproc->cached_table = kmemdup(table, tablesz, GFP_KERNEL);
[all …]
Dimx_rproc.c87 struct rproc *rproc; member
161 static int imx_rproc_start(struct rproc *rproc) in imx_rproc_start() argument
163 struct imx_rproc *priv = rproc->priv; in imx_rproc_start()
176 static int imx_rproc_stop(struct rproc *rproc) in imx_rproc_stop() argument
178 struct imx_rproc *priv = rproc->priv; in imx_rproc_stop()
214 static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, int len) in imx_rproc_da_to_va() argument
216 struct imx_rproc *priv = rproc->priv; in imx_rproc_da_to_va()
241 dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%x va = 0x%p\n", da, len, va); in imx_rproc_da_to_va()
320 struct rproc *rproc; in imx_rproc_probe() local
334 rproc = rproc_alloc(dev, "imx-rproc", &imx_rproc_ops, in imx_rproc_probe()
[all …]
Dkeystone_remoteproc.c65 struct rproc *rproc; member
121 rproc_report_crash(ksproc->rproc, RPROC_FATAL_ERROR); in keystone_rproc_exception_interrupt()
154 rproc_vq_interrupt(ksproc->rproc, 0); in handle_event()
155 rproc_vq_interrupt(ksproc->rproc, 1); in handle_event()
177 static int keystone_rproc_start(struct rproc *rproc) in keystone_rproc_start() argument
179 struct keystone_rproc *ksproc = rproc->priv; in keystone_rproc_start()
200 ret = keystone_rproc_dsp_boot(ksproc, rproc->bootaddr); in keystone_rproc_start()
221 static int keystone_rproc_stop(struct rproc *rproc) in keystone_rproc_stop() argument
223 struct keystone_rproc *ksproc = rproc->priv; in keystone_rproc_stop()
239 static void keystone_rproc_kick(struct rproc *rproc, int vqid) in keystone_rproc_kick() argument
[all …]
Dst_slim_rproc.c116 static int slim_rproc_start(struct rproc *rproc) in slim_rproc_start() argument
118 struct device *dev = &rproc->dev; in slim_rproc_start()
119 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_start()
158 static int slim_rproc_stop(struct rproc *rproc) in slim_rproc_stop() argument
160 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_stop()
174 dev_warn(&rproc->dev, "Failed to disable SLIM"); in slim_rproc_stop()
176 dev_dbg(&rproc->dev, "slim stopped\n"); in slim_rproc_stop()
181 static void *slim_rproc_da_to_va(struct rproc *rproc, u64 da, int len) in slim_rproc_da_to_va() argument
183 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_da_to_va()
198 dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%x va = 0x%pK\n", in slim_rproc_da_to_va()
[all …]
Dqcom_wcnss.c71 struct rproc *rproc; member
153 static int wcnss_load(struct rproc *rproc, const struct firmware *fw) in wcnss_load() argument
155 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_load()
157 return qcom_mdt_load(wcnss->dev, fw, rproc->firmware, WCNSS_PAS_ID, in wcnss_load()
219 static int wcnss_start(struct rproc *rproc) in wcnss_start() argument
221 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_start()
271 static int wcnss_stop(struct rproc *rproc) in wcnss_stop() argument
273 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_stop()
298 static void *wcnss_da_to_va(struct rproc *rproc, u64 da, int len) in wcnss_da_to_va() argument
300 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_da_to_va()
[all …]
Dqcom_q6v5_wcss.c180 static int q6v5_wcss_start(struct rproc *rproc) in q6v5_wcss_start() argument
182 struct q6v5_wcss *wcss = rproc->priv; in q6v5_wcss_start()
215 writel(rproc->bootaddr >> 4, wcss->reg_base + Q6SS_RST_EVB); in q6v5_wcss_start()
383 static int q6v5_wcss_stop(struct rproc *rproc) in q6v5_wcss_stop() argument
385 struct q6v5_wcss *wcss = rproc->priv; in q6v5_wcss_stop()
409 static void *q6v5_wcss_da_to_va(struct rproc *rproc, u64 da, int len) in q6v5_wcss_da_to_va() argument
411 struct q6v5_wcss *wcss = rproc->priv; in q6v5_wcss_da_to_va()
421 static int q6v5_wcss_load(struct rproc *rproc, const struct firmware *fw) in q6v5_wcss_load() argument
423 struct q6v5_wcss *wcss = rproc->priv; in q6v5_wcss_load()
425 return qcom_mdt_load_no_init(wcss->dev, fw, rproc->firmware, in q6v5_wcss_load()
[all …]
Dqcom_sysmon.c22 struct rproc *rproc; member
417 struct rproc *rproc = sysmon->rproc; in sysmon_notify() local
421 if (rproc->state != RPROC_RUNNING || !strcmp(data, sysmon->name)) { in sysmon_notify()
443 struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, in qcom_add_sysmon_subdev() argument
454 sysmon->dev = rproc->dev.parent; in qcom_add_sysmon_subdev()
455 sysmon->rproc = rproc; in qcom_add_sysmon_subdev()
475 rproc_add_subdev(rproc, &sysmon->subdev); in qcom_add_sysmon_subdev()
503 rproc_remove_subdev(sysmon->rproc, &sysmon->subdev); in qcom_remove_sysmon_subdev()
523 struct rproc *rproc; in sysmon_probe() local
525 rproc = rproc_get_by_child(&rpdev->dev); in sysmon_probe()
[all …]
Dqcom_q6v5.h9 struct rproc;
14 struct rproc *rproc; member
38 struct rproc *rproc, int crash_reason,
Dqcom_q6v5_pil.c141 struct rproc *rproc; member
339 static int q6v5_load(struct rproc *rproc, const struct firmware *fw) in q6v5_load() argument
341 struct q6v5 *qproc = rproc->priv; in q6v5_load()
787 static int q6v5_start(struct rproc *rproc) in q6v5_start() argument
789 struct q6v5 *qproc = (struct q6v5 *)rproc->priv; in q6v5_start()
929 static int q6v5_stop(struct rproc *rproc) in q6v5_stop() argument
931 struct q6v5 *qproc = (struct q6v5 *)rproc->priv; in q6v5_stop()
979 static void *q6v5_da_to_va(struct rproc *rproc, u64 da, int len) in q6v5_da_to_va() argument
981 struct q6v5 *qproc = rproc->priv; in q6v5_da_to_va()
1128 struct rproc *rproc; in q6v5_probe() local
[all …]
Dqcom_q6v5.c70 rproc_report_crash(q6v5->rproc, RPROC_WATCHDOG); in q6v5_wdog_interrupt()
87 rproc_report_crash(q6v5->rproc, RPROC_FATAL_ERROR); in q6v5_fatal_interrupt()
177 struct rproc *rproc, int crash_reason, in qcom_q6v5_init() argument
182 q6v5->rproc = rproc; in qcom_q6v5_init()
/Linux-v4.19/include/linux/
Dremoteproc.h326 struct rproc;
343 int (*start)(struct rproc *rproc);
344 int (*stop)(struct rproc *rproc);
345 void (*kick)(struct rproc *rproc, int vqid);
346 void * (*da_to_va)(struct rproc *rproc, u64 da, int len);
347 int (*parse_fw)(struct rproc *rproc, const struct firmware *fw);
349 struct rproc *rproc, const struct firmware *fw);
350 int (*load)(struct rproc *rproc, const struct firmware *fw);
351 int (*sanity_check)(struct rproc *rproc, const struct firmware *fw);
352 u32 (*get_boot_addr)(struct rproc *rproc, const struct firmware *fw);
[all …]
/Linux-v4.19/Documentation/
Dremoteproc.txt37 int rproc_boot(struct rproc *rproc)
45 Note: to use this function you should already have a valid rproc
52 void rproc_shutdown(struct rproc *rproc)
55 In case @rproc is still being used by an additional user(s), then
64 we're not decrementing the rproc's refcount, only the power refcount.
65 which means that the @rproc handle stays valid even after
71 struct rproc *rproc_get_by_phandle(phandle phandle)
73 Find an rproc handle using a device tree phandle. Returns the rproc
76 decrement it back once rproc isn't needed anymore.
85 /* in case we were given a valid 'rproc' handle */
[all …]
/Linux-v4.19/Documentation/devicetree/bindings/remoteproc/
Dst-rproc.txt12 "st,st231-rproc"
13 "st,st40-rproc"
27 audio_reserved: rproc@42000000 {
34 compatible = "st,st231-rproc";

12