| /Linux-v5.4/drivers/remoteproc/ |
| D | remoteproc_internal.h | 18 struct rproc; 21 struct rproc *rproc; member 29 irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int vq_id); 38 struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc, 40 void rproc_delete_debug_dir(struct rproc *rproc); 41 void rproc_create_debug_dir(struct rproc *rproc); 53 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); [all …]
|
| D | remoteproc_core.c | 47 typedef int (*rproc_handle_resources_t)(struct rproc *rproc, 49 typedef int (*rproc_handle_resource_t)(struct rproc *rproc, 52 static int rproc_alloc_carveout(struct rproc *rproc, 54 static int rproc_release_carveout(struct rproc *rproc, 85 struct rproc *rproc = token; in rproc_iommu_fault() local 89 rproc_report_crash(rproc, RPROC_MMUFAULT); in rproc_iommu_fault() 98 static int rproc_enable_iommu(struct rproc *rproc) in rproc_enable_iommu() argument 101 struct device *dev = rproc->dev.parent; in rproc_enable_iommu() 104 if (!rproc->has_iommu) { in rproc_enable_iommu() 115 iommu_set_fault_handler(domain, rproc_iommu_fault, rproc); in rproc_enable_iommu() [all …]
|
| D | stm32_rproc.c | 74 static int stm32_rproc_pa_to_da(struct rproc *rproc, phys_addr_t pa, u64 *da) in stm32_rproc_pa_to_da() argument 77 struct stm32_rproc *ddata = rproc->priv; in stm32_rproc_pa_to_da() 87 dev_dbg(rproc->dev.parent, "pa %pa to da %llx\n", &pa, *da); in stm32_rproc_pa_to_da() 94 static int stm32_rproc_mem_alloc(struct rproc *rproc, in stm32_rproc_mem_alloc() argument 97 struct device *dev = rproc->dev.parent; in stm32_rproc_mem_alloc() 114 static int stm32_rproc_mem_release(struct rproc *rproc, in stm32_rproc_mem_release() argument 117 dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma); in stm32_rproc_mem_release() 123 static int stm32_rproc_of_memory_translations(struct rproc *rproc) in stm32_rproc_of_memory_translations() argument 125 struct device *parent, *dev = rproc->dev.parent; in stm32_rproc_of_memory_translations() 126 struct stm32_rproc *ddata = rproc->priv; in stm32_rproc_of_memory_translations() [all …]
|
| D | omap_remoteproc.c | 39 struct rproc *rproc; member 60 struct device *dev = oproc->rproc->dev.parent; in omap_rproc_mbox_callback() 61 const char *name = oproc->rproc->name; in omap_rproc_mbox_callback() 76 if (rproc_vq_interrupt(oproc->rproc, msg) == IRQ_NONE) in omap_rproc_mbox_callback() 82 static void omap_rproc_kick(struct rproc *rproc, int vqid) in omap_rproc_kick() argument 84 struct omap_rproc *oproc = rproc->priv; in omap_rproc_kick() 85 struct device *dev = rproc->dev.parent; in omap_rproc_kick() 102 static int omap_rproc_start(struct rproc *rproc) in omap_rproc_start() argument 104 struct omap_rproc *oproc = rproc->priv; in omap_rproc_start() 105 struct device *dev = rproc->dev.parent; in omap_rproc_start() [all …]
|
| D | remoteproc_sysfs.c | 10 #define to_rproc(d) container_of(d, struct rproc, dev) 16 struct rproc *rproc = to_rproc(dev); in firmware_show() local 18 return sprintf(buf, "%s\n", rproc->firmware); in firmware_show() 26 struct rproc *rproc = to_rproc(dev); in firmware_store() local 30 err = mutex_lock_interruptible(&rproc->lock); in firmware_store() 32 dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, err); in firmware_store() 36 if (rproc->state != RPROC_OFFLINE) { in firmware_store() 55 kfree(rproc->firmware); in firmware_store() 56 rproc->firmware = p; in firmware_store() 58 mutex_unlock(&rproc->lock); in firmware_store() [all …]
|
| D | qcom_common.h | 33 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
|
| D | st_remoteproc.c | 58 struct rproc *rproc = dev_get_drvdata(dev); in st_rproc_mbox_callback() local 60 if (rproc_vq_interrupt(rproc, msg) == IRQ_NONE) in st_rproc_mbox_callback() 76 static void st_rproc_kick(struct rproc *rproc, int vqid) in st_rproc_kick() argument 78 struct st_rproc *ddata = rproc->priv; in st_rproc_kick() 79 struct device *dev = rproc->dev.parent; in st_rproc_kick() 92 static int st_rproc_mem_alloc(struct rproc *rproc, in st_rproc_mem_alloc() argument 95 struct device *dev = rproc->dev.parent; in st_rproc_mem_alloc() 111 static int st_rproc_mem_release(struct rproc *rproc, in st_rproc_mem_release() argument 119 static int st_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) in st_rproc_parse_fw() argument 121 struct device *dev = rproc->dev.parent; in st_rproc_parse_fw() [all …]
|
| D | da8xx_remoteproc.c | 67 struct rproc *rproc; member 87 struct rproc *rproc = (struct rproc *)p; in handle_event() local 90 rproc_vq_interrupt(rproc, 0); in handle_event() 91 rproc_vq_interrupt(rproc, 1); in handle_event() 107 struct rproc *rproc = (struct rproc *)p; in da8xx_rproc_callback() local 108 struct da8xx_rproc *drproc = (struct da8xx_rproc *)rproc->priv; in da8xx_rproc_callback() 133 static int da8xx_rproc_start(struct rproc *rproc) in da8xx_rproc_start() argument 135 struct device *dev = rproc->dev.parent; in da8xx_rproc_start() 136 struct da8xx_rproc *drproc = (struct da8xx_rproc *)rproc->priv; in da8xx_rproc_start() 142 if (rproc->bootaddr & 0x3ff) { in da8xx_rproc_start() [all …]
|
| D | remoteproc_debugfs.c | 48 va = rproc_da_to_va(data->rproc, trace->da, trace->len); in rproc_trace_read() 71 struct rproc *rproc = filp->private_data; in rproc_name_read() local 76 i = scnprintf(buf, sizeof(buf), "%.98s\n", rproc->name); in rproc_name_read() 91 struct rproc *rproc = filp->private_data; in rproc_recovery_read() local 92 char *buf = rproc->recovery_disabled ? "disabled\n" : "enabled\n"; in rproc_recovery_read() 125 struct rproc *rproc = filp->private_data; in rproc_recovery_write() local 141 rproc->recovery_disabled = false; in rproc_recovery_write() 143 if (rproc->state == RPROC_CRASHED) in rproc_recovery_write() 144 rproc_trigger_recovery(rproc); in rproc_recovery_write() 146 rproc->recovery_disabled = true; in rproc_recovery_write() [all …]
|
| D | wkup_m3_rproc.c | 48 struct rproc *rproc; member 53 static int wkup_m3_rproc_start(struct rproc *rproc) in wkup_m3_rproc_start() argument 55 struct wkup_m3_rproc *wkupm3 = rproc->priv; in wkup_m3_rproc_start() 68 static int wkup_m3_rproc_stop(struct rproc *rproc) in wkup_m3_rproc_stop() argument 70 struct wkup_m3_rproc *wkupm3 = rproc->priv; in wkup_m3_rproc_stop() 83 static void *wkup_m3_rproc_da_to_va(struct rproc *rproc, u64 da, int len) in wkup_m3_rproc_da_to_va() argument 85 struct wkup_m3_rproc *wkupm3 = rproc->priv; in wkup_m3_rproc_da_to_va() 127 struct rproc *rproc; in wkup_m3_rproc_probe() local 155 rproc = rproc_alloc(dev, "wkup_m3", &wkup_m3_rproc_ops, in wkup_m3_rproc_probe() 157 if (!rproc) { in wkup_m3_rproc_probe() [all …]
|
| D | qcom_common.c | 50 void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink) in qcom_add_glink_subdev() argument 52 struct device *dev = &rproc->dev; in qcom_add_glink_subdev() 62 rproc_add_subdev(rproc, &glink->subdev); in qcom_add_glink_subdev() 71 void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink) in qcom_remove_glink_subdev() argument 76 rproc_remove_subdev(rproc, &glink->subdev); in qcom_remove_glink_subdev() 90 int qcom_register_dump_segments(struct rproc *rproc, in qcom_register_dump_segments() argument 114 ret = rproc_coredump_add_segment(rproc, phdr->p_paddr, in qcom_register_dump_segments() 146 void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd) in qcom_add_smd_subdev() argument 148 struct device *dev = &rproc->dev; in qcom_add_smd_subdev() 158 rproc_add_subdev(rproc, &smd->subdev); in qcom_add_smd_subdev() [all …]
|
| D | qcom_q6v5_pas.c | 42 struct rproc *rproc; member 70 static int adsp_load(struct rproc *rproc, const struct firmware *fw) in adsp_load() argument 72 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_load() 74 return qcom_mdt_load(adsp->dev, fw, rproc->firmware, adsp->pas_id, in adsp_load() 80 static int adsp_start(struct rproc *rproc) in adsp_start() argument 82 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_start() 141 static int adsp_stop(struct rproc *rproc) in adsp_stop() argument 143 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_stop() 162 static void *adsp_da_to_va(struct rproc *rproc, u64 da, int len) in adsp_da_to_va() argument 164 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_da_to_va() [all …]
|
| D | remoteproc_virtio.c | 30 struct rproc *rproc = rvring->rvdev->rproc; in rproc_virtio_notify() local 33 dev_dbg(&rproc->dev, "kicking vq index: %d\n", notifyid); in rproc_virtio_notify() 35 rproc->ops->kick(rproc, notifyid); in rproc_virtio_notify() 51 irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int notifyid) in rproc_vq_interrupt() argument 55 dev_dbg(&rproc->dev, "vq index %d is interrupted\n", notifyid); in rproc_vq_interrupt() 57 rvring = idr_find(&rproc->notifyids, notifyid); in rproc_vq_interrupt() 71 struct rproc *rproc = vdev_to_rproc(vdev); in rp_find_vq() local 72 struct device *dev = &rproc->dev; in rp_find_vq() 88 mem = rproc_find_carveout_by_name(rproc, "vdev%dvring%d", rvdev->index, in rp_find_vq() 120 rsc = (void *)rproc->table_ptr + rvdev->rsc_offset; in rp_find_vq() [all …]
|
| D | imx_rproc.c | 84 struct rproc *rproc; member 158 static int imx_rproc_start(struct rproc *rproc) in imx_rproc_start() argument 160 struct imx_rproc *priv = rproc->priv; in imx_rproc_start() 173 static int imx_rproc_stop(struct rproc *rproc) in imx_rproc_stop() argument 175 struct imx_rproc *priv = rproc->priv; in imx_rproc_stop() 211 static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, int len) in imx_rproc_da_to_va() argument 213 struct imx_rproc *priv = rproc->priv; in imx_rproc_da_to_va() 238 dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%x va = 0x%p\n", da, len, va); in imx_rproc_da_to_va() 317 struct rproc *rproc; in imx_rproc_probe() local 331 rproc = rproc_alloc(dev, "imx-rproc", &imx_rproc_ops, in imx_rproc_probe() [all …]
|
| D | remoteproc_elf_loader.c | 34 int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw) argument 36 const char *name = rproc->firmware; 37 struct device *dev = &rproc->dev; 105 u32 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw) argument 137 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) argument 139 struct device *dev = &rproc->dev; 177 ptr = rproc_da_to_va(rproc, da, memsz); 271 int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw) argument 275 struct device *dev = &rproc->dev; 295 rproc->cached_table = kmemdup(table, tablesz, GFP_KERNEL); [all …]
|
| D | keystone_remoteproc.c | 57 struct rproc *rproc; member 113 rproc_report_crash(ksproc->rproc, RPROC_FATAL_ERROR); in keystone_rproc_exception_interrupt() 146 rproc_vq_interrupt(ksproc->rproc, 0); in handle_event() 147 rproc_vq_interrupt(ksproc->rproc, 1); in handle_event() 169 static int keystone_rproc_start(struct rproc *rproc) in keystone_rproc_start() argument 171 struct keystone_rproc *ksproc = rproc->priv; in keystone_rproc_start() 192 ret = keystone_rproc_dsp_boot(ksproc, rproc->bootaddr); in keystone_rproc_start() 213 static int keystone_rproc_stop(struct rproc *rproc) in keystone_rproc_stop() argument 215 struct keystone_rproc *ksproc = rproc->priv; in keystone_rproc_stop() 231 static void keystone_rproc_kick(struct rproc *rproc, int vqid) in keystone_rproc_kick() argument [all …]
|
| D | st_slim_rproc.c | 112 static int slim_rproc_start(struct rproc *rproc) in slim_rproc_start() argument 114 struct device *dev = &rproc->dev; in slim_rproc_start() 115 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_start() 154 static int slim_rproc_stop(struct rproc *rproc) in slim_rproc_stop() argument 156 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_stop() 170 dev_warn(&rproc->dev, "Failed to disable SLIM"); in slim_rproc_stop() 172 dev_dbg(&rproc->dev, "slim stopped\n"); in slim_rproc_stop() 177 static void *slim_rproc_da_to_va(struct rproc *rproc, u64 da, int len) in slim_rproc_da_to_va() argument 179 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_da_to_va() 194 dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%x va = 0x%pK\n", in slim_rproc_da_to_va() [all …]
|
| D | qcom_q6v5_adsp.c | 67 struct rproc *rproc; member 164 static int adsp_load(struct rproc *rproc, const struct firmware *fw) in adsp_load() argument 166 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_load() 168 return qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, 0, in adsp_load() 173 static int adsp_start(struct rproc *rproc) in adsp_start() argument 175 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_start() 252 static int adsp_stop(struct rproc *rproc) in adsp_stop() argument 254 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_stop() 273 static void *adsp_da_to_va(struct rproc *rproc, u64 da, int len) in adsp_da_to_va() argument 275 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_da_to_va() [all …]
|
| D | qcom_wcnss.c | 63 struct rproc *rproc; member 145 static int wcnss_load(struct rproc *rproc, const struct firmware *fw) in wcnss_load() argument 147 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_load() 149 return qcom_mdt_load(wcnss->dev, fw, rproc->firmware, WCNSS_PAS_ID, in wcnss_load() 211 static int wcnss_start(struct rproc *rproc) in wcnss_start() argument 213 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_start() 263 static int wcnss_stop(struct rproc *rproc) in wcnss_stop() argument 265 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_stop() 290 static void *wcnss_da_to_va(struct rproc *rproc, u64 da, int len) in wcnss_da_to_va() argument 292 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_da_to_va() [all …]
|
| D | qcom_q6v5_wcss.c | 180 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 …]
|
| D | qcom_q6v5.h | 9 struct rproc; 14 struct rproc *rproc; member 38 struct rproc *rproc, int crash_reason,
|
| D | qcom_sysmon.c | 23 struct rproc *rproc; member 458 struct rproc *rproc = sysmon->rproc; in sysmon_notify() local 462 if (rproc->state != RPROC_RUNNING || !strcmp(data, sysmon->name)) { in sysmon_notify() 493 struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, in qcom_add_sysmon_subdev() argument 504 sysmon->dev = rproc->dev.parent; in qcom_add_sysmon_subdev() 505 sysmon->rproc = rproc; in qcom_add_sysmon_subdev() 549 rproc_add_subdev(rproc, &sysmon->subdev); in qcom_add_sysmon_subdev() 577 rproc_remove_subdev(sysmon->rproc, &sysmon->subdev); in qcom_remove_sysmon_subdev() 597 struct rproc *rproc; in sysmon_probe() local 599 rproc = rproc_get_by_child(&rpdev->dev); in sysmon_probe() [all …]
|
| D | qcom_q6v5_mss.c | 137 struct rproc *rproc; member 380 static int q6v5_load(struct rproc *rproc, const struct firmware *fw) in q6v5_load() argument 382 struct q6v5 *qproc = rproc->priv; in q6v5_load() 1051 static void qcom_q6v5_dump_segment(struct rproc *rproc, in qcom_q6v5_dump_segment() argument 1056 struct q6v5 *qproc = rproc->priv; in qcom_q6v5_dump_segment() 1058 void *ptr = rproc_da_to_va(rproc, segment->da, segment->size); in qcom_q6v5_dump_segment() 1078 static int q6v5_start(struct rproc *rproc) in q6v5_start() argument 1080 struct q6v5 *qproc = (struct q6v5 *)rproc->priv; in q6v5_start() 1123 static int q6v5_stop(struct rproc *rproc) in q6v5_stop() argument 1125 struct q6v5 *qproc = (struct q6v5 *)rproc->priv; in q6v5_stop() [all …]
|
| /Linux-v5.4/include/linux/ |
| D | remoteproc.h | 312 struct rproc; 340 int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem); 341 int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem); 374 int (*start)(struct rproc *rproc); 375 int (*stop)(struct rproc *rproc); 376 void (*kick)(struct rproc *rproc, int vqid); 377 void * (*da_to_va)(struct rproc *rproc, u64 da, int len); 378 int (*parse_fw)(struct rproc *rproc, const struct firmware *fw); 379 int (*handle_rsc)(struct rproc *rproc, u32 rsc_type, void *rsc, 382 struct rproc *rproc, const struct firmware *fw); [all …]
|
| /Linux-v5.4/Documentation/ |
| D | remoteproc.txt | 37 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 …]
|