/Linux-v4.19/drivers/remoteproc/ |
D | remoteproc_core.c | 51 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 …]
|
D | remoteproc_internal.h | 26 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 …]
|
D | omap_remoteproc.c | 47 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 …]
|
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 | remoteproc_sysfs.c | 18 #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 …]
|
D | da8xx_remoteproc.c | 70 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 …]
|
D | st_remoteproc.c | 60 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 …]
|
D | remoteproc_debugfs.c | 66 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 …]
|
D | qcom_common.c | 58 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 …]
|
D | wkup_m3_rproc.c | 56 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 …]
|
D | qcom_adsp_pil.c | 50 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 …]
|
D | remoteproc_virtio.c | 36 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 …]
|
D | remoteproc_elf_loader.c | 42 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 …]
|
D | imx_rproc.c | 87 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 …]
|
D | keystone_remoteproc.c | 65 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 …]
|
D | st_slim_rproc.c | 116 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 …]
|
D | qcom_wcnss.c | 71 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 …]
|
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_sysmon.c | 22 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 …]
|
D | qcom_q6v5.h | 9 struct rproc; 14 struct rproc *rproc; member 38 struct rproc *rproc, int crash_reason,
|
D | qcom_q6v5_pil.c | 141 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 …]
|
D | qcom_q6v5.c | 70 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/ |
D | remoteproc.h | 326 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/ |
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 …]
|
/Linux-v4.19/Documentation/devicetree/bindings/remoteproc/ |
D | st-rproc.txt | 12 "st,st231-rproc" 13 "st,st40-rproc" 27 audio_reserved: rproc@42000000 { 34 compatible = "st,st231-rproc";
|