/Linux-v5.10/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); 40 struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc, 42 void rproc_delete_debug_dir(struct rproc *rproc); 43 void rproc_create_debug_dir(struct rproc *rproc); 53 void rproc_coredump_cleanup(struct rproc *rproc); 54 void rproc_coredump(struct rproc *rproc); 59 int rproc_char_device_add(struct rproc *rproc); 60 void rproc_char_device_remove(struct rproc *rproc); [all …]
|
D | remoteproc_core.c | 51 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, 87 struct rproc *rproc = token; in rproc_iommu_fault() local 91 rproc_report_crash(rproc, RPROC_MMUFAULT); in rproc_iommu_fault() 100 static int rproc_enable_iommu(struct rproc *rproc) in rproc_enable_iommu() argument 103 struct device *dev = rproc->dev.parent; in rproc_enable_iommu() 106 if (!rproc->has_iommu) { in rproc_enable_iommu() 117 iommu_set_fault_handler(domain, rproc_iommu_fault, rproc); in rproc_enable_iommu() 125 rproc->domain = domain; in rproc_enable_iommu() [all …]
|
D | remoteproc_cdev.c | 23 struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev); in rproc_cdev_write() local 35 if (rproc->state == RPROC_RUNNING) in rproc_cdev_write() 38 ret = rproc_boot(rproc); in rproc_cdev_write() 40 if (rproc->state != RPROC_RUNNING) in rproc_cdev_write() 43 rproc_shutdown(rproc); in rproc_cdev_write() 45 dev_err(&rproc->dev, "Unrecognized option\n"); in rproc_cdev_write() 54 struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev); in rproc_device_ioctl() local 63 rproc->cdev_put_on_release = !!param; in rproc_device_ioctl() 66 param = (s32)rproc->cdev_put_on_release; in rproc_device_ioctl() 72 dev_err(&rproc->dev, "Unsupported ioctl\n"); in rproc_device_ioctl() [all …]
|
D | remoteproc_sysfs.c | 11 #define to_rproc(d) container_of(d, struct rproc, dev) 16 struct rproc *rproc = to_rproc(dev); in recovery_show() local 18 return sprintf(buf, "%s", rproc->recovery_disabled ? "disabled\n" : "enabled\n"); in recovery_show() 49 struct rproc *rproc = to_rproc(dev); in recovery_store() local 53 rproc->recovery_disabled = false; in recovery_store() 54 rproc_trigger_recovery(rproc); in recovery_store() 56 rproc->recovery_disabled = true; in recovery_store() 59 rproc_trigger_recovery(rproc); in recovery_store() 83 struct rproc *rproc = to_rproc(dev); in coredump_show() local 85 return sprintf(buf, "%s\n", rproc_coredump_str[rproc->dump_conf]); in coredump_show() [all …]
|
D | stm32_rproc.c | 94 static int stm32_rproc_pa_to_da(struct rproc *rproc, phys_addr_t pa, u64 *da) in stm32_rproc_pa_to_da() argument 97 struct stm32_rproc *ddata = rproc->priv; in stm32_rproc_pa_to_da() 107 dev_dbg(rproc->dev.parent, "pa %pa to da %llx\n", &pa, *da); in stm32_rproc_pa_to_da() 114 static int stm32_rproc_mem_alloc(struct rproc *rproc, in stm32_rproc_mem_alloc() argument 117 struct device *dev = rproc->dev.parent; in stm32_rproc_mem_alloc() 134 static int stm32_rproc_mem_release(struct rproc *rproc, in stm32_rproc_mem_release() argument 137 dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma); in stm32_rproc_mem_release() 196 static int stm32_rproc_mbox_idx(struct rproc *rproc, const unsigned char *name) in stm32_rproc_mbox_idx() argument 198 struct stm32_rproc *ddata = rproc->priv; in stm32_rproc_mbox_idx() 205 dev_err(&rproc->dev, "mailbox %s not found\n", name); in stm32_rproc_mbox_idx() [all …]
|
D | remoteproc_coredump.c | 17 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() 38 * @rproc: handle of a remote processor 47 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size) in rproc_coredump_add_segment() argument 58 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_segment() 66 * @rproc: handle of a remote processor 78 int rproc_coredump_add_custom_segment(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument 80 void (*dumpfn)(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument [all …]
|
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 | omap_remoteproc.c | 73 * struct omap_rproc_timer - data structure for a timer used by a omap rproc 91 * @num_timers: number of rproc timer(s) 92 * @num_wd_timers: number of rproc watchdog timers 93 * @timers: timer(s) info used by rproc 96 * @rproc: rproc handle 113 struct rproc *rproc; member 181 * @timer: handle to a OMAP rproc timer 197 * @timer: handle to a OMAP rproc timer 214 * @timer: handle to a OMAP rproc timer 229 * @timer: handle to a OMAP rproc timer [all …]
|
D | qcom_common.h | 36 void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink, 38 void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink); 40 int qcom_register_dump_segments(struct rproc *rproc, const struct firmware *fw); 42 void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd); 43 void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd); 45 void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr, 47 void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr); 50 struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, 55 static inline struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, in qcom_add_sysmon_subdev() argument
|
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() 122 * We will most probably improve the rproc tracing facilities later on, [all …]
|
D | qcom_common.c | 62 * qcom_add_glink_subdev() - try to add a GLINK subdevice to rproc 63 * @rproc: rproc handle to parent the subdevice 67 void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink, in qcom_add_glink_subdev() argument 70 struct device *dev = &rproc->dev; in qcom_add_glink_subdev() 85 rproc_add_subdev(rproc, &glink->subdev); in qcom_add_glink_subdev() 90 * qcom_remove_glink_subdev() - remove a GLINK subdevice from rproc 91 * @rproc: rproc handle 94 void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink) in qcom_remove_glink_subdev() argument 99 rproc_remove_subdev(rproc, &glink->subdev); in qcom_remove_glink_subdev() 107 * @rproc: remoteproc handle [all …]
|
D | da8xx_remoteproc.c | 26 "Name of DSP firmware file in /lib/firmware (if not specified defaults to 'rproc-dsp-fw')"); 56 * @rproc: rproc handle 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() [all …]
|
D | ingenic_rproc.c | 64 static int ingenic_rproc_prepare(struct rproc *rproc) in ingenic_rproc_prepare() argument 66 struct vpu *vpu = rproc->priv; in ingenic_rproc_prepare() 77 static int ingenic_rproc_unprepare(struct rproc *rproc) in ingenic_rproc_unprepare() argument 79 struct vpu *vpu = rproc->priv; in ingenic_rproc_unprepare() 86 static int ingenic_rproc_start(struct rproc *rproc) in ingenic_rproc_start() argument 88 struct vpu *vpu = rproc->priv; in ingenic_rproc_start() 100 static int ingenic_rproc_stop(struct rproc *rproc) in ingenic_rproc_stop() argument 102 struct vpu *vpu = rproc->priv; in ingenic_rproc_stop() 112 static void ingenic_rproc_kick(struct rproc *rproc, int vqid) in ingenic_rproc_kick() argument 114 struct vpu *vpu = rproc->priv; in ingenic_rproc_kick() [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() 41 * @rproc: handle to the remote processor 42 * @notifyid: index of the signalled virtqueue (unique per this @rproc) 44 * This function should be called by the platform-specific rproc driver, 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 [all …]
|
D | wkup_m3_rproc.c | 43 * @rproc: rproc handle 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, size_t 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() [all …]
|
D | st_slim_rproc.c | 3 * SLIM core rproc driver 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, size_t len) in slim_rproc_da_to_va() argument 179 struct st_slim_rproc *slim_rproc = rproc->priv; in slim_rproc_da_to_va() [all …]
|
D | remoteproc_elf_loader.c | 30 * @rproc: the remote processor handle 35 int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw) argument 37 const char *name = rproc->firmware; 38 struct device *dev = &rproc->dev; 116 * rproc_elf_get_boot_addr() - Get rproc's boot address. 117 * @rproc: the remote processor handle 126 u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw) argument 134 * @rproc: remote processor which will be booted using these fw segments 156 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw) argument 158 struct device *dev = &rproc->dev; [all …]
|
D | qcom_q6v5_adsp.c | 68 struct rproc *rproc; member 166 static int adsp_load(struct rproc *rproc, const struct firmware *fw) in adsp_load() argument 168 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_load() 171 ret = qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, 0, in adsp_load() 182 static int adsp_start(struct rproc *rproc) in adsp_start() argument 184 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_start() 261 static int adsp_stop(struct rproc *rproc) in adsp_stop() argument 263 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_stop() 282 static void *adsp_da_to_va(struct rproc *rproc, u64 da, size_t len) in adsp_da_to_va() argument 284 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_da_to_va() [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, size_t 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%zx va = 0x%p\n", in imx_rproc_da_to_va() 318 struct rproc *rproc; in imx_rproc_probe() local 319 struct regmap_config config = { .name = "imx-rproc" }; in imx_rproc_probe() [all …]
|
D | keystone_remoteproc.c | 44 * @rproc: remoteproc device handle 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() 165 * This function will be invoked only after the firmware for this rproc 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 [all …]
|
D | qcom_q6v5_pas.c | 49 struct rproc *rproc; member 119 static int adsp_load(struct rproc *rproc, const struct firmware *fw) in adsp_load() argument 121 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_load() 124 ret = qcom_mdt_load(adsp->dev, fw, rproc->firmware, adsp->pas_id, in adsp_load() 135 static int adsp_start(struct rproc *rproc) in adsp_start() argument 137 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_start() 211 static int adsp_stop(struct rproc *rproc) in adsp_stop() argument 213 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_stop() 233 static void *adsp_da_to_va(struct rproc *rproc, u64 da, size_t len) in adsp_da_to_va() argument 235 struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv; in adsp_da_to_va() [all …]
|
D | qcom_wcnss.c | 64 struct rproc *rproc; member 146 static int wcnss_load(struct rproc *rproc, const struct firmware *fw) in wcnss_load() argument 148 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_load() 151 ret = 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, size_t len) in wcnss_da_to_va() argument 300 struct qcom_wcnss *wcnss = (struct qcom_wcnss *)rproc->priv; in wcnss_da_to_va() [all …]
|
D | ti_k3_dsp_remoteproc.c | 67 * @rproc: remoteproc device handle 82 struct rproc *rproc; member 114 struct device *dev = kproc->rproc->dev.parent; in k3_dsp_rproc_mbox_callback() 115 const char *name = kproc->rproc->name; in k3_dsp_rproc_mbox_callback() 126 dev_err(dev, "K3 DSP rproc %s crashed\n", name); in k3_dsp_rproc_mbox_callback() 135 if (msg > kproc->rproc->max_notifyid) { in k3_dsp_rproc_mbox_callback() 140 if (rproc_vq_interrupt(kproc->rproc, msg) == IRQ_NONE) in k3_dsp_rproc_mbox_callback() 151 static void k3_dsp_rproc_kick(struct rproc *rproc, int vqid) in k3_dsp_rproc_kick() argument 153 struct k3_dsp_rproc *kproc = rproc->priv; in k3_dsp_rproc_kick() 154 struct device *dev = rproc->dev.parent; in k3_dsp_rproc_kick() [all …]
|
/Linux-v5.10/include/linux/ |
D | remoteproc.h | 146 * needed to map it (in case @rproc is using an IOMMU). Reducing the TLB 246 * @notifyid is a unique rproc-wide notify index for this vring. This notify 269 * @notifyid is a unique rproc-wide notify index for this vdev. This notify 287 * to statically allocate a vdev upon registration of the rproc (dynamic vdev 313 struct rproc; 341 int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem); 342 int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem); 380 int (*prepare)(struct rproc *rproc); 381 int (*unprepare)(struct rproc *rproc); 382 int (*start)(struct rproc *rproc); [all …]
|
/Linux-v5.10/Documentation/staging/ |
D | remoteproc.rst | 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 …]
|