Symbol: rproc
drivers/cdx/controller/cdx_rpmsg.c
52
struct rproc *rp;
drivers/dma/st_fdma.c
181
ret = rproc_boot(fdev->slim_rproc->rproc);
drivers/dma/st_fdma.c
221
rproc_shutdown(fdev->slim_rproc->rproc);
drivers/dma/st_fdma.c
291
struct rproc *rproc = fchan->fdev->slim_rproc->rproc;
drivers/dma/st_fdma.c
308
rproc_shutdown(rproc);
drivers/edac/versalnet_edac.c
873
struct rproc *rp;
drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
122
struct rproc *rproc_handle;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
133
static int prueth_start(struct rproc *rproc, const char *fw_name)
drivers/net/ethernet/ti/icssg/icssg_prueth.c
137
ret = rproc_set_firmware(rproc, fw_name);
drivers/net/ethernet/ti/icssg/icssg_prueth.c
140
return rproc_boot(rproc);
drivers/net/ethernet/ti/icssg/icssg_prueth.c
143
static void prueth_shutdown(struct rproc *rproc)
drivers/net/ethernet/ti/icssg/icssg_prueth.c
145
rproc_shutdown(rproc);
drivers/net/ethernet/ti/icssg/icssg_prueth.h
328
struct rproc *pru[PRUSS_NUM_PRUS];
drivers/net/ethernet/ti/icssg/icssg_prueth.h
329
struct rproc *rtu[PRUSS_NUM_PRUS];
drivers/net/ethernet/ti/icssg/icssg_prueth.h
330
struct rproc *txpru[PRUSS_NUM_PRUS];
drivers/net/ethernet/ti/icssm/icssm_prueth.h
209
struct rproc *pru;
drivers/net/ethernet/ti/icssm/icssm_prueth.h
244
struct rproc *pru0, *pru1;
drivers/net/wireless/ath/ath11k/ahb.c
801
struct rproc *prproc;
drivers/net/wireless/ath/ath11k/ahb.h
25
struct rproc *tgt_rproc;
drivers/net/wireless/ath/ath12k/ahb.c
819
struct rproc *prproc;
drivers/net/wireless/ath/ath12k/ahb.h
55
struct rproc *tgt_rproc;
drivers/remoteproc/da8xx_remoteproc.c
107
struct rproc *rproc = p;
drivers/remoteproc/da8xx_remoteproc.c
108
struct da8xx_rproc *drproc = rproc->priv;
drivers/remoteproc/da8xx_remoteproc.c
133
static int da8xx_rproc_start(struct rproc *rproc)
drivers/remoteproc/da8xx_remoteproc.c
135
struct device *dev = rproc->dev.parent;
drivers/remoteproc/da8xx_remoteproc.c
136
struct da8xx_rproc *drproc = rproc->priv;
drivers/remoteproc/da8xx_remoteproc.c
142
if (rproc->bootaddr & 0x3ff) {
drivers/remoteproc/da8xx_remoteproc.c
148
writel(rproc->bootaddr, drproc->bootreg);
drivers/remoteproc/da8xx_remoteproc.c
166
static int da8xx_rproc_stop(struct rproc *rproc)
drivers/remoteproc/da8xx_remoteproc.c
168
struct da8xx_rproc *drproc = rproc->priv;
drivers/remoteproc/da8xx_remoteproc.c
169
struct device *dev = rproc->dev.parent;
drivers/remoteproc/da8xx_remoteproc.c
184
static void da8xx_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/da8xx_remoteproc.c
186
struct da8xx_rproc *drproc = rproc->priv;
drivers/remoteproc/da8xx_remoteproc.c
247
struct rproc *rproc;
drivers/remoteproc/da8xx_remoteproc.c
287
rproc = devm_rproc_alloc(dev, "dsp", &da8xx_rproc_ops, da8xx_fw_name,
drivers/remoteproc/da8xx_remoteproc.c
289
if (!rproc)
drivers/remoteproc/da8xx_remoteproc.c
293
rproc->recovery_disabled = true;
drivers/remoteproc/da8xx_remoteproc.c
295
drproc = rproc->priv;
drivers/remoteproc/da8xx_remoteproc.c
296
drproc->rproc = rproc;
drivers/remoteproc/da8xx_remoteproc.c
299
rproc->has_iommu = false;
drivers/remoteproc/da8xx_remoteproc.c
308
rproc);
drivers/remoteproc/da8xx_remoteproc.c
329
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/da8xx_remoteproc.c
67
struct rproc *rproc;
drivers/remoteproc/da8xx_remoteproc.c
87
struct rproc *rproc = p;
drivers/remoteproc/da8xx_remoteproc.c
90
rproc_vq_interrupt(rproc, 0);
drivers/remoteproc/da8xx_remoteproc.c
91
rproc_vq_interrupt(rproc, 1);
drivers/remoteproc/imx_dsp_rproc.c
1003
if (rproc->state == RPROC_OFFLINE) {
drivers/remoteproc/imx_dsp_rproc.c
1004
list_for_each_entry(carveout, &rproc->carveouts, node) {
drivers/remoteproc/imx_dsp_rproc.c
1010
ret = imx_dsp_rproc_elf_load_segments(rproc, fw);
drivers/remoteproc/imx_dsp_rproc.c
1040
struct device *dev = priv->rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
1049
static int imx_dsp_rproc_mmio_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
1051
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1052
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
1066
static int imx_dsp_rproc_reset_ctrl_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
1068
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1069
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
1080
static int imx_dsp_rproc_scu_api_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
1082
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1105
return dcfg->ops->detect_mode(priv->rproc);
drivers/remoteproc/imx_dsp_rproc.c
1117
struct device *dev = priv->rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
1132
struct rproc *rproc;
drivers/remoteproc/imx_dsp_rproc.c
1144
rproc = devm_rproc_alloc(dev, "imx-dsp-rproc", &imx_dsp_rproc_ops,
drivers/remoteproc/imx_dsp_rproc.c
1146
if (!rproc)
drivers/remoteproc/imx_dsp_rproc.c
1149
priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1150
priv->rproc = rproc;
drivers/remoteproc/imx_dsp_rproc.c
1160
dev_set_drvdata(dev, rproc);
drivers/remoteproc/imx_dsp_rproc.c
1179
rproc->auto_boot = false;
drivers/remoteproc/imx_dsp_rproc.c
1180
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/imx_dsp_rproc.c
1184
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_XTENSA);
drivers/remoteproc/imx_dsp_rproc.c
1192
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/imx_dsp_rproc.c
1193
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1219
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/imx_dsp_rproc.c
1220
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1231
struct rproc *rproc = context;
drivers/remoteproc/imx_dsp_rproc.c
1238
ret = rproc_load_segments(rproc, fw);
drivers/remoteproc/imx_dsp_rproc.c
1243
ret = rproc->ops->start(rproc);
drivers/remoteproc/imx_dsp_rproc.c
1247
rproc->ops->kick(rproc, 0);
drivers/remoteproc/imx_dsp_rproc.c
1255
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/imx_dsp_rproc.c
1256
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
1260
if (rproc->state != RPROC_RUNNING)
drivers/remoteproc/imx_dsp_rproc.c
130
struct rproc *rproc;
drivers/remoteproc/imx_dsp_rproc.c
1305
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/imx_dsp_rproc.c
1312
if (rproc->state != RPROC_RUNNING)
drivers/remoteproc/imx_dsp_rproc.c
1321
rproc->firmware, dev, GFP_KERNEL,
drivers/remoteproc/imx_dsp_rproc.c
1322
rproc, imx_dsp_load_firmware);
drivers/remoteproc/imx_dsp_rproc.c
264
static int imx_dsp_rproc_ready(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
266
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
295
static int imx_dsp_rproc_handle_rsc(struct rproc *rproc, u32 rsc_type,
drivers/remoteproc/imx_dsp_rproc.c
298
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
300
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
341
static int imx_dsp_rproc_mmio_start(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
343
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
349
static int imx_dsp_rproc_reset_ctrl_start(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
351
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
356
static int imx_dsp_rproc_scu_api_start(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
358
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
360
return imx_sc_pm_cpu_start(priv->ipc_handle, IMX_SC_R_DSP, true, rproc->bootaddr);
drivers/remoteproc/imx_dsp_rproc.c
371
static int imx_dsp_rproc_start(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
373
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
376
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
382
ret = dcfg->ops->start(rproc);
drivers/remoteproc/imx_dsp_rproc.c
389
return imx_dsp_rproc_ready(rproc);
drivers/remoteproc/imx_dsp_rproc.c
394
static int imx_dsp_rproc_mmio_stop(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
396
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
402
static int imx_dsp_rproc_reset_ctrl_stop(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
404
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
409
static int imx_dsp_rproc_scu_api_stop(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
411
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
413
return imx_sc_pm_cpu_start(priv->ipc_handle, IMX_SC_R_DSP, false, rproc->bootaddr);
drivers/remoteproc/imx_dsp_rproc.c
420
static int imx_dsp_rproc_stop(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
422
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
425
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
428
if (rproc->state == RPROC_CRASHED) {
drivers/remoteproc/imx_dsp_rproc.c
436
ret = dcfg->ops->stop(rproc);
drivers/remoteproc/imx_dsp_rproc.c
501
struct rproc *rproc = priv->rproc;
drivers/remoteproc/imx_dsp_rproc.c
503
mutex_lock(&rproc->lock);
drivers/remoteproc/imx_dsp_rproc.c
505
if (rproc->state != RPROC_RUNNING)
drivers/remoteproc/imx_dsp_rproc.c
508
rproc_vq_interrupt(priv->rproc, 0);
drivers/remoteproc/imx_dsp_rproc.c
509
rproc_vq_interrupt(priv->rproc, 1);
drivers/remoteproc/imx_dsp_rproc.c
512
mutex_unlock(&rproc->lock);
drivers/remoteproc/imx_dsp_rproc.c
526
struct rproc *rproc = dev_get_drvdata(cl->dev);
drivers/remoteproc/imx_dsp_rproc.c
527
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
528
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
556
struct rproc *rproc = dev_get_drvdata(cl->dev);
drivers/remoteproc/imx_dsp_rproc.c
557
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
571
struct device *dev = priv->rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
647
static int imx_dsp_rproc_mem_alloc(struct rproc *rproc,
drivers/remoteproc/imx_dsp_rproc.c
650
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
665
static int imx_dsp_rproc_mem_release(struct rproc *rproc,
drivers/remoteproc/imx_dsp_rproc.c
684
struct rproc *rproc = priv->rproc;
drivers/remoteproc/imx_dsp_rproc.c
685
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
707
rproc_coredump_add_segment(rproc, da, att->size);
drivers/remoteproc/imx_dsp_rproc.c
711
rproc_add_carveout(rproc, mem);
drivers/remoteproc/imx_dsp_rproc.c
741
rproc_coredump_add_segment(rproc, da, resource_size(&res));
drivers/remoteproc/imx_dsp_rproc.c
742
rproc_add_carveout(rproc, mem);
drivers/remoteproc/imx_dsp_rproc.c
747
static int imx_dsp_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
749
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
750
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
765
static int imx_dsp_rproc_unprepare(struct rproc *rproc)
drivers/remoteproc/imx_dsp_rproc.c
767
pm_runtime_put_sync(rproc->dev.parent);
drivers/remoteproc/imx_dsp_rproc.c
773
static void imx_dsp_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/imx_dsp_rproc.c
775
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_dsp_rproc.c
776
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_dsp_rproc.c
898
static int imx_dsp_rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/imx_dsp_rproc.c
900
struct device *dev = &rproc->dev;
drivers/remoteproc/imx_dsp_rproc.c
949
ptr = rproc_da_to_va(rproc, da, memsz, NULL);
drivers/remoteproc/imx_dsp_rproc.c
981
static int imx_dsp_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/imx_dsp_rproc.c
983
if (rproc_elf_load_rsc_table(rproc, fw))
drivers/remoteproc/imx_dsp_rproc.c
984
dev_warn(&rproc->dev, "no resource table found for this firmware\n");
drivers/remoteproc/imx_dsp_rproc.c
989
static int imx_dsp_rproc_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/imx_dsp_rproc.c
991
struct imx_dsp_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
100
static int imx_rproc_xtr_mbox_init(struct rproc *rproc, bool tx_block);
drivers/remoteproc/imx_rproc.c
1020
imx_rproc_stop(priv->rproc);
drivers/remoteproc/imx_rproc.c
1032
priv->rproc->state = RPROC_DETACHED;
drivers/remoteproc/imx_rproc.c
1037
static int imx_rproc_scu_api_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
1039
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
1073
priv->rproc->state = RPROC_DETACHED;
drivers/remoteproc/imx_rproc.c
1074
priv->rproc->recovery_disabled = false;
drivers/remoteproc/imx_rproc.c
1075
rproc_set_feature(priv->rproc, RPROC_FEAT_ATTACH_ON_RECOVERY);
drivers/remoteproc/imx_rproc.c
1105
static int imx_rproc_sm_lmm_check(struct rproc *rproc, bool started)
drivers/remoteproc/imx_rproc.c
1107
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
111
struct rproc *rproc;
drivers/remoteproc/imx_rproc.c
1141
static int imx_rproc_sm_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
1143
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
1157
priv->rproc->state = RPROC_DETACHED;
drivers/remoteproc/imx_rproc.c
1180
return imx_rproc_sm_lmm_check(rproc, started);
drivers/remoteproc/imx_rproc.c
1190
priv->rproc->state = RPROC_DETACHED;
drivers/remoteproc/imx_rproc.c
1194
return priv->ops->detect_mode(priv->rproc);
drivers/remoteproc/imx_rproc.c
1199
struct rproc *rproc = data->cb_data;
drivers/remoteproc/imx_rproc.c
1202
imx_rproc_free_mbox(rproc);
drivers/remoteproc/imx_rproc.c
1204
ret = imx_rproc_xtr_mbox_init(rproc, false);
drivers/remoteproc/imx_rproc.c
1206
dev_err(&rproc->dev, "Failed to request non-blocking mbox\n");
drivers/remoteproc/imx_rproc.c
1225
struct rproc *rproc;
drivers/remoteproc/imx_rproc.c
1230
rproc = devm_rproc_alloc(dev, "imx-rproc", &imx_rproc_ops,
drivers/remoteproc/imx_rproc.c
1232
if (!rproc)
drivers/remoteproc/imx_rproc.c
1239
priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
1240
priv->rproc = rproc;
drivers/remoteproc/imx_rproc.c
1247
dev_set_drvdata(dev, rproc);
drivers/remoteproc/imx_rproc.c
1260
ret = imx_rproc_xtr_mbox_init(rproc, true);
drivers/remoteproc/imx_rproc.c
1264
ret = devm_add_action_or_reset(dev, imx_rproc_free_mbox, rproc);
drivers/remoteproc/imx_rproc.c
1287
if (rproc->state != RPROC_DETACHED)
drivers/remoteproc/imx_rproc.c
1288
rproc->auto_boot = of_property_read_bool(np, "fsl,auto-boot");
drivers/remoteproc/imx_rproc.c
1299
imx_rproc_sys_off_handler, rproc);
drivers/remoteproc/imx_rproc.c
1305
imx_rproc_sys_off_handler, rproc);
drivers/remoteproc/imx_rproc.c
1315
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/imx_rproc.c
1332
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/imx_rproc.c
1333
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
315
static int imx_rproc_arm_smc_start(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
324
static int imx_rproc_mmio_start(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
326
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
335
static int imx_rproc_scu_api_start(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
337
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
342
static int imx_rproc_sm_cpu_start(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
344
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
357
static int imx_rproc_sm_lmm_start(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
359
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
384
static int imx_rproc_start(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
386
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
390
ret = imx_rproc_xtr_mbox_init(rproc, true);
drivers/remoteproc/imx_rproc.c
397
ret = priv->ops->start(rproc);
drivers/remoteproc/imx_rproc.c
404
static int imx_rproc_arm_smc_stop(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
406
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
416
static int imx_rproc_mmio_stop(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
418
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
433
static int imx_rproc_scu_api_stop(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
435
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
440
static int imx_rproc_sm_cpu_stop(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
442
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
448
static int imx_rproc_sm_lmm_stop(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
450
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
459
static int imx_rproc_stop(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
461
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
468
ret = priv->ops->stop(rproc);
drivers/remoteproc/imx_rproc.c
472
imx_rproc_free_mbox(rproc);
drivers/remoteproc/imx_rproc.c
513
static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/imx_rproc.c
515
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
540
dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%zx va = 0x%p\n",
drivers/remoteproc/imx_rproc.c
546
static int imx_rproc_mem_alloc(struct rproc *rproc,
drivers/remoteproc/imx_rproc.c
549
struct device *dev = rproc->dev.parent;
drivers/remoteproc/imx_rproc.c
566
static int imx_rproc_mem_release(struct rproc *rproc,
drivers/remoteproc/imx_rproc.c
569
dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma);
drivers/remoteproc/imx_rproc.c
575
static int imx_rproc_sm_lmm_prepare(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
577
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
587
if (rproc->state == RPROC_DETACHED)
drivers/remoteproc/imx_rproc.c
605
static int imx_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
607
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
644
rproc_coredump_add_segment(rproc, da, resource_size(&res));
drivers/remoteproc/imx_rproc.c
645
rproc_add_carveout(rproc, mem);
drivers/remoteproc/imx_rproc.c
649
return priv->ops->prepare(rproc);
drivers/remoteproc/imx_rproc.c
654
static int imx_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/imx_rproc.c
658
ret = rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/imx_rproc.c
660
dev_info(&rproc->dev, "No resource table in elf\n");
drivers/remoteproc/imx_rproc.c
665
static void imx_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/imx_rproc.c
667
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
688
static int imx_rproc_attach(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
690
return imx_rproc_xtr_mbox_init(rproc, true);
drivers/remoteproc/imx_rproc.c
693
static int imx_rproc_scu_api_detach(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
695
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
700
imx_rproc_free_mbox(rproc);
drivers/remoteproc/imx_rproc.c
705
static int imx_rproc_detach(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
707
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
712
return priv->ops->detach(rproc);
drivers/remoteproc/imx_rproc.c
715
static struct resource_table *imx_rproc_get_loaded_rsc_table(struct rproc *rproc, size_t *table_sz)
drivers/remoteproc/imx_rproc.c
717
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
728
imx_rproc_elf_find_loaded_rsc_table(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/imx_rproc.c
730
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
733
if (!rproc->table_ptr)
drivers/remoteproc/imx_rproc.c
739
return rproc_elf_find_loaded_rsc_table(rproc, fw);
drivers/remoteproc/imx_rproc.c
831
struct rproc *rproc = data;
drivers/remoteproc/imx_rproc.c
833
rproc_vq_interrupt(rproc, id);
drivers/remoteproc/imx_rproc.c
842
struct rproc *rproc = priv->rproc;
drivers/remoteproc/imx_rproc.c
844
idr_for_each(&rproc->notifyids, imx_rproc_notified_idr_cb, rproc);
drivers/remoteproc/imx_rproc.c
849
struct rproc *rproc = dev_get_drvdata(cl->dev);
drivers/remoteproc/imx_rproc.c
850
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
855
static int imx_rproc_xtr_mbox_init(struct rproc *rproc, bool tx_block)
drivers/remoteproc/imx_rproc.c
857
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
900
struct rproc *rproc = data;
drivers/remoteproc/imx_rproc.c
901
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
936
rproc_report_crash(priv->rproc, RPROC_WATCHDOG);
drivers/remoteproc/imx_rproc.c
972
priv->rproc->state = RPROC_DETACHED;
drivers/remoteproc/imx_rproc.c
977
static int imx_rproc_arm_smc_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
979
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.c
984
priv->rproc->state = RPROC_DETACHED;
drivers/remoteproc/imx_rproc.c
989
static int imx_rproc_mmio_detect_mode(struct rproc *rproc)
drivers/remoteproc/imx_rproc.c
992
struct imx_rproc *priv = rproc->priv;
drivers/remoteproc/imx_rproc.h
23
int (*start)(struct rproc *rproc);
drivers/remoteproc/imx_rproc.h
24
int (*stop)(struct rproc *rproc);
drivers/remoteproc/imx_rproc.h
25
int (*detach)(struct rproc *rproc);
drivers/remoteproc/imx_rproc.h
26
int (*detect_mode)(struct rproc *rproc);
drivers/remoteproc/imx_rproc.h
27
int (*prepare)(struct rproc *rproc);
drivers/remoteproc/ingenic_rproc.c
105
static int ingenic_rproc_stop(struct rproc *rproc)
drivers/remoteproc/ingenic_rproc.c
107
struct vpu *vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
117
static void ingenic_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/ingenic_rproc.c
119
struct vpu *vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
124
static void *ingenic_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/ingenic_rproc.c
126
struct vpu *vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
154
struct rproc *rproc = data;
drivers/remoteproc/ingenic_rproc.c
155
struct vpu *vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
163
return rproc_vq_interrupt(rproc, vring);
drivers/remoteproc/ingenic_rproc.c
170
struct rproc *rproc;
drivers/remoteproc/ingenic_rproc.c
175
rproc = devm_rproc_alloc(dev, "ingenic-vpu",
drivers/remoteproc/ingenic_rproc.c
177
if (!rproc)
drivers/remoteproc/ingenic_rproc.c
180
rproc->auto_boot = auto_boot;
drivers/remoteproc/ingenic_rproc.c
182
vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
221
"VPU", rproc);
drivers/remoteproc/ingenic_rproc.c
227
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/ingenic_rproc.c
69
static int ingenic_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/ingenic_rproc.c
71
struct vpu *vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
82
static int ingenic_rproc_unprepare(struct rproc *rproc)
drivers/remoteproc/ingenic_rproc.c
84
struct vpu *vpu = rproc->priv;
drivers/remoteproc/ingenic_rproc.c
91
static int ingenic_rproc_start(struct rproc *rproc)
drivers/remoteproc/ingenic_rproc.c
93
struct vpu *vpu = rproc->priv;
drivers/remoteproc/keystone_remoteproc.c
113
rproc_report_crash(ksproc->rproc, RPROC_FATAL_ERROR);
drivers/remoteproc/keystone_remoteproc.c
146
rproc_vq_interrupt(ksproc->rproc, 0);
drivers/remoteproc/keystone_remoteproc.c
147
rproc_vq_interrupt(ksproc->rproc, 1);
drivers/remoteproc/keystone_remoteproc.c
169
static int keystone_rproc_start(struct rproc *rproc)
drivers/remoteproc/keystone_remoteproc.c
171
struct keystone_rproc *ksproc = rproc->priv;
drivers/remoteproc/keystone_remoteproc.c
192
ret = keystone_rproc_dsp_boot(ksproc, rproc->bootaddr);
drivers/remoteproc/keystone_remoteproc.c
213
static int keystone_rproc_stop(struct rproc *rproc)
drivers/remoteproc/keystone_remoteproc.c
215
struct keystone_rproc *ksproc = rproc->priv;
drivers/remoteproc/keystone_remoteproc.c
231
static void keystone_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/keystone_remoteproc.c
233
struct keystone_rproc *ksproc = rproc->priv;
drivers/remoteproc/keystone_remoteproc.c
249
static void *keystone_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/keystone_remoteproc.c
251
struct keystone_rproc *ksproc = rproc->priv;
drivers/remoteproc/keystone_remoteproc.c
371
struct rproc *rproc;
drivers/remoteproc/keystone_remoteproc.c
392
rproc = devm_rproc_alloc(dev, dev_name(dev), &keystone_rproc_ops,
drivers/remoteproc/keystone_remoteproc.c
394
if (!rproc)
drivers/remoteproc/keystone_remoteproc.c
397
rproc->has_iommu = false;
drivers/remoteproc/keystone_remoteproc.c
398
ksproc = rproc->priv;
drivers/remoteproc/keystone_remoteproc.c
399
ksproc->rproc = rproc;
drivers/remoteproc/keystone_remoteproc.c
458
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/keystone_remoteproc.c
57
struct rproc *rproc;
drivers/remoteproc/meson_mx_ao_arc.c
112
static int meson_mx_ao_arc_rproc_stop(struct rproc *rproc)
drivers/remoteproc/meson_mx_ao_arc.c
114
struct meson_mx_ao_arc_rproc_priv *priv = rproc->priv;
drivers/remoteproc/meson_mx_ao_arc.c
123
static void *meson_mx_ao_arc_rproc_da_to_va(struct rproc *rproc, u64 da,
drivers/remoteproc/meson_mx_ao_arc.c
126
struct meson_mx_ao_arc_rproc_priv *priv = rproc->priv;
drivers/remoteproc/meson_mx_ao_arc.c
149
struct rproc *rproc;
drivers/remoteproc/meson_mx_ao_arc.c
154
rproc = devm_rproc_alloc(dev, "meson-mx-ao-arc",
drivers/remoteproc/meson_mx_ao_arc.c
157
if (!rproc)
drivers/remoteproc/meson_mx_ao_arc.c
160
rproc->has_iommu = false;
drivers/remoteproc/meson_mx_ao_arc.c
161
priv = rproc->priv;
drivers/remoteproc/meson_mx_ao_arc.c
218
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/meson_mx_ao_arc.c
220
ret = rproc_add(rproc);
drivers/remoteproc/meson_mx_ao_arc.c
233
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/meson_mx_ao_arc.c
234
struct meson_mx_ao_arc_rproc_priv *priv = rproc->priv;
drivers/remoteproc/meson_mx_ao_arc.c
236
rproc_del(rproc);
drivers/remoteproc/meson_mx_ao_arc.c
58
static int meson_mx_ao_arc_rproc_start(struct rproc *rproc)
drivers/remoteproc/meson_mx_ao_arc.c
60
struct meson_mx_ao_arc_rproc_priv *priv = rproc->priv;
drivers/remoteproc/mtk_common.h
133
struct rproc *rproc;
drivers/remoteproc/mtk_scp.c
1017
ptr = scp_da_to_va(scp->rproc, mem_addr, 0, NULL);
drivers/remoteproc/mtk_scp.c
1102
rproc_add_subdev(scp->rproc, scp->rpmsg_subdev);
drivers/remoteproc/mtk_scp.c
1108
rproc_remove_subdev(scp->rproc, scp->rpmsg_subdev);
drivers/remoteproc/mtk_scp.c
1168
struct rproc *rproc;
drivers/remoteproc/mtk_scp.c
1183
rproc = devm_rproc_alloc(dev, np->name, &scp_ops, fw_name, sizeof(*scp));
drivers/remoteproc/mtk_scp.c
1184
if (!rproc) {
drivers/remoteproc/mtk_scp.c
1189
scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
1190
scp->rproc = rproc;
drivers/remoteproc/mtk_scp.c
1289
ret = rproc_add(scp->rproc);
drivers/remoteproc/mtk_scp.c
1337
ret = rproc_add(scp->rproc);
drivers/remoteproc/mtk_scp.c
1361
rproc_del(scp->rproc);
drivers/remoteproc/mtk_scp.c
1451
rproc_del(scp->rproc);
drivers/remoteproc/mtk_scp.c
1598
struct rproc *rproc = scp->rproc;
drivers/remoteproc/mtk_scp.c
1607
if (rproc->state == RPROC_RUNNING)
drivers/remoteproc/mtk_scp.c
1615
struct rproc *rproc = scp->rproc;
drivers/remoteproc/mtk_scp.c
1624
if (rproc->state == RPROC_RUNNING)
drivers/remoteproc/mtk_scp.c
299
static int scp_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/mtk_scp.c
301
struct device *dev = &rproc->dev;
drivers/remoteproc/mtk_scp.c
341
ptr = (void __iomem *)rproc_da_to_va(rproc, da, memsz, NULL);
drivers/remoteproc/mtk_scp.c
662
static int scp_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/mtk_scp.c
664
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
681
ret = scp_elf_load_segments(rproc, fw);
drivers/remoteproc/mtk_scp.c
688
static int scp_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/mtk_scp.c
690
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
705
static int scp_start(struct rproc *rproc)
drivers/remoteproc/mtk_scp.c
707
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
78
rproc_report_crash(scp_node->rproc, RPROC_WATCHDOG);
drivers/remoteproc/mtk_scp.c
798
static void *scp_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/mtk_scp.c
800
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
907
static int scp_stop(struct rproc *rproc)
drivers/remoteproc/mtk_scp.c
909
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
925
static int scp_prepare(struct rproc *rproc)
drivers/remoteproc/mtk_scp.c
927
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
932
static int scp_unprepare(struct rproc *rproc)
drivers/remoteproc/mtk_scp.c
934
struct mtk_scp *scp = rproc->priv;
drivers/remoteproc/mtk_scp.c
967
struct rproc *scp_get_rproc(struct mtk_scp *scp)
drivers/remoteproc/mtk_scp.c
969
return scp->rproc;
drivers/remoteproc/omap_remoteproc.c
1007
ret = _omap_rproc_suspend(rproc, true);
drivers/remoteproc/omap_remoteproc.c
1011
rproc->state = RPROC_SUSPENDED;
drivers/remoteproc/omap_remoteproc.c
1012
mutex_unlock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
1018
mutex_unlock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
1024
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/omap_remoteproc.c
1027
mutex_lock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
1028
if (WARN_ON(rproc->state != RPROC_SUSPENDED)) {
drivers/remoteproc/omap_remoteproc.c
1030
rproc->state);
drivers/remoteproc/omap_remoteproc.c
1035
ret = _omap_rproc_resume(rproc, true);
drivers/remoteproc/omap_remoteproc.c
1041
rproc->state = RPROC_RUNNING;
drivers/remoteproc/omap_remoteproc.c
1043
mutex_unlock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
1133
struct rproc *rproc)
drivers/remoteproc/omap_remoteproc.c
1136
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
1169
struct rproc *rproc)
drivers/remoteproc/omap_remoteproc.c
1171
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
118
struct rproc *rproc;
drivers/remoteproc/omap_remoteproc.c
1244
struct rproc *rproc)
drivers/remoteproc/omap_remoteproc.c
1247
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
1290
struct rproc *rproc;
drivers/remoteproc/omap_remoteproc.c
1314
rproc = devm_rproc_alloc(&pdev->dev, dev_name(&pdev->dev), &omap_rproc_ops,
drivers/remoteproc/omap_remoteproc.c
1316
if (!rproc)
drivers/remoteproc/omap_remoteproc.c
1319
oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
1320
oproc->rproc = rproc;
drivers/remoteproc/omap_remoteproc.c
1323
rproc->has_iommu = true;
drivers/remoteproc/omap_remoteproc.c
1338
ret = omap_rproc_of_get_internal_memories(pdev, rproc);
drivers/remoteproc/omap_remoteproc.c
1342
ret = omap_rproc_get_boot_data(pdev, rproc);
drivers/remoteproc/omap_remoteproc.c
1346
ret = omap_rproc_of_get_timers(pdev, rproc);
drivers/remoteproc/omap_remoteproc.c
1372
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/omap_remoteproc.c
1374
ret = devm_rproc_add(&pdev->dev, rproc);
drivers/remoteproc/omap_remoteproc.c
278
struct rproc *rproc = data;
drivers/remoteproc/omap_remoteproc.c
279
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
280
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
300
rproc_report_crash(rproc, RPROC_WATCHDOG);
drivers/remoteproc/omap_remoteproc.c
317
static int omap_rproc_enable_timers(struct rproc *rproc, bool configure)
drivers/remoteproc/omap_remoteproc.c
324
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
326
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
398
"rproc-wdt", rproc);
drivers/remoteproc/omap_remoteproc.c
435
free_irq(timers[i].irq, rproc);
drivers/remoteproc/omap_remoteproc.c
457
static int omap_rproc_disable_timers(struct rproc *rproc, bool configure)
drivers/remoteproc/omap_remoteproc.c
460
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
471
free_irq(timers[i].irq, rproc);
drivers/remoteproc/omap_remoteproc.c
500
struct device *dev = oproc->rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
501
const char *name = oproc->rproc->name;
drivers/remoteproc/omap_remoteproc.c
513
rproc_report_crash(oproc->rproc, RPROC_FATAL_ERROR);
drivers/remoteproc/omap_remoteproc.c
526
if (msg > oproc->rproc->max_notifyid) {
drivers/remoteproc/omap_remoteproc.c
531
if (rproc_vq_interrupt(oproc->rproc, msg) == IRQ_NONE)
drivers/remoteproc/omap_remoteproc.c
537
static void omap_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/omap_remoteproc.c
539
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
540
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
569
static int omap_rproc_write_dsp_boot_addr(struct rproc *rproc)
drivers/remoteproc/omap_remoteproc.c
571
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
572
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
578
if (rproc->bootaddr & (SZ_1K - 1)) {
drivers/remoteproc/omap_remoteproc.c
580
rproc->bootaddr);
drivers/remoteproc/omap_remoteproc.c
584
value = rproc->bootaddr >> bdata->boot_reg_shift;
drivers/remoteproc/omap_remoteproc.c
597
static int omap_rproc_start(struct rproc *rproc)
drivers/remoteproc/omap_remoteproc.c
599
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
600
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
605
ret = omap_rproc_write_dsp_boot_addr(rproc);
drivers/remoteproc/omap_remoteproc.c
637
ret = omap_rproc_enable_timers(rproc, true);
drivers/remoteproc/omap_remoteproc.c
663
omap_rproc_disable_timers(rproc, true);
drivers/remoteproc/omap_remoteproc.c
670
static int omap_rproc_stop(struct rproc *rproc)
drivers/remoteproc/omap_remoteproc.c
672
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
673
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
694
ret = omap_rproc_disable_timers(rproc, true);
drivers/remoteproc/omap_remoteproc.c
734
static void *omap_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/omap_remoteproc.c
736
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
774
static int _omap_rproc_suspend(struct rproc *rproc, bool auto_suspend)
drivers/remoteproc/omap_remoteproc.c
776
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
777
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
823
ret = omap_rproc_disable_timers(rproc, false);
drivers/remoteproc/omap_remoteproc.c
836
ret = omap_iommu_domain_deactivate(rproc->domain);
drivers/remoteproc/omap_remoteproc.c
848
omap_rproc_enable_timers(rproc, false);
drivers/remoteproc/omap_remoteproc.c
854
static int _omap_rproc_resume(struct rproc *rproc, bool auto_suspend)
drivers/remoteproc/omap_remoteproc.c
856
struct device *dev = rproc->dev.parent;
drivers/remoteproc/omap_remoteproc.c
857
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
866
ret = omap_iommu_domain_activate(rproc->domain);
drivers/remoteproc/omap_remoteproc.c
875
ret = omap_rproc_write_dsp_boot_addr(rproc);
drivers/remoteproc/omap_remoteproc.c
882
ret = omap_rproc_enable_timers(rproc, false);
drivers/remoteproc/omap_remoteproc.c
897
omap_rproc_disable_timers(rproc, false);
drivers/remoteproc/omap_remoteproc.c
900
omap_iommu_domain_deactivate(rproc->domain);
drivers/remoteproc/omap_remoteproc.c
907
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/omap_remoteproc.c
908
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
911
mutex_lock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
912
if (rproc->state == RPROC_OFFLINE)
drivers/remoteproc/omap_remoteproc.c
915
if (rproc->state == RPROC_SUSPENDED)
drivers/remoteproc/omap_remoteproc.c
918
if (rproc->state != RPROC_RUNNING) {
drivers/remoteproc/omap_remoteproc.c
923
ret = _omap_rproc_suspend(rproc, false);
drivers/remoteproc/omap_remoteproc.c
934
rproc->state = RPROC_SUSPENDED;
drivers/remoteproc/omap_remoteproc.c
937
mutex_unlock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
943
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/omap_remoteproc.c
944
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
947
mutex_lock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
948
if (rproc->state == RPROC_OFFLINE)
drivers/remoteproc/omap_remoteproc.c
951
if (rproc->state != RPROC_SUSPENDED) {
drivers/remoteproc/omap_remoteproc.c
964
ret = _omap_rproc_resume(rproc, false);
drivers/remoteproc/omap_remoteproc.c
971
rproc->state = RPROC_RUNNING;
drivers/remoteproc/omap_remoteproc.c
975
mutex_unlock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
981
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/omap_remoteproc.c
982
struct omap_rproc *oproc = rproc->priv;
drivers/remoteproc/omap_remoteproc.c
985
mutex_lock(&rproc->lock);
drivers/remoteproc/omap_remoteproc.c
986
if (rproc->state == RPROC_CRASHED) {
drivers/remoteproc/omap_remoteproc.c
992
if (WARN_ON(rproc->state != RPROC_RUNNING)) {
drivers/remoteproc/pru_rproc.c
1012
rproc = devm_rproc_alloc(dev, pdev->name, &pru_rproc_ops, fw_name,
drivers/remoteproc/pru_rproc.c
1014
if (!rproc) {
drivers/remoteproc/pru_rproc.c
1019
rproc->ops->load = pru_rproc_load_elf_segments;
drivers/remoteproc/pru_rproc.c
1022
rproc->ops->parse_fw = pru_rproc_parse_fw;
drivers/remoteproc/pru_rproc.c
1025
rproc->recovery_disabled = true;
drivers/remoteproc/pru_rproc.c
1034
rproc->auto_boot = false;
drivers/remoteproc/pru_rproc.c
1036
pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
1040
pru->rproc = rproc;
drivers/remoteproc/pru_rproc.c
1068
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/pru_rproc.c
1070
ret = devm_rproc_add(dev, pru->rproc);
drivers/remoteproc/pru_rproc.c
1076
pru_rproc_create_debug_entries(rproc);
drivers/remoteproc/pru_rproc.c
1086
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/pru_rproc.c
1088
dev_dbg(dev, "%s: removing rproc %s\n", __func__, rproc->name);
drivers/remoteproc/pru_rproc.c
119
struct rproc *rproc;
drivers/remoteproc/pru_rproc.c
170
static int pru_rproc_set_firmware(struct rproc *rproc, const char *fw_name)
drivers/remoteproc/pru_rproc.c
172
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
177
return rproc_set_firmware(rproc, fw_name);
drivers/remoteproc/pru_rproc.c
180
static struct rproc *__pru_rproc_get(struct device_node *np, int index)
drivers/remoteproc/pru_rproc.c
182
struct rproc *rproc;
drivers/remoteproc/pru_rproc.c
190
rproc = rproc_get_by_phandle(rproc_phandle);
drivers/remoteproc/pru_rproc.c
191
if (!rproc) {
drivers/remoteproc/pru_rproc.c
197
if (!is_pru_rproc(rproc->dev.parent)) {
drivers/remoteproc/pru_rproc.c
198
rproc_put(rproc);
drivers/remoteproc/pru_rproc.c
202
return rproc;
drivers/remoteproc/pru_rproc.c
226
struct rproc *pru_rproc_get(struct device_node *np, int index,
drivers/remoteproc/pru_rproc.c
229
struct rproc *rproc;
drivers/remoteproc/pru_rproc.c
236
rproc = __pru_rproc_get(np, index);
drivers/remoteproc/pru_rproc.c
237
if (IS_ERR(rproc))
drivers/remoteproc/pru_rproc.c
238
return rproc;
drivers/remoteproc/pru_rproc.c
240
pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
241
dev = &rproc->dev;
drivers/remoteproc/pru_rproc.c
252
rproc->sysfs_read_only = true;
drivers/remoteproc/pru_rproc.c
279
ret = pru_rproc_set_firmware(rproc, fw_name);
drivers/remoteproc/pru_rproc.c
286
return rproc;
drivers/remoteproc/pru_rproc.c
289
rproc_put(rproc);
drivers/remoteproc/pru_rproc.c
293
pru_rproc_put(rproc);
drivers/remoteproc/pru_rproc.c
305
void pru_rproc_put(struct rproc *rproc)
drivers/remoteproc/pru_rproc.c
309
if (IS_ERR_OR_NULL(rproc) || !is_pru_rproc(rproc->dev.parent))
drivers/remoteproc/pru_rproc.c
312
pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
316
pru_rproc_set_firmware(rproc, NULL);
drivers/remoteproc/pru_rproc.c
326
rproc->sysfs_read_only = false;
drivers/remoteproc/pru_rproc.c
329
rproc_put(rproc);
drivers/remoteproc/pru_rproc.c
341
int pru_rproc_set_ctable(struct rproc *rproc, enum pru_ctable_idx c, u32 addr)
drivers/remoteproc/pru_rproc.c
349
if (IS_ERR_OR_NULL(rproc))
drivers/remoteproc/pru_rproc.c
352
if (!rproc->dev.parent || !is_pru_rproc(rproc->dev.parent))
drivers/remoteproc/pru_rproc.c
355
pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
380
struct rproc *rproc = s->private;
drivers/remoteproc/pru_rproc.c
381
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
438
struct rproc *rproc = data;
drivers/remoteproc/pru_rproc.c
439
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
464
struct rproc *rproc = data;
drivers/remoteproc/pru_rproc.c
465
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
480
static void pru_rproc_create_debug_entries(struct rproc *rproc)
drivers/remoteproc/pru_rproc.c
482
if (!rproc->dbg_dir)
drivers/remoteproc/pru_rproc.c
485
debugfs_create_file("regs", 0400, rproc->dbg_dir,
drivers/remoteproc/pru_rproc.c
486
rproc, &regs_fops);
drivers/remoteproc/pru_rproc.c
487
debugfs_create_file("single_step", 0600, rproc->dbg_dir,
drivers/remoteproc/pru_rproc.c
488
rproc, &pru_rproc_debug_ss_fops);
drivers/remoteproc/pru_rproc.c
510
static int pru_handle_intrmap(struct rproc *rproc)
drivers/remoteproc/pru_rproc.c
512
struct device *dev = rproc->dev.parent;
drivers/remoteproc/pru_rproc.c
513
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
597
static int pru_rproc_start(struct rproc *rproc)
drivers/remoteproc/pru_rproc.c
599
struct device *dev = &rproc->dev;
drivers/remoteproc/pru_rproc.c
600
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
606
names[pru->data->type], pru->id, (rproc->bootaddr >> 2));
drivers/remoteproc/pru_rproc.c
608
ret = pru_handle_intrmap(rproc);
drivers/remoteproc/pru_rproc.c
618
val = CTRL_CTRL_EN | ((rproc->bootaddr >> 2) << 16);
drivers/remoteproc/pru_rproc.c
624
static int pru_rproc_stop(struct rproc *rproc)
drivers/remoteproc/pru_rproc.c
626
struct device *dev = &rproc->dev;
drivers/remoteproc/pru_rproc.c
627
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
732
static void *pru_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/pru_rproc.c
734
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
740
static void *pru_da_to_va(struct rproc *rproc, u64 da, size_t len, bool is_iram)
drivers/remoteproc/pru_rproc.c
742
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
802
pru_rproc_load_elf_segments(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/pru_rproc.c
804
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
805
struct device *dev = &rproc->dev;
drivers/remoteproc/pru_rproc.c
845
ptr = pru_da_to_va(rproc, da, memsz, is_iram);
drivers/remoteproc/pru_rproc.c
926
static int pru_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/pru_rproc.c
928
struct device *dev = &rproc->dev;
drivers/remoteproc/pru_rproc.c
929
struct pru_rproc *pru = rproc->priv;
drivers/remoteproc/pru_rproc.c
937
ret = rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/pru_rproc.c
939
dev_dbg(&rproc->dev, "no resource table found for this fw\n");
drivers/remoteproc/pru_rproc.c
996
struct rproc *rproc = NULL;
drivers/remoteproc/qcom_common.c
106
static int qcom_add_minidump_segments(struct rproc *rproc, struct minidump_subsystem *subsystem,
drivers/remoteproc/qcom_common.c
107
void (*rproc_dumpfn_t)(struct rproc *rproc, struct rproc_dump_segment *segment,
drivers/remoteproc/qcom_common.c
117
if (WARN_ON(!list_empty(&rproc->dump_segments))) {
drivers/remoteproc/qcom_common.c
118
dev_err(&rproc->dev, "dump segment list already populated\n");
drivers/remoteproc/qcom_common.c
138
rproc_coredump_add_custom_segment(rproc, da, size, rproc_dumpfn_t, name);
drivers/remoteproc/qcom_common.c
146
void qcom_minidump(struct rproc *rproc, unsigned int minidump_id,
drivers/remoteproc/qcom_common.c
147
void (*rproc_dumpfn_t)(struct rproc *rproc,
drivers/remoteproc/qcom_common.c
160
dev_err(&rproc->dev, "Minidump TOC not found in SMEM\n");
drivers/remoteproc/qcom_common.c
174
return rproc_coredump(rproc);
drivers/remoteproc/qcom_common.c
178
dev_err(&rproc->dev, "Minidump not ready, skipping\n");
drivers/remoteproc/qcom_common.c
186
rproc_coredump_cleanup(rproc);
drivers/remoteproc/qcom_common.c
188
ret = qcom_add_minidump_segments(rproc, subsystem, rproc_dumpfn_t);
drivers/remoteproc/qcom_common.c
190
dev_err(&rproc->dev, "Failed with error: %d while adding minidump entries\n", ret);
drivers/remoteproc/qcom_common.c
193
rproc_coredump_using_sections(rproc);
drivers/remoteproc/qcom_common.c
195
qcom_minidump_cleanup(rproc);
drivers/remoteproc/qcom_common.c
229
void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink,
drivers/remoteproc/qcom_common.c
232
struct device *dev = &rproc->dev;
drivers/remoteproc/qcom_common.c
247
rproc_add_subdev(rproc, &glink->subdev);
drivers/remoteproc/qcom_common.c
256
void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink)
drivers/remoteproc/qcom_common.c
261
rproc_remove_subdev(rproc, &glink->subdev);
drivers/remoteproc/qcom_common.c
276
int qcom_register_dump_segments(struct rproc *rproc,
drivers/remoteproc/qcom_common.c
300
ret = rproc_coredump_add_segment(rproc, phdr->p_paddr,
drivers/remoteproc/qcom_common.c
332
void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
drivers/remoteproc/qcom_common.c
334
struct device *dev = &rproc->dev;
drivers/remoteproc/qcom_common.c
344
rproc_add_subdev(rproc, &smd->subdev);
drivers/remoteproc/qcom_common.c
353
void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
drivers/remoteproc/qcom_common.c
358
rproc_remove_subdev(rproc, &smd->subdev);
drivers/remoteproc/qcom_common.c
491
void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
drivers/remoteproc/qcom_common.c
498
dev_err(&rproc->dev, "Failed to add ssr subdevice\n");
drivers/remoteproc/qcom_common.c
508
rproc_add_subdev(rproc, &ssr->subdev);
drivers/remoteproc/qcom_common.c
517
void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr)
drivers/remoteproc/qcom_common.c
519
rproc_remove_subdev(rproc, &ssr->subdev);
drivers/remoteproc/qcom_common.c
584
void qcom_add_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm)
drivers/remoteproc/qcom_common.c
586
pdm->dev = &rproc->dev;
drivers/remoteproc/qcom_common.c
587
pdm->index = rproc->index;
drivers/remoteproc/qcom_common.c
592
rproc_add_subdev(rproc, &pdm->subdev);
drivers/remoteproc/qcom_common.c
603
void qcom_remove_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm)
drivers/remoteproc/qcom_common.c
605
rproc_remove_subdev(rproc, &pdm->subdev);
drivers/remoteproc/qcom_common.c
95
static void qcom_minidump_cleanup(struct rproc *rproc)
drivers/remoteproc/qcom_common.c
99
list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) {
drivers/remoteproc/qcom_common.h
44
void qcom_minidump(struct rproc *rproc, unsigned int minidump_id,
drivers/remoteproc/qcom_common.h
45
void (*rproc_dumpfn_t)(struct rproc *rproc,
drivers/remoteproc/qcom_common.h
49
void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink,
drivers/remoteproc/qcom_common.h
51
void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
drivers/remoteproc/qcom_common.h
53
int qcom_register_dump_segments(struct rproc *rproc, const struct firmware *fw);
drivers/remoteproc/qcom_common.h
55
void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd);
drivers/remoteproc/qcom_common.h
56
void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd);
drivers/remoteproc/qcom_common.h
58
void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
drivers/remoteproc/qcom_common.h
60
void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr);
drivers/remoteproc/qcom_common.h
62
void qcom_add_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm);
drivers/remoteproc/qcom_common.h
63
void qcom_remove_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm);
drivers/remoteproc/qcom_common.h
66
struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
drivers/remoteproc/qcom_common.h
72
static inline struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
drivers/remoteproc/qcom_q6v5.c
110
rproc_report_crash(q6v5->rproc, RPROC_WATCHDOG);
drivers/remoteproc/qcom_q6v5.c
131
rproc_report_crash(q6v5->rproc, RPROC_FATAL_ERROR);
drivers/remoteproc/qcom_q6v5.c
205
if (q6v5->rproc->state != RPROC_RUNNING || qcom_sysmon_shutdown_acked(sysmon))
drivers/remoteproc/qcom_q6v5.c
249
struct rproc *rproc, int crash_reason, const char *load_state,
drivers/remoteproc/qcom_q6v5.c
254
q6v5->rproc = rproc;
drivers/remoteproc/qcom_q6v5.h
11
struct rproc;
drivers/remoteproc/qcom_q6v5.h
17
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5.h
46
struct rproc *rproc, int crash_reason, const char *load_state,
drivers/remoteproc/qcom_q6v5_adsp.c
315
static int adsp_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_q6v5_adsp.c
317
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
320
ret = qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware,
drivers/remoteproc/qcom_q6v5_adsp.c
331
static void adsp_unmap_carveout(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_adsp.c
333
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
336
iommu_unmap(rproc->domain, adsp->mem_phys, adsp->mem_size);
drivers/remoteproc/qcom_q6v5_adsp.c
339
static int adsp_map_carveout(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_adsp.c
341
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
350
if (!rproc->domain)
drivers/remoteproc/qcom_q6v5_adsp.c
362
ret = iommu_map(rproc->domain, iova, adsp->mem_phys,
drivers/remoteproc/qcom_q6v5_adsp.c
373
static int adsp_start(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_adsp.c
375
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
383
ret = adsp_map_carveout(rproc);
drivers/remoteproc/qcom_q6v5_adsp.c
447
adsp_unmap_carveout(rproc);
drivers/remoteproc/qcom_q6v5_adsp.c
462
static int adsp_stop(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_adsp.c
464
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
476
adsp_unmap_carveout(rproc);
drivers/remoteproc/qcom_q6v5_adsp.c
485
static void *adsp_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/qcom_q6v5_adsp.c
487
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
497
static int adsp_parse_firmware(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_q6v5_adsp.c
499
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
502
ret = qcom_register_dump_segments(rproc, fw);
drivers/remoteproc/qcom_q6v5_adsp.c
504
dev_err(&rproc->dev, "Error in registering dump segments\n");
drivers/remoteproc/qcom_q6v5_adsp.c
509
ret = rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/qcom_q6v5_adsp.c
511
dev_err(&rproc->dev, "Error in loading resource table\n");
drivers/remoteproc/qcom_q6v5_adsp.c
518
static unsigned long adsp_panic(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_adsp.c
520
struct qcom_adsp *adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
654
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_adsp.c
669
rproc = devm_rproc_alloc(&pdev->dev, pdev->name, &adsp_ops,
drivers/remoteproc/qcom_q6v5_adsp.c
671
if (!rproc) {
drivers/remoteproc/qcom_q6v5_adsp.c
676
rproc->auto_boot = desc->auto_boot;
drivers/remoteproc/qcom_q6v5_adsp.c
677
rproc->has_iommu = desc->has_iommu;
drivers/remoteproc/qcom_q6v5_adsp.c
678
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
drivers/remoteproc/qcom_q6v5_adsp.c
680
adsp = rproc->priv;
drivers/remoteproc/qcom_q6v5_adsp.c
682
adsp->rproc = rproc;
drivers/remoteproc/qcom_q6v5_adsp.c
714
ret = qcom_q6v5_init(&adsp->q6v5, pdev, rproc, desc->crash_reason_smem,
drivers/remoteproc/qcom_q6v5_adsp.c
719
qcom_add_glink_subdev(rproc, &adsp->glink_subdev, desc->ssr_name);
drivers/remoteproc/qcom_q6v5_adsp.c
720
qcom_add_pdm_subdev(rproc, &adsp->pdm_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
721
qcom_add_ssr_subdev(rproc, &adsp->ssr_subdev, desc->ssr_name);
drivers/remoteproc/qcom_q6v5_adsp.c
722
adsp->sysmon = qcom_add_sysmon_subdev(rproc,
drivers/remoteproc/qcom_q6v5_adsp.c
730
ret = rproc_add(rproc);
drivers/remoteproc/qcom_q6v5_adsp.c
740
qcom_remove_glink_subdev(rproc, &adsp->glink_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
741
qcom_remove_pdm_subdev(rproc, &adsp->pdm_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
742
qcom_remove_ssr_subdev(rproc, &adsp->ssr_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
753
rproc_del(adsp->rproc);
drivers/remoteproc/qcom_q6v5_adsp.c
756
qcom_remove_glink_subdev(adsp->rproc, &adsp->glink_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
757
qcom_remove_pdm_subdev(adsp->rproc, &adsp->pdm_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
759
qcom_remove_ssr_subdev(adsp->rproc, &adsp->ssr_subdev);
drivers/remoteproc/qcom_q6v5_adsp.c
82
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_mss.c
1366
static int q6v5_reload_mba(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_mss.c
1368
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
1372
ret = request_firmware(&fw, rproc->firmware, qproc->dev);
drivers/remoteproc/qcom_q6v5_mss.c
1376
q6v5_load(rproc, fw);
drivers/remoteproc/qcom_q6v5_mss.c
1587
static void qcom_q6v5_dump_segment(struct rproc *rproc,
drivers/remoteproc/qcom_q6v5_mss.c
1592
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
1598
ret = q6v5_reload_mba(rproc);
drivers/remoteproc/qcom_q6v5_mss.c
1633
static int q6v5_start(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_mss.c
1635
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
1675
static int q6v5_stop(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_mss.c
1677
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
1689
static int qcom_q6v5_register_dump_segments(struct rproc *rproc,
drivers/remoteproc/qcom_q6v5_mss.c
1696
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
1707
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
drivers/remoteproc/qcom_q6v5_mss.c
1719
ret = rproc_coredump_add_custom_segment(rproc, phdr->p_paddr,
drivers/remoteproc/qcom_q6v5_mss.c
1733
static unsigned long q6v5_panic(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_mss.c
1735
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
176
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_mss.c
2034
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_mss.c
2053
rproc = devm_rproc_alloc(&pdev->dev, pdev->name, &q6v5_ops,
drivers/remoteproc/qcom_q6v5_mss.c
2055
if (!rproc) {
drivers/remoteproc/qcom_q6v5_mss.c
2060
rproc->auto_boot = false;
drivers/remoteproc/qcom_q6v5_mss.c
2061
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
drivers/remoteproc/qcom_q6v5_mss.c
2063
qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
2065
qproc->rproc = rproc;
drivers/remoteproc/qcom_q6v5_mss.c
2145
ret = qcom_q6v5_init(&qproc->q6v5, pdev, rproc, MPSS_CRASH_REASON_SMEM, "modem",
drivers/remoteproc/qcom_q6v5_mss.c
2152
qcom_add_glink_subdev(rproc, &qproc->glink_subdev, "mpss");
drivers/remoteproc/qcom_q6v5_mss.c
2153
qcom_add_smd_subdev(rproc, &qproc->smd_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2154
qcom_add_pdm_subdev(rproc, &qproc->pdm_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2155
qcom_add_ssr_subdev(rproc, &qproc->ssr_subdev, "mpss");
drivers/remoteproc/qcom_q6v5_mss.c
2156
qproc->sysmon = qcom_add_sysmon_subdev(rproc, "modem", 0x12);
drivers/remoteproc/qcom_q6v5_mss.c
2162
ret = rproc_add(rproc);
drivers/remoteproc/qcom_q6v5_mss.c
2175
qcom_remove_ssr_subdev(rproc, &qproc->ssr_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2176
qcom_remove_smd_subdev(rproc, &qproc->smd_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2177
qcom_remove_glink_subdev(rproc, &qproc->glink_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2187
struct rproc *rproc = qproc->rproc;
drivers/remoteproc/qcom_q6v5_mss.c
2191
rproc_del(rproc);
drivers/remoteproc/qcom_q6v5_mss.c
2195
qcom_remove_ssr_subdev(rproc, &qproc->ssr_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2196
qcom_remove_pdm_subdev(rproc, &qproc->pdm_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2197
qcom_remove_smd_subdev(rproc, &qproc->smd_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
2198
qcom_remove_glink_subdev(rproc, &qproc->glink_subdev);
drivers/remoteproc/qcom_q6v5_mss.c
503
static int q6v5_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_q6v5_mss.c
505
struct q6v5 *qproc = rproc->priv;
drivers/remoteproc/qcom_q6v5_mss.c
641
struct rproc *rproc = qproc->rproc;
drivers/remoteproc/qcom_q6v5_mss.c
659
dev_coredumpv(&rproc->dev, data, MBA_LOG_SIZE, GFP_KERNEL);
drivers/remoteproc/qcom_q6v5_pas.c
125
static void qcom_pas_segment_dump(struct rproc *rproc,
drivers/remoteproc/qcom_q6v5_pas.c
129
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
144
static void qcom_pas_minidump(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_pas.c
146
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
148
if (rproc->dump_conf == RPROC_COREDUMP_DISABLED)
drivers/remoteproc/qcom_q6v5_pas.c
151
qcom_minidump(rproc, pas->minidump_id, qcom_pas_segment_dump);
drivers/remoteproc/qcom_q6v5_pas.c
205
static int qcom_pas_unprepare(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_pas.c
207
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
222
static int qcom_pas_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_q6v5_pas.c
224
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
259
static void qcom_pas_unmap_carveout(struct rproc *rproc, phys_addr_t mem_phys, size_t size)
drivers/remoteproc/qcom_q6v5_pas.c
261
if (rproc->has_iommu)
drivers/remoteproc/qcom_q6v5_pas.c
262
iommu_unmap(rproc->domain, mem_phys, size);
drivers/remoteproc/qcom_q6v5_pas.c
265
static int qcom_pas_map_carveout(struct rproc *rproc, phys_addr_t mem_phys, size_t size)
drivers/remoteproc/qcom_q6v5_pas.c
269
if (rproc->has_iommu)
drivers/remoteproc/qcom_q6v5_pas.c
270
ret = iommu_map(rproc->domain, mem_phys, mem_phys, size,
drivers/remoteproc/qcom_q6v5_pas.c
275
static int qcom_pas_start(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_pas.c
277
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
309
ret = qcom_pas_map_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size);
drivers/remoteproc/qcom_q6v5_pas.c
321
ret = qcom_mdt_pas_load(pas->pas_ctx, pas->firmware, rproc->firmware,
drivers/remoteproc/qcom_q6v5_pas.c
328
ret = qcom_pas_map_carveout(rproc, pas->mem_phys, pas->mem_size);
drivers/remoteproc/qcom_q6v5_pas.c
356
qcom_pas_unmap_carveout(rproc, pas->mem_phys, pas->mem_size);
drivers/remoteproc/qcom_q6v5_pas.c
364
qcom_pas_unmap_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size);
drivers/remoteproc/qcom_q6v5_pas.c
399
static int qcom_pas_stop(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_pas.c
401
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
421
qcom_pas_unmap_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size);
drivers/remoteproc/qcom_q6v5_pas.c
424
qcom_pas_unmap_carveout(rproc, pas->mem_phys, pas->mem_size);
drivers/remoteproc/qcom_q6v5_pas.c
436
static void *qcom_pas_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/qcom_q6v5_pas.c
438
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
451
static int qcom_pas_parse_firmware(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_q6v5_pas.c
453
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
460
ret = qcom_register_dump_segments(rproc, fw);
drivers/remoteproc/qcom_q6v5_pas.c
466
if (!rproc->has_iommu)
drivers/remoteproc/qcom_q6v5_pas.c
469
ret = rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/qcom_q6v5_pas.c
471
dev_dbg(&rproc->dev, "Failed to load resource table from firmware\n");
drivers/remoteproc/qcom_q6v5_pas.c
473
table = rproc->table_ptr;
drivers/remoteproc/qcom_q6v5_pas.c
474
table_sz = rproc->table_sz;
drivers/remoteproc/qcom_q6v5_pas.c
498
kfree(rproc->cached_table);
drivers/remoteproc/qcom_q6v5_pas.c
499
rproc->cached_table = output_rt;
drivers/remoteproc/qcom_q6v5_pas.c
500
rproc->table_ptr = rproc->cached_table;
drivers/remoteproc/qcom_q6v5_pas.c
501
rproc->table_sz = output_rt_size;
drivers/remoteproc/qcom_q6v5_pas.c
506
static unsigned long qcom_pas_panic(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_pas.c
508
struct qcom_pas *pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
67
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_pas.c
740
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_pas.c
769
rproc = devm_rproc_alloc(&pdev->dev, desc->sysmon_name, ops, fw_name, sizeof(*pas));
drivers/remoteproc/qcom_q6v5_pas.c
771
if (!rproc) {
drivers/remoteproc/qcom_q6v5_pas.c
776
rproc->has_iommu = of_property_present(pdev->dev.of_node, "iommus");
drivers/remoteproc/qcom_q6v5_pas.c
777
rproc->auto_boot = desc->auto_boot;
drivers/remoteproc/qcom_q6v5_pas.c
778
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
drivers/remoteproc/qcom_q6v5_pas.c
780
pas = rproc->priv;
drivers/remoteproc/qcom_q6v5_pas.c
782
pas->rproc = rproc;
drivers/remoteproc/qcom_q6v5_pas.c
825
ret = qcom_q6v5_init(&pas->q6v5, pdev, rproc, desc->crash_reason_smem,
drivers/remoteproc/qcom_q6v5_pas.c
830
qcom_add_glink_subdev(rproc, &pas->glink_subdev, desc->ssr_name);
drivers/remoteproc/qcom_q6v5_pas.c
831
qcom_add_smd_subdev(rproc, &pas->smd_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
832
qcom_add_pdm_subdev(rproc, &pas->pdm_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
833
pas->sysmon = qcom_add_sysmon_subdev(rproc, desc->sysmon_name, desc->ssctl_id);
drivers/remoteproc/qcom_q6v5_pas.c
839
qcom_add_ssr_subdev(rproc, &pas->ssr_subdev, desc->ssr_name);
drivers/remoteproc/qcom_q6v5_pas.c
856
pas->pas_ctx->use_tzmem = rproc->has_iommu;
drivers/remoteproc/qcom_q6v5_pas.c
857
pas->dtb_pas_ctx->use_tzmem = rproc->has_iommu;
drivers/remoteproc/qcom_q6v5_pas.c
858
ret = rproc_add(rproc);
drivers/remoteproc/qcom_q6v5_pas.c
865
qcom_remove_ssr_subdev(rproc, &pas->ssr_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
868
qcom_remove_pdm_subdev(rproc, &pas->pdm_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
869
qcom_remove_smd_subdev(rproc, &pas->smd_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
870
qcom_remove_glink_subdev(rproc, &pas->glink_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
886
rproc_del(pas->rproc);
drivers/remoteproc/qcom_q6v5_pas.c
890
qcom_remove_glink_subdev(pas->rproc, &pas->glink_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
892
qcom_remove_smd_subdev(pas->rproc, &pas->smd_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
893
qcom_remove_pdm_subdev(pas->rproc, &pas->pdm_subdev);
drivers/remoteproc/qcom_q6v5_pas.c
894
qcom_remove_ssr_subdev(pas->rproc, &pas->ssr_subdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1014
ret = qcom_q6v5_init(&wcss->q6v5, pdev, rproc, desc->crash_reason_smem, NULL, NULL);
drivers/remoteproc/qcom_q6v5_wcss.c
1018
qcom_add_glink_subdev(rproc, &wcss->glink_subdev, "q6wcss");
drivers/remoteproc/qcom_q6v5_wcss.c
1019
qcom_add_pdm_subdev(rproc, &wcss->pdm_subdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1020
qcom_add_ssr_subdev(rproc, &wcss->ssr_subdev, "q6wcss");
drivers/remoteproc/qcom_q6v5_wcss.c
1023
wcss->sysmon = qcom_add_sysmon_subdev(rproc,
drivers/remoteproc/qcom_q6v5_wcss.c
1032
ret = rproc_add(rproc);
drivers/remoteproc/qcom_q6v5_wcss.c
1036
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/qcom_q6v5_wcss.c
1045
qcom_remove_glink_subdev(rproc, &wcss->glink_subdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1046
qcom_remove_pdm_subdev(rproc, &wcss->pdm_subdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1047
qcom_remove_ssr_subdev(rproc, &wcss->ssr_subdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1053
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1054
struct q6v5_wcss *wcss = rproc->priv;
drivers/remoteproc/qcom_q6v5_wcss.c
1057
qcom_remove_pdm_subdev(rproc, &wcss->pdm_subdev);
drivers/remoteproc/qcom_q6v5_wcss.c
1058
rproc_del(rproc);
drivers/remoteproc/qcom_q6v5_wcss.c
239
static int q6v5_wcss_start(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_wcss.c
241
struct q6v5_wcss *wcss = rproc->priv;
drivers/remoteproc/qcom_q6v5_wcss.c
274
writel(rproc->bootaddr >> 4, wcss->reg_base + Q6SS_RST_EVB);
drivers/remoteproc/qcom_q6v5_wcss.c
456
static int q6v5_qcs404_wcss_start(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_wcss.c
458
struct q6v5_wcss *wcss = rproc->priv;
drivers/remoteproc/qcom_q6v5_wcss.c
477
writel(rproc->bootaddr >> 4, wcss->reg_base + Q6SS_RST_EVB);
drivers/remoteproc/qcom_q6v5_wcss.c
708
static int q6v5_wcss_stop(struct rproc *rproc)
drivers/remoteproc/qcom_q6v5_wcss.c
710
struct q6v5_wcss *wcss = rproc->priv;
drivers/remoteproc/qcom_q6v5_wcss.c
742
static void *q6v5_wcss_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/qcom_q6v5_wcss.c
744
struct q6v5_wcss *wcss = rproc->priv;
drivers/remoteproc/qcom_q6v5_wcss.c
754
static int q6v5_wcss_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_q6v5_wcss.c
756
struct q6v5_wcss *wcss = rproc->priv;
drivers/remoteproc/qcom_q6v5_wcss.c
759
ret = qcom_mdt_load_no_init(wcss->dev, fw, rproc->firmware,
drivers/remoteproc/qcom_q6v5_wcss.c
972
struct rproc *rproc;
drivers/remoteproc/qcom_q6v5_wcss.c
979
rproc = devm_rproc_alloc(&pdev->dev, pdev->name, desc->ops,
drivers/remoteproc/qcom_q6v5_wcss.c
981
if (!rproc) {
drivers/remoteproc/qcom_q6v5_wcss.c
986
wcss = rproc->priv;
drivers/remoteproc/qcom_sysmon.c
22
struct rproc *rproc;
drivers/remoteproc/qcom_sysmon.c
624
struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
drivers/remoteproc/qcom_sysmon.c
635
sysmon->dev = rproc->dev.parent;
drivers/remoteproc/qcom_sysmon.c
636
sysmon->rproc = rproc;
drivers/remoteproc/qcom_sysmon.c
687
rproc_add_subdev(rproc, &sysmon->subdev);
drivers/remoteproc/qcom_sysmon.c
715
rproc_remove_subdev(sysmon->rproc, &sysmon->subdev);
drivers/remoteproc/qcom_sysmon.c
751
struct rproc *rproc;
drivers/remoteproc/qcom_sysmon.c
753
rproc = rproc_get_by_child(&rpdev->dev);
drivers/remoteproc/qcom_sysmon.c
754
if (!rproc) {
drivers/remoteproc/qcom_sysmon.c
761
if (sysmon->rproc == rproc)
drivers/remoteproc/qcom_wcnss.c
155
static int wcnss_load(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/qcom_wcnss.c
157
struct qcom_wcnss *wcnss = rproc->priv;
drivers/remoteproc/qcom_wcnss.c
160
ret = qcom_mdt_load(wcnss->dev, fw, rproc->firmware, WCNSS_PAS_ID,
drivers/remoteproc/qcom_wcnss.c
228
static int wcnss_start(struct rproc *rproc)
drivers/remoteproc/qcom_wcnss.c
230
struct qcom_wcnss *wcnss = rproc->priv;
drivers/remoteproc/qcom_wcnss.c
294
static int wcnss_stop(struct rproc *rproc)
drivers/remoteproc/qcom_wcnss.c
296
struct qcom_wcnss *wcnss = rproc->priv;
drivers/remoteproc/qcom_wcnss.c
321
static void *wcnss_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/qcom_wcnss.c
323
struct qcom_wcnss *wcnss = rproc->priv;
drivers/remoteproc/qcom_wcnss.c
345
rproc_report_crash(wcnss->rproc, RPROC_WATCHDOG);
drivers/remoteproc/qcom_wcnss.c
360
rproc_report_crash(wcnss->rproc, RPROC_FATAL_ERROR);
drivers/remoteproc/qcom_wcnss.c
554
struct rproc *rproc;
drivers/remoteproc/qcom_wcnss.c
573
rproc = devm_rproc_alloc(&pdev->dev, pdev->name, &wcnss_ops,
drivers/remoteproc/qcom_wcnss.c
575
if (!rproc) {
drivers/remoteproc/qcom_wcnss.c
579
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
drivers/remoteproc/qcom_wcnss.c
581
wcnss = rproc->priv;
drivers/remoteproc/qcom_wcnss.c
583
wcnss->rproc = rproc;
drivers/remoteproc/qcom_wcnss.c
649
qcom_add_smd_subdev(rproc, &wcnss->smd_subdev);
drivers/remoteproc/qcom_wcnss.c
650
wcnss->sysmon = qcom_add_sysmon_subdev(rproc, "wcnss", WCNSS_SSCTL_ID);
drivers/remoteproc/qcom_wcnss.c
662
ret = rproc_add(rproc);
drivers/remoteproc/qcom_wcnss.c
68
struct rproc *rproc;
drivers/remoteproc/qcom_wcnss.c
682
rproc_del(wcnss->rproc);
drivers/remoteproc/qcom_wcnss.c
685
qcom_remove_smd_subdev(wcnss->rproc, &wcnss->smd_subdev);
drivers/remoteproc/rcar_rproc.c
100
struct rcar_rproc *priv = rproc->priv;
drivers/remoteproc/rcar_rproc.c
103
if (!rproc->bootaddr)
drivers/remoteproc/rcar_rproc.c
106
err = rcar_rst_set_rproc_boot_addr(rproc->bootaddr);
drivers/remoteproc/rcar_rproc.c
108
dev_err(&rproc->dev, "failed to set rproc boot addr\n");
drivers/remoteproc/rcar_rproc.c
114
dev_err(&rproc->dev, "failed to deassert reset\n");
drivers/remoteproc/rcar_rproc.c
119
static int rcar_rproc_stop(struct rproc *rproc)
drivers/remoteproc/rcar_rproc.c
121
struct rcar_rproc *priv = rproc->priv;
drivers/remoteproc/rcar_rproc.c
126
dev_err(&rproc->dev, "failed to assert reset\n");
drivers/remoteproc/rcar_rproc.c
148
struct rproc *rproc;
drivers/remoteproc/rcar_rproc.c
151
rproc = devm_rproc_alloc(dev, np->name, &rcar_rproc_ops,
drivers/remoteproc/rcar_rproc.c
153
if (!rproc)
drivers/remoteproc/rcar_rproc.c
156
priv = rproc->priv;
drivers/remoteproc/rcar_rproc.c
172
dev_set_drvdata(dev, rproc);
drivers/remoteproc/rcar_rproc.c
175
rproc->auto_boot = false;
drivers/remoteproc/rcar_rproc.c
177
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/rcar_rproc.c
22
static int rcar_rproc_mem_alloc(struct rproc *rproc,
drivers/remoteproc/rcar_rproc.c
25
struct device *dev = &rproc->dev;
drivers/remoteproc/rcar_rproc.c
42
static int rcar_rproc_mem_release(struct rproc *rproc,
drivers/remoteproc/rcar_rproc.c
45
dev_dbg(&rproc->dev, "unmap memory: %pa\n", &mem->dma);
drivers/remoteproc/rcar_rproc.c
51
static int rcar_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/rcar_rproc.c
53
struct device *dev = rproc->dev.parent;
drivers/remoteproc/rcar_rproc.c
83
rproc_add_carveout(rproc, mem);
drivers/remoteproc/rcar_rproc.c
87
static int rcar_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/rcar_rproc.c
91
ret = rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/rcar_rproc.c
93
dev_info(&rproc->dev, "No resource table in elf\n");
drivers/remoteproc/rcar_rproc.c
98
static int rcar_rproc_start(struct rproc *rproc)
drivers/remoteproc/remoteproc_cdev.c
102
cdev_init(&rproc->cdev, &rproc_fops);
drivers/remoteproc/remoteproc_cdev.c
103
rproc->cdev.owner = THIS_MODULE;
drivers/remoteproc/remoteproc_cdev.c
105
rproc->dev.devt = MKDEV(MAJOR(rproc_major), rproc->index);
drivers/remoteproc/remoteproc_cdev.c
106
cdev_set_parent(&rproc->cdev, &rproc->dev.kobj);
drivers/remoteproc/remoteproc_cdev.c
107
ret = cdev_add(&rproc->cdev, rproc->dev.devt, 1);
drivers/remoteproc/remoteproc_cdev.c
109
dev_err(&rproc->dev, "Failed to add char dev for %s\n", rproc->name);
drivers/remoteproc/remoteproc_cdev.c
114
void rproc_char_device_remove(struct rproc *rproc)
drivers/remoteproc/remoteproc_cdev.c
116
cdev_del(&rproc->cdev);
drivers/remoteproc/remoteproc_cdev.c
23
struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev);
drivers/remoteproc/remoteproc_cdev.c
35
ret = rproc_boot(rproc);
drivers/remoteproc/remoteproc_cdev.c
37
ret = rproc_shutdown(rproc);
drivers/remoteproc/remoteproc_cdev.c
39
ret = rproc_detach(rproc);
drivers/remoteproc/remoteproc_cdev.c
41
dev_err(&rproc->dev, "Unrecognized option\n");
drivers/remoteproc/remoteproc_cdev.c
50
struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev);
drivers/remoteproc/remoteproc_cdev.c
59
rproc->cdev_put_on_release = !!param;
drivers/remoteproc/remoteproc_cdev.c
62
param = (s32)rproc->cdev_put_on_release;
drivers/remoteproc/remoteproc_cdev.c
68
dev_err(&rproc->dev, "Unsupported ioctl\n");
drivers/remoteproc/remoteproc_cdev.c
77
struct rproc *rproc = container_of(inode->i_cdev, struct rproc, cdev);
drivers/remoteproc/remoteproc_cdev.c
80
if (!rproc->cdev_put_on_release)
drivers/remoteproc/remoteproc_cdev.c
83
if (rproc->state == RPROC_RUNNING)
drivers/remoteproc/remoteproc_cdev.c
84
rproc_shutdown(rproc);
drivers/remoteproc/remoteproc_cdev.c
85
else if (rproc->state == RPROC_ATTACHED)
drivers/remoteproc/remoteproc_cdev.c
86
ret = rproc_detach(rproc);
drivers/remoteproc/remoteproc_cdev.c
98
int rproc_char_device_add(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
100
struct device *dev = rproc->dev.parent;
drivers/remoteproc/remoteproc_core.c
1015
static int rproc_handle_resources(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
1018
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1022
if (!rproc->table_ptr)
drivers/remoteproc/remoteproc_core.c
1025
for (i = 0; i < rproc->table_ptr->num; i++) {
drivers/remoteproc/remoteproc_core.c
1026
int offset = rproc->table_ptr->offset[i];
drivers/remoteproc/remoteproc_core.c
1027
struct fw_rsc_hdr *hdr = (void *)rproc->table_ptr + offset;
drivers/remoteproc/remoteproc_core.c
1028
int avail = rproc->table_sz - offset - sizeof(*hdr);
drivers/remoteproc/remoteproc_core.c
103
if (!rproc->has_iommu) {
drivers/remoteproc/remoteproc_core.c
1041
ret = rproc_handle_rsc(rproc, hdr->type, rsc,
drivers/remoteproc/remoteproc_core.c
1062
ret = handler(rproc, rsc, offset + sizeof(*hdr), avail);
drivers/remoteproc/remoteproc_core.c
1070
static int rproc_prepare_subdevices(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1075
list_for_each_entry(subdev, &rproc->subdevs, node) {
drivers/remoteproc/remoteproc_core.c
1086
list_for_each_entry_continue_reverse(subdev, &rproc->subdevs, node) {
drivers/remoteproc/remoteproc_core.c
1094
static int rproc_start_subdevices(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1099
list_for_each_entry(subdev, &rproc->subdevs, node) {
drivers/remoteproc/remoteproc_core.c
1110
list_for_each_entry_continue_reverse(subdev, &rproc->subdevs, node) {
drivers/remoteproc/remoteproc_core.c
1118
static void rproc_stop_subdevices(struct rproc *rproc, bool crashed)
drivers/remoteproc/remoteproc_core.c
1122
list_for_each_entry_reverse(subdev, &rproc->subdevs, node) {
drivers/remoteproc/remoteproc_core.c
1128
static void rproc_unprepare_subdevices(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1132
list_for_each_entry_reverse(subdev, &rproc->subdevs, node) {
drivers/remoteproc/remoteproc_core.c
114
iommu_set_fault_handler(domain, rproc_iommu_fault, rproc);
drivers/remoteproc/remoteproc_core.c
1149
static int rproc_alloc_registered_carveouts(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1153
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1157
list_for_each_entry_safe(entry, tmp, &rproc->carveouts, node) {
drivers/remoteproc/remoteproc_core.c
1159
ret = entry->alloc(rproc, entry);
drivers/remoteproc/remoteproc_core.c
1169
rsc = (void *)rproc->table_ptr + entry->rsc_offset;
drivers/remoteproc/remoteproc_core.c
1216
void rproc_resource_cleanup(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
122
rproc->domain = domain;
drivers/remoteproc/remoteproc_core.c
1221
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1224
list_for_each_entry_safe(trace, ttmp, &rproc->traces, node) {
drivers/remoteproc/remoteproc_core.c
1226
rproc->num_traces--;
drivers/remoteproc/remoteproc_core.c
1232
list_for_each_entry_safe(entry, tmp, &rproc->mappings, node) {
drivers/remoteproc/remoteproc_core.c
1235
unmapped = iommu_unmap(rproc->domain, entry->da, entry->len);
drivers/remoteproc/remoteproc_core.c
1247
list_for_each_entry_safe(entry, tmp, &rproc->carveouts, node) {
drivers/remoteproc/remoteproc_core.c
1249
entry->release(rproc, entry);
drivers/remoteproc/remoteproc_core.c
1255
list_for_each_entry_safe(rvdev, rvtmp, &rproc->rvdevs, node)
drivers/remoteproc/remoteproc_core.c
1258
rproc_coredump_cleanup(rproc);
drivers/remoteproc/remoteproc_core.c
1262
static int rproc_start(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_core.c
1265
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1269
ret = rproc_load_segments(rproc, fw);
drivers/remoteproc/remoteproc_core.c
1283
loaded_table = rproc_find_loaded_rsc_table(rproc, fw);
drivers/remoteproc/remoteproc_core.c
1285
memcpy(loaded_table, rproc->cached_table, rproc->table_sz);
drivers/remoteproc/remoteproc_core.c
1286
rproc->table_ptr = loaded_table;
drivers/remoteproc/remoteproc_core.c
1289
ret = rproc_prepare_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1292
rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1297
ret = rproc->ops->start(rproc);
drivers/remoteproc/remoteproc_core.c
1299
dev_err(dev, "can't start rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1304
ret = rproc_start_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1307
rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
131
static void rproc_disable_iommu(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1311
rproc->state = RPROC_RUNNING;
drivers/remoteproc/remoteproc_core.c
1313
dev_info(dev, "remote processor %s is now up\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1318
rproc->ops->stop(rproc);
drivers/remoteproc/remoteproc_core.c
1320
rproc_unprepare_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1322
rproc->table_ptr = rproc->cached_table;
drivers/remoteproc/remoteproc_core.c
1327
static int __rproc_attach(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1329
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
133
struct iommu_domain *domain = rproc->domain;
drivers/remoteproc/remoteproc_core.c
1332
ret = rproc_prepare_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1335
rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
134
struct device *dev = rproc->dev.parent;
drivers/remoteproc/remoteproc_core.c
1340
ret = rproc_attach_device(rproc);
drivers/remoteproc/remoteproc_core.c
1343
rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1348
ret = rproc_start_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1351
rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1355
rproc->state = RPROC_ATTACHED;
drivers/remoteproc/remoteproc_core.c
1357
dev_info(dev, "remote processor %s is now attached\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1362
rproc->ops->stop(rproc);
drivers/remoteproc/remoteproc_core.c
1364
rproc_unprepare_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1372
static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_core.c
1374
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1375
const char *name = rproc->firmware;
drivers/remoteproc/remoteproc_core.c
1378
ret = rproc_fw_sanity_check(rproc, fw);
drivers/remoteproc/remoteproc_core.c
1388
ret = rproc_enable_iommu(rproc);
drivers/remoteproc/remoteproc_core.c
1395
ret = rproc_prepare_device(rproc);
drivers/remoteproc/remoteproc_core.c
1397
dev_err(dev, "can't prepare rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1401
rproc->bootaddr = rproc_get_boot_addr(rproc, fw);
drivers/remoteproc/remoteproc_core.c
1404
ret = rproc_parse_fw(rproc, fw);
drivers/remoteproc/remoteproc_core.c
1409
rproc->max_notifyid = -1;
drivers/remoteproc/remoteproc_core.c
1412
rproc->nb_vdev = 0;
drivers/remoteproc/remoteproc_core.c
1415
ret = rproc_handle_resources(rproc, rproc_loading_handlers);
drivers/remoteproc/remoteproc_core.c
1422
ret = rproc_alloc_registered_carveouts(rproc);
drivers/remoteproc/remoteproc_core.c
1429
ret = rproc_start(rproc, fw);
drivers/remoteproc/remoteproc_core.c
1436
rproc_resource_cleanup(rproc);
drivers/remoteproc/remoteproc_core.c
1437
kfree(rproc->cached_table);
drivers/remoteproc/remoteproc_core.c
1438
rproc->cached_table = NULL;
drivers/remoteproc/remoteproc_core.c
1439
rproc->table_ptr = NULL;
drivers/remoteproc/remoteproc_core.c
1442
rproc_unprepare_device(rproc);
drivers/remoteproc/remoteproc_core.c
1444
rproc_disable_iommu(rproc);
drivers/remoteproc/remoteproc_core.c
1448
static int rproc_set_rsc_table(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1451
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1455
table_ptr = rproc_get_loaded_rsc_table(rproc, &table_sz);
drivers/remoteproc/remoteproc_core.c
1477
if (rproc->ops->detach) {
drivers/remoteproc/remoteproc_core.c
1478
rproc->clean_table = kmemdup(table_ptr, table_sz, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
1479
if (!rproc->clean_table)
drivers/remoteproc/remoteproc_core.c
1482
rproc->clean_table = NULL;
drivers/remoteproc/remoteproc_core.c
1485
rproc->cached_table = NULL;
drivers/remoteproc/remoteproc_core.c
1486
rproc->table_ptr = table_ptr;
drivers/remoteproc/remoteproc_core.c
1487
rproc->table_sz = table_sz;
drivers/remoteproc/remoteproc_core.c
1492
static int rproc_reset_rsc_table_on_detach(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1497
if (!rproc->table_ptr)
drivers/remoteproc/remoteproc_core.c
1505
if (WARN_ON(!rproc->clean_table))
drivers/remoteproc/remoteproc_core.c
1509
table_ptr = rproc->table_ptr;
drivers/remoteproc/remoteproc_core.c
1518
rproc->cached_table = kmemdup(rproc->table_ptr,
drivers/remoteproc/remoteproc_core.c
1519
rproc->table_sz, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
1520
if (!rproc->cached_table)
drivers/remoteproc/remoteproc_core.c
1527
rproc->table_ptr = rproc->cached_table;
drivers/remoteproc/remoteproc_core.c
1534
memcpy(table_ptr, rproc->clean_table, rproc->table_sz);
drivers/remoteproc/remoteproc_core.c
1540
kfree(rproc->clean_table);
drivers/remoteproc/remoteproc_core.c
1545
static int rproc_reset_rsc_table_on_stop(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1548
if (!rproc->table_ptr)
drivers/remoteproc/remoteproc_core.c
1556
if (rproc->cached_table)
drivers/remoteproc/remoteproc_core.c
1566
rproc->cached_table = kmemdup(rproc->table_ptr,
drivers/remoteproc/remoteproc_core.c
1567
rproc->table_sz, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
1568
if (!rproc->cached_table)
drivers/remoteproc/remoteproc_core.c
1575
kfree(rproc->clean_table);
drivers/remoteproc/remoteproc_core.c
1582
rproc->table_ptr = rproc->cached_table;
drivers/remoteproc/remoteproc_core.c
1590
static int rproc_attach(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1592
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1599
ret = rproc_enable_iommu(rproc);
drivers/remoteproc/remoteproc_core.c
1606
ret = rproc_prepare_device(rproc);
drivers/remoteproc/remoteproc_core.c
1608
dev_err(dev, "can't prepare rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1612
ret = rproc_set_rsc_table(rproc);
drivers/remoteproc/remoteproc_core.c
1619
rproc->max_notifyid = -1;
drivers/remoteproc/remoteproc_core.c
1622
rproc->nb_vdev = 0;
drivers/remoteproc/remoteproc_core.c
1629
ret = rproc_handle_resources(rproc, rproc_loading_handlers);
drivers/remoteproc/remoteproc_core.c
1636
ret = rproc_alloc_registered_carveouts(rproc);
drivers/remoteproc/remoteproc_core.c
1643
ret = __rproc_attach(rproc);
drivers/remoteproc/remoteproc_core.c
1650
rproc_resource_cleanup(rproc);
drivers/remoteproc/remoteproc_core.c
1652
rproc_unprepare_device(rproc);
drivers/remoteproc/remoteproc_core.c
1653
kfree(rproc->clean_table);
drivers/remoteproc/remoteproc_core.c
1655
rproc_disable_iommu(rproc);
drivers/remoteproc/remoteproc_core.c
1669
struct rproc *rproc = context;
drivers/remoteproc/remoteproc_core.c
1671
rproc_boot(rproc);
drivers/remoteproc/remoteproc_core.c
1676
static int rproc_trigger_auto_boot(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1686
if (rproc->state == RPROC_DETACHED)
drivers/remoteproc/remoteproc_core.c
1687
return rproc_boot(rproc);
drivers/remoteproc/remoteproc_core.c
1694
rproc->firmware, &rproc->dev, GFP_KERNEL,
drivers/remoteproc/remoteproc_core.c
1695
rproc, rproc_auto_boot_callback);
drivers/remoteproc/remoteproc_core.c
1697
dev_err(&rproc->dev, "request_firmware_nowait err: %d\n", ret);
drivers/remoteproc/remoteproc_core.c
1702
static int rproc_stop(struct rproc *rproc, bool crashed)
drivers/remoteproc/remoteproc_core.c
1704
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1708
if (!rproc->ops->stop)
drivers/remoteproc/remoteproc_core.c
1712
rproc_stop_subdevices(rproc, crashed);
drivers/remoteproc/remoteproc_core.c
1715
ret = rproc_reset_rsc_table_on_stop(rproc);
drivers/remoteproc/remoteproc_core.c
1723
ret = rproc->ops->stop(rproc);
drivers/remoteproc/remoteproc_core.c
1729
rproc_unprepare_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1731
rproc->state = RPROC_OFFLINE;
drivers/remoteproc/remoteproc_core.c
1733
dev_info(dev, "stopped remote processor %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1741
static int __rproc_detach(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1743
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1747
if (!rproc->ops->detach)
drivers/remoteproc/remoteproc_core.c
1751
rproc_stop_subdevices(rproc, false);
drivers/remoteproc/remoteproc_core.c
1754
ret = rproc_reset_rsc_table_on_detach(rproc);
drivers/remoteproc/remoteproc_core.c
1761
ret = rproc->ops->detach(rproc);
drivers/remoteproc/remoteproc_core.c
1767
rproc_unprepare_subdevices(rproc);
drivers/remoteproc/remoteproc_core.c
1769
rproc->state = RPROC_DETACHED;
drivers/remoteproc/remoteproc_core.c
1771
dev_info(dev, "detached remote processor %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1776
static int rproc_attach_recovery(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1780
ret = __rproc_detach(rproc);
drivers/remoteproc/remoteproc_core.c
1784
return __rproc_attach(rproc);
drivers/remoteproc/remoteproc_core.c
1787
static int rproc_boot_recovery(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1790
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1793
ret = rproc_stop(rproc, true);
drivers/remoteproc/remoteproc_core.c
1798
rproc->ops->coredump(rproc);
drivers/remoteproc/remoteproc_core.c
1801
ret = request_firmware(&firmware_p, rproc->firmware, dev);
drivers/remoteproc/remoteproc_core.c
1808
ret = rproc_start(rproc, firmware_p);
drivers/remoteproc/remoteproc_core.c
1827
int rproc_trigger_recovery(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1829
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1832
ret = mutex_lock_interruptible(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1837
if (rproc->state != RPROC_CRASHED)
drivers/remoteproc/remoteproc_core.c
1840
dev_err(dev, "recovering %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1842
if (rproc_has_feature(rproc, RPROC_FEAT_ATTACH_ON_RECOVERY))
drivers/remoteproc/remoteproc_core.c
1843
ret = rproc_attach_recovery(rproc);
drivers/remoteproc/remoteproc_core.c
1845
ret = rproc_boot_recovery(rproc);
drivers/remoteproc/remoteproc_core.c
1848
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1861
struct rproc *rproc = container_of(work, struct rproc, crash_handler);
drivers/remoteproc/remoteproc_core.c
1862
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1866
mutex_lock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1868
if (rproc->state == RPROC_CRASHED) {
drivers/remoteproc/remoteproc_core.c
1870
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1874
if (rproc->state == RPROC_OFFLINE) {
drivers/remoteproc/remoteproc_core.c
1876
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1880
rproc->state = RPROC_CRASHED;
drivers/remoteproc/remoteproc_core.c
1881
dev_err(dev, "handling crash #%u in %s\n", ++rproc->crash_cnt,
drivers/remoteproc/remoteproc_core.c
1882
rproc->name);
drivers/remoteproc/remoteproc_core.c
1884
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1886
if (!rproc->recovery_disabled)
drivers/remoteproc/remoteproc_core.c
1887
rproc_trigger_recovery(rproc);
drivers/remoteproc/remoteproc_core.c
189
void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/remoteproc_core.c
1890
pm_relax(rproc->dev.parent);
drivers/remoteproc/remoteproc_core.c
1904
int rproc_boot(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1910
if (!rproc) {
drivers/remoteproc/remoteproc_core.c
1915
dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1917
ret = mutex_lock_interruptible(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1919
dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1923
if (rproc->state == RPROC_DELETED) {
drivers/remoteproc/remoteproc_core.c
1925
dev_err(dev, "can't boot deleted rproc %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1930
if (atomic_inc_return(&rproc->power) > 1) {
drivers/remoteproc/remoteproc_core.c
1935
if (rproc->state == RPROC_DETACHED) {
drivers/remoteproc/remoteproc_core.c
1936
dev_info(dev, "attaching to %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1938
ret = rproc_attach(rproc);
drivers/remoteproc/remoteproc_core.c
194
if (rproc->ops->da_to_va) {
drivers/remoteproc/remoteproc_core.c
1940
dev_info(dev, "powering up %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
1943
ret = request_firmware(&firmware_p, rproc->firmware, dev);
drivers/remoteproc/remoteproc_core.c
1949
ret = rproc_fw_boot(rproc, firmware_p);
drivers/remoteproc/remoteproc_core.c
195
ptr = rproc->ops->da_to_va(rproc, da, len, is_iomem);
drivers/remoteproc/remoteproc_core.c
1956
atomic_dec(&rproc->power);
drivers/remoteproc/remoteproc_core.c
1958
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1984
int rproc_shutdown(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
1986
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
1989
ret = mutex_lock_interruptible(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
1991
dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
1995
if (rproc->state != RPROC_RUNNING &&
drivers/remoteproc/remoteproc_core.c
1996
rproc->state != RPROC_ATTACHED) {
drivers/remoteproc/remoteproc_core.c
200
list_for_each_entry(carveout, &rproc->carveouts, node) {
drivers/remoteproc/remoteproc_core.c
2002
if (!atomic_dec_and_test(&rproc->power))
drivers/remoteproc/remoteproc_core.c
2005
ret = rproc_stop(rproc, false);
drivers/remoteproc/remoteproc_core.c
2007
atomic_inc(&rproc->power);
drivers/remoteproc/remoteproc_core.c
2012
rproc_resource_cleanup(rproc);
drivers/remoteproc/remoteproc_core.c
2015
rproc_unprepare_device(rproc);
drivers/remoteproc/remoteproc_core.c
2017
rproc_disable_iommu(rproc);
drivers/remoteproc/remoteproc_core.c
2020
kfree(rproc->cached_table);
drivers/remoteproc/remoteproc_core.c
2021
rproc->cached_table = NULL;
drivers/remoteproc/remoteproc_core.c
2022
rproc->table_ptr = NULL;
drivers/remoteproc/remoteproc_core.c
2024
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2049
int rproc_detach(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2051
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
2054
ret = mutex_lock_interruptible(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2056
dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
2060
if (rproc->state != RPROC_ATTACHED) {
drivers/remoteproc/remoteproc_core.c
2066
if (!atomic_dec_and_test(&rproc->power)) {
drivers/remoteproc/remoteproc_core.c
2071
ret = __rproc_detach(rproc);
drivers/remoteproc/remoteproc_core.c
2073
atomic_inc(&rproc->power);
drivers/remoteproc/remoteproc_core.c
2078
rproc_resource_cleanup(rproc);
drivers/remoteproc/remoteproc_core.c
2081
rproc_unprepare_device(rproc);
drivers/remoteproc/remoteproc_core.c
2083
rproc_disable_iommu(rproc);
drivers/remoteproc/remoteproc_core.c
2086
kfree(rproc->cached_table);
drivers/remoteproc/remoteproc_core.c
2087
rproc->cached_table = NULL;
drivers/remoteproc/remoteproc_core.c
2088
rproc->table_ptr = NULL;
drivers/remoteproc/remoteproc_core.c
2090
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2108
struct rproc *rproc_get_by_phandle(phandle phandle)
drivers/remoteproc/remoteproc_core.c
2110
struct rproc *rproc = NULL, *r;
drivers/remoteproc/remoteproc_core.c
2146
rproc = r;
drivers/remoteproc/remoteproc_core.c
2147
get_device(&rproc->dev);
drivers/remoteproc/remoteproc_core.c
2155
return rproc;
drivers/remoteproc/remoteproc_core.c
2158
struct rproc *rproc_get_by_phandle(phandle phandle)
drivers/remoteproc/remoteproc_core.c
2183
int rproc_set_firmware(struct rproc *rproc, const char *fw_name)
drivers/remoteproc/remoteproc_core.c
2189
if (!rproc || !fw_name)
drivers/remoteproc/remoteproc_core.c
2192
dev = rproc->dev.parent;
drivers/remoteproc/remoteproc_core.c
2194
ret = mutex_lock_interruptible(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2196
dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
drivers/remoteproc/remoteproc_core.c
2200
if (rproc->state != RPROC_OFFLINE) {
drivers/remoteproc/remoteproc_core.c
2219
kfree_const(rproc->firmware);
drivers/remoteproc/remoteproc_core.c
2220
rproc->firmware = p;
drivers/remoteproc/remoteproc_core.c
2223
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2228
static int rproc_validate(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2230
switch (rproc->state) {
drivers/remoteproc/remoteproc_core.c
2236
if (!rproc->ops->start)
drivers/remoteproc/remoteproc_core.c
2244
if (!rproc->ops->attach)
drivers/remoteproc/remoteproc_core.c
2251
if (rproc->cached_table)
drivers/remoteproc/remoteproc_core.c
2285
int rproc_add(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2287
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
2290
ret = rproc_validate(rproc);
drivers/remoteproc/remoteproc_core.c
2295
ret = rproc_char_device_add(rproc);
drivers/remoteproc/remoteproc_core.c
2305
dev_info(dev, "%s is available\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
2308
rproc_create_debug_dir(rproc);
drivers/remoteproc/remoteproc_core.c
2311
if (rproc->auto_boot) {
drivers/remoteproc/remoteproc_core.c
2312
ret = rproc_trigger_auto_boot(rproc);
drivers/remoteproc/remoteproc_core.c
2319
list_add_rcu(&rproc->node, &rproc_list);
drivers/remoteproc/remoteproc_core.c
2325
rproc_delete_debug_dir(rproc);
drivers/remoteproc/remoteproc_core.c
2328
rproc_char_device_remove(rproc);
drivers/remoteproc/remoteproc_core.c
2333
static void devm_rproc_remove(void *rproc)
drivers/remoteproc/remoteproc_core.c
2335
rproc_del(rproc);
drivers/remoteproc/remoteproc_core.c
2348
int devm_rproc_add(struct device *dev, struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2352
err = rproc_add(rproc);
drivers/remoteproc/remoteproc_core.c
2356
return devm_add_action_or_reset(dev, devm_rproc_remove, rproc);
drivers/remoteproc/remoteproc_core.c
2371
struct rproc *rproc = container_of(dev, struct rproc, dev);
drivers/remoteproc/remoteproc_core.c
2373
dev_info(&rproc->dev, "releasing %s\n", rproc->name);
drivers/remoteproc/remoteproc_core.c
2375
idr_destroy(&rproc->notifyids);
drivers/remoteproc/remoteproc_core.c
2377
if (rproc->index >= 0)
drivers/remoteproc/remoteproc_core.c
2378
ida_free(&rproc_dev_index, rproc->index);
drivers/remoteproc/remoteproc_core.c
2380
kfree_const(rproc->firmware);
drivers/remoteproc/remoteproc_core.c
2381
kfree_const(rproc->name);
drivers/remoteproc/remoteproc_core.c
2382
kfree(rproc->ops);
drivers/remoteproc/remoteproc_core.c
2383
kfree(rproc);
drivers/remoteproc/remoteproc_core.c
2391
static int rproc_alloc_firmware(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
2408
rproc->firmware = p;
drivers/remoteproc/remoteproc_core.c
2413
static int rproc_alloc_ops(struct rproc *rproc, const struct rproc_ops *ops)
drivers/remoteproc/remoteproc_core.c
2415
rproc->ops = kmemdup(ops, sizeof(*ops), GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
2416
if (!rproc->ops)
drivers/remoteproc/remoteproc_core.c
2420
if (!rproc->ops->coredump)
drivers/remoteproc/remoteproc_core.c
2421
rproc->ops->coredump = rproc_coredump;
drivers/remoteproc/remoteproc_core.c
2423
if (rproc->ops->load)
drivers/remoteproc/remoteproc_core.c
2427
rproc->ops->load = rproc_elf_load_segments;
drivers/remoteproc/remoteproc_core.c
2428
rproc->ops->parse_fw = rproc_elf_load_rsc_table;
drivers/remoteproc/remoteproc_core.c
2429
rproc->ops->find_loaded_rsc_table = rproc_elf_find_loaded_rsc_table;
drivers/remoteproc/remoteproc_core.c
2430
rproc->ops->sanity_check = rproc_elf_sanity_check;
drivers/remoteproc/remoteproc_core.c
2431
rproc->ops->get_boot_addr = rproc_elf_get_boot_addr;
drivers/remoteproc/remoteproc_core.c
2459
struct rproc *rproc_alloc(struct device *dev, const char *name,
drivers/remoteproc/remoteproc_core.c
2463
struct rproc *rproc;
drivers/remoteproc/remoteproc_core.c
2468
rproc = kzalloc(sizeof(struct rproc) + len, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
2469
if (!rproc)
drivers/remoteproc/remoteproc_core.c
2472
rproc->priv = &rproc[1];
drivers/remoteproc/remoteproc_core.c
2473
rproc->auto_boot = true;
drivers/remoteproc/remoteproc_core.c
2474
rproc->elf_class = ELFCLASSNONE;
drivers/remoteproc/remoteproc_core.c
2475
rproc->elf_machine = EM_NONE;
drivers/remoteproc/remoteproc_core.c
2477
device_initialize(&rproc->dev);
drivers/remoteproc/remoteproc_core.c
2478
rproc->dev.parent = dev;
drivers/remoteproc/remoteproc_core.c
2479
rproc->dev.type = &rproc_type;
drivers/remoteproc/remoteproc_core.c
248
rproc_find_carveout_by_name(struct rproc *rproc, const char *name, ...)
drivers/remoteproc/remoteproc_core.c
2480
rproc->dev.class = &rproc_class;
drivers/remoteproc/remoteproc_core.c
2481
rproc->dev.driver_data = rproc;
drivers/remoteproc/remoteproc_core.c
2482
idr_init(&rproc->notifyids);
drivers/remoteproc/remoteproc_core.c
2485
rproc->index = ida_alloc(&rproc_dev_index, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
2486
if (rproc->index < 0) {
drivers/remoteproc/remoteproc_core.c
2487
dev_err(dev, "ida_alloc failed: %d\n", rproc->index);
drivers/remoteproc/remoteproc_core.c
2491
rproc->name = kstrdup_const(name, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
2492
if (!rproc->name)
drivers/remoteproc/remoteproc_core.c
2495
if (rproc_alloc_firmware(rproc, name, firmware))
drivers/remoteproc/remoteproc_core.c
2498
if (rproc_alloc_ops(rproc, ops))
drivers/remoteproc/remoteproc_core.c
2501
dev_set_name(&rproc->dev, "remoteproc%d", rproc->index);
drivers/remoteproc/remoteproc_core.c
2503
atomic_set(&rproc->power, 0);
drivers/remoteproc/remoteproc_core.c
2505
mutex_init(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2507
INIT_LIST_HEAD(&rproc->carveouts);
drivers/remoteproc/remoteproc_core.c
2508
INIT_LIST_HEAD(&rproc->mappings);
drivers/remoteproc/remoteproc_core.c
2509
INIT_LIST_HEAD(&rproc->traces);
drivers/remoteproc/remoteproc_core.c
2510
INIT_LIST_HEAD(&rproc->rvdevs);
drivers/remoteproc/remoteproc_core.c
2511
INIT_LIST_HEAD(&rproc->subdevs);
drivers/remoteproc/remoteproc_core.c
2512
INIT_LIST_HEAD(&rproc->dump_segments);
drivers/remoteproc/remoteproc_core.c
2514
INIT_WORK(&rproc->crash_handler, rproc_crash_handler_work);
drivers/remoteproc/remoteproc_core.c
2516
rproc->state = RPROC_OFFLINE;
drivers/remoteproc/remoteproc_core.c
2518
return rproc;
drivers/remoteproc/remoteproc_core.c
2521
put_device(&rproc->dev);
drivers/remoteproc/remoteproc_core.c
2535
void rproc_free(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2537
put_device(&rproc->dev);
drivers/remoteproc/remoteproc_core.c
2550
void rproc_put(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2552
if (rproc->dev.parent->driver)
drivers/remoteproc/remoteproc_core.c
2553
module_put(rproc->dev.parent->driver->owner);
drivers/remoteproc/remoteproc_core.c
2555
module_put(rproc->dev.parent->parent->driver->owner);
drivers/remoteproc/remoteproc_core.c
2557
put_device(&rproc->dev);
drivers/remoteproc/remoteproc_core.c
2576
int rproc_del(struct rproc *rproc)
drivers/remoteproc/remoteproc_core.c
2578
if (!rproc)
drivers/remoteproc/remoteproc_core.c
2582
rproc_shutdown(rproc);
drivers/remoteproc/remoteproc_core.c
2584
mutex_lock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2585
rproc->state = RPROC_DELETED;
drivers/remoteproc/remoteproc_core.c
2586
mutex_unlock(&rproc->lock);
drivers/remoteproc/remoteproc_core.c
2588
rproc_delete_debug_dir(rproc);
drivers/remoteproc/remoteproc_core.c
2592
list_del_rcu(&rproc->node);
drivers/remoteproc/remoteproc_core.c
2598
device_del(&rproc->dev);
drivers/remoteproc/remoteproc_core.c
2599
rproc_char_device_remove(rproc);
drivers/remoteproc/remoteproc_core.c
2607
rproc_free(*(struct rproc **)res);
drivers/remoteproc/remoteproc_core.c
261
list_for_each_entry(carveout, &rproc->carveouts, node) {
drivers/remoteproc/remoteproc_core.c
2623
struct rproc *devm_rproc_alloc(struct device *dev, const char *name,
drivers/remoteproc/remoteproc_core.c
2627
struct rproc **ptr, *rproc;
drivers/remoteproc/remoteproc_core.c
2633
rproc = rproc_alloc(dev, name, ops, firmware, len);
drivers/remoteproc/remoteproc_core.c
2634
if (rproc) {
drivers/remoteproc/remoteproc_core.c
2635
*ptr = rproc;
drivers/remoteproc/remoteproc_core.c
2641
return rproc;
drivers/remoteproc/remoteproc_core.c
2652
void rproc_add_subdev(struct rproc *rproc, struct rproc_subdev *subdev)
drivers/remoteproc/remoteproc_core.c
2654
list_add_tail(&subdev->node, &rproc->subdevs);
drivers/remoteproc/remoteproc_core.c
2663
void rproc_remove_subdev(struct rproc *rproc, struct rproc_subdev *subdev)
drivers/remoteproc/remoteproc_core.c
2675
struct rproc *rproc_get_by_child(struct device *dev)
drivers/remoteproc/remoteproc_core.c
2697
void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type)
drivers/remoteproc/remoteproc_core.c
2699
if (!rproc) {
drivers/remoteproc/remoteproc_core.c
2705
pm_stay_awake(rproc->dev.parent);
drivers/remoteproc/remoteproc_core.c
2707
dev_err(&rproc->dev, "crash detected in %s: type %s\n",
drivers/remoteproc/remoteproc_core.c
2708
rproc->name, rproc_crash_to_string(type));
drivers/remoteproc/remoteproc_core.c
2710
queue_work(rproc_recovery_wq, &rproc->crash_handler);
drivers/remoteproc/remoteproc_core.c
2718
struct rproc *rproc;
drivers/remoteproc/remoteproc_core.c
2722
list_for_each_entry_rcu(rproc, &rproc_list, node) {
drivers/remoteproc/remoteproc_core.c
2723
if (!rproc->ops->panic)
drivers/remoteproc/remoteproc_core.c
2726
if (rproc->state != RPROC_RUNNING &&
drivers/remoteproc/remoteproc_core.c
2727
rproc->state != RPROC_ATTACHED)
drivers/remoteproc/remoteproc_core.c
2730
d = rproc->ops->panic(rproc);
drivers/remoteproc/remoteproc_core.c
286
static int rproc_check_carveout_da(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
289
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
323
struct rproc *rproc = rvdev->rproc;
drivers/remoteproc/remoteproc_core.c
324
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
334
rsc = (void *)rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_core.c
337
mem = rproc_find_carveout_by_name(rproc, "vdev%dvring%d", rvdev->index,
drivers/remoteproc/remoteproc_core.c
340
if (rproc_check_carveout_da(rproc, mem, rsc->vring[i].da, size))
drivers/remoteproc/remoteproc_core.c
355
rproc_add_carveout(rproc, mem);
drivers/remoteproc/remoteproc_core.c
363
ret = idr_alloc(&rproc->notifyids, rvring, 0, 0, GFP_KERNEL);
drivers/remoteproc/remoteproc_core.c
371
if (notifyid > rproc->max_notifyid)
drivers/remoteproc/remoteproc_core.c
372
rproc->max_notifyid = notifyid;
drivers/remoteproc/remoteproc_core.c
384
struct rproc *rproc = rvdev->rproc;
drivers/remoteproc/remoteproc_core.c
385
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
408
struct rproc *rproc = rvring->rvdev->rproc;
drivers/remoteproc/remoteproc_core.c
412
idr_remove(&rproc->notifyids, rvring->notifyid);
drivers/remoteproc/remoteproc_core.c
425
if (rproc->table_ptr) {
drivers/remoteproc/remoteproc_core.c
426
rsc = (void *)rproc->table_ptr + rvring->rvdev->rsc_offset;
drivers/remoteproc/remoteproc_core.c
432
void rproc_add_rvdev(struct rproc *rproc, struct rproc_vdev *rvdev)
drivers/remoteproc/remoteproc_core.c
434
if (rvdev && rproc)
drivers/remoteproc/remoteproc_core.c
435
list_add_tail(&rvdev->node, &rproc->rvdevs);
drivers/remoteproc/remoteproc_core.c
47
typedef int (*rproc_handle_resource_t)(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
471
static int rproc_handle_vdev(struct rproc *rproc, void *ptr,
drivers/remoteproc/remoteproc_core.c
475
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
50
static int rproc_alloc_carveout(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
504
rvdev_data.index = rproc->nb_vdev++;
drivers/remoteproc/remoteproc_core.c
52
static int rproc_release_carveout(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
541
static int rproc_handle_trace(struct rproc *rproc, void *ptr,
drivers/remoteproc/remoteproc_core.c
546
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
569
trace->rproc = rproc;
drivers/remoteproc/remoteproc_core.c
572
snprintf(name, sizeof(name), "trace%d", rproc->num_traces);
drivers/remoteproc/remoteproc_core.c
575
trace->tfile = rproc_create_trace_file(name, rproc, trace);
drivers/remoteproc/remoteproc_core.c
577
list_add_tail(&trace->node, &rproc->traces);
drivers/remoteproc/remoteproc_core.c
579
rproc->num_traces++;
drivers/remoteproc/remoteproc_core.c
615
static int rproc_handle_devmem(struct rproc *rproc, void *ptr,
drivers/remoteproc/remoteproc_core.c
620
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
624
if (!rproc->domain)
drivers/remoteproc/remoteproc_core.c
642
ret = iommu_map(rproc->domain, rsc->da, rsc->pa, rsc->len, rsc->flags,
drivers/remoteproc/remoteproc_core.c
658
list_add_tail(&mapping->node, &rproc->mappings);
drivers/remoteproc/remoteproc_core.c
680
static int rproc_alloc_carveout(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
684
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
700
if (mem->da != FW_RSC_ADDR_ANY && !rproc->domain) {
drivers/remoteproc/remoteproc_core.c
729
if (mem->da != FW_RSC_ADDR_ANY && rproc->domain) {
drivers/remoteproc/remoteproc_core.c
736
ret = iommu_map(rproc->domain, mem->da, dma, mem->len,
drivers/remoteproc/remoteproc_core.c
752
list_add_tail(&mapping->node, &rproc->mappings);
drivers/remoteproc/remoteproc_core.c
788
static int rproc_release_carveout(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
791
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
819
static int rproc_handle_carveout(struct rproc *rproc,
drivers/remoteproc/remoteproc_core.c
824
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_core.c
84
struct rproc *rproc = token;
drivers/remoteproc/remoteproc_core.c
844
carveout = rproc_find_carveout_by_name(rproc, rsc->name);
drivers/remoteproc/remoteproc_core.c
853
if (rproc_check_carveout_da(rproc, carveout, rsc->da, rsc->len))
drivers/remoteproc/remoteproc_core.c
874
rproc_add_carveout(rproc, carveout);
drivers/remoteproc/remoteproc_core.c
88
rproc_report_crash(rproc, RPROC_MMUFAULT);
drivers/remoteproc/remoteproc_core.c
887
void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem)
drivers/remoteproc/remoteproc_core.c
889
list_add_tail(&mem->node, &rproc->carveouts);
drivers/remoteproc/remoteproc_core.c
913
int (*alloc)(struct rproc *, struct rproc_mem_entry *),
drivers/remoteproc/remoteproc_core.c
914
int (*release)(struct rproc *, struct rproc_mem_entry *),
drivers/remoteproc/remoteproc_core.c
97
static int rproc_enable_iommu(struct rproc *rproc)
drivers/remoteproc/remoteproc_coredump.c
114
int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine)
drivers/remoteproc/remoteproc_coredump.c
119
rproc->elf_class = class;
drivers/remoteproc/remoteproc_coredump.c
120
rproc->elf_machine = machine;
drivers/remoteproc/remoteproc_coredump.c
152
static void rproc_copy_segment(struct rproc *rproc, void *dest,
drivers/remoteproc/remoteproc_coredump.c
160
segment->dump(rproc, segment, dest, offset, size);
drivers/remoteproc/remoteproc_coredump.c
162
ptr = rproc_da_to_va(rproc, segment->da + offset, size, &is_iomem);
drivers/remoteproc/remoteproc_coredump.c
164
dev_err(&rproc->dev,
drivers/remoteproc/remoteproc_coredump.c
17
struct rproc *rproc;
drivers/remoteproc/remoteproc_coredump.c
184
struct rproc *rproc = dump_state->rproc;
drivers/remoteproc/remoteproc_coredump.c
201
&rproc->dump_segments,
drivers/remoteproc/remoteproc_coredump.c
205
dev_info(&rproc->dev, "Ramdump done, %lld bytes read",
drivers/remoteproc/remoteproc_coredump.c
212
rproc_copy_segment(rproc, buffer, seg, seg->size - seg_data,
drivers/remoteproc/remoteproc_coredump.c
235
void rproc_coredump(struct rproc *rproc)
drivers/remoteproc/remoteproc_coredump.c
243
u8 class = rproc->elf_class;
drivers/remoteproc/remoteproc_coredump.c
246
enum rproc_dump_mechanism dump_conf = rproc->dump_conf;
drivers/remoteproc/remoteproc_coredump.c
248
if (list_empty(&rproc->dump_segments) ||
drivers/remoteproc/remoteproc_coredump.c
253
dev_err(&rproc->dev, "ELF class is not set\n");
drivers/remoteproc/remoteproc_coredump.c
258
list_for_each_entry(segment, &rproc->dump_segments, node) {
drivers/remoteproc/remoteproc_coredump.c
26
void rproc_coredump_cleanup(struct rproc *rproc)
drivers/remoteproc/remoteproc_coredump.c
282
elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine);
drivers/remoteproc/remoteproc_coredump.c
284
elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr);
drivers/remoteproc/remoteproc_coredump.c
294
list_for_each_entry(segment, &rproc->dump_segments, node) {
drivers/remoteproc/remoteproc_coredump.c
30
list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) {
drivers/remoteproc/remoteproc_coredump.c
306
rproc_copy_segment(rproc, data + offset, segment, 0,
drivers/remoteproc/remoteproc_coredump.c
313
dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL);
drivers/remoteproc/remoteproc_coredump.c
318
dump_state.rproc = rproc;
drivers/remoteproc/remoteproc_coredump.c
322
dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL,
drivers/remoteproc/remoteproc_coredump.c
345
void rproc_coredump_using_sections(struct rproc *rproc)
drivers/remoteproc/remoteproc_coredump.c
355
u8 class = rproc->elf_class;
drivers/remoteproc/remoteproc_coredump.c
358
unsigned int dump_conf = rproc->dump_conf;
drivers/remoteproc/remoteproc_coredump.c
361
if (list_empty(&rproc->dump_segments) ||
drivers/remoteproc/remoteproc_coredump.c
366
dev_err(&rproc->dev, "ELF class is not set\n");
drivers/remoteproc/remoteproc_coredump.c
381
list_for_each_entry(segment, &rproc->dump_segments, node) {
drivers/remoteproc/remoteproc_coredump.c
401
elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine);
drivers/remoteproc/remoteproc_coredump.c
403
elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr);
drivers/remoteproc/remoteproc_coredump.c
434
list_for_each_entry(segment, &rproc->dump_segments, node) {
drivers/remoteproc/remoteproc_coredump.c
447
rproc_copy_segment(rproc, data + offset, segment, 0,
drivers/remoteproc/remoteproc_coredump.c
454
dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL);
drivers/remoteproc/remoteproc_coredump.c
459
dump_state.rproc = rproc;
drivers/remoteproc/remoteproc_coredump.c
463
dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL,
drivers/remoteproc/remoteproc_coredump.c
48
int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size)
drivers/remoteproc/remoteproc_coredump.c
59
list_add_tail(&segment->node, &rproc->dump_segments);
drivers/remoteproc/remoteproc_coredump.c
79
int rproc_coredump_add_custom_segment(struct rproc *rproc,
drivers/remoteproc/remoteproc_coredump.c
81
void (*dumpfn)(struct rproc *rproc,
drivers/remoteproc/remoteproc_coredump.c
98
list_add_tail(&segment->node, &rproc->dump_segments);
drivers/remoteproc/remoteproc_debugfs.c
101
rproc->dump_conf = RPROC_COREDUMP_INLINE;
drivers/remoteproc/remoteproc_debugfs.c
103
dev_err(&rproc->dev, "Invalid coredump configuration\n");
drivers/remoteproc/remoteproc_debugfs.c
135
va = rproc_da_to_va(data->rproc, trace->da, trace->len, NULL);
drivers/remoteproc/remoteproc_debugfs.c
158
struct rproc *rproc = filp->private_data;
drivers/remoteproc/remoteproc_debugfs.c
163
i = scnprintf(buf, sizeof(buf), "%.98s\n", rproc->name);
drivers/remoteproc/remoteproc_debugfs.c
178
struct rproc *rproc = filp->private_data;
drivers/remoteproc/remoteproc_debugfs.c
179
char *buf = rproc->recovery_disabled ? "disabled\n" : "enabled\n";
drivers/remoteproc/remoteproc_debugfs.c
212
struct rproc *rproc = filp->private_data;
drivers/remoteproc/remoteproc_debugfs.c
229
rproc->recovery_disabled = false;
drivers/remoteproc/remoteproc_debugfs.c
230
rproc_trigger_recovery(rproc);
drivers/remoteproc/remoteproc_debugfs.c
232
rproc->recovery_disabled = true;
drivers/remoteproc/remoteproc_debugfs.c
235
rproc_trigger_recovery(rproc);
drivers/remoteproc/remoteproc_debugfs.c
255
struct rproc *rproc = filp->private_data;
drivers/remoteproc/remoteproc_debugfs.c
263
rproc_report_crash(rproc, type);
drivers/remoteproc/remoteproc_debugfs.c
278
struct rproc *rproc = seq->private;
drivers/remoteproc/remoteproc_debugfs.c
279
struct resource_table *table = rproc->table_ptr;
drivers/remoteproc/remoteproc_debugfs.c
364
struct rproc *rproc = seq->private;
drivers/remoteproc/remoteproc_debugfs.c
367
list_for_each_entry(carveout, &rproc->carveouts, node) {
drivers/remoteproc/remoteproc_debugfs.c
386
struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc,
drivers/remoteproc/remoteproc_debugfs.c
389
return debugfs_create_file(name, 0400, rproc->dbg_dir, trace,
drivers/remoteproc/remoteproc_debugfs.c
393
void rproc_delete_debug_dir(struct rproc *rproc)
drivers/remoteproc/remoteproc_debugfs.c
395
debugfs_remove_recursive(rproc->dbg_dir);
drivers/remoteproc/remoteproc_debugfs.c
398
void rproc_create_debug_dir(struct rproc *rproc)
drivers/remoteproc/remoteproc_debugfs.c
400
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_debugfs.c
405
rproc->dbg_dir = debugfs_create_dir(dev_name(dev), rproc_dbg);
drivers/remoteproc/remoteproc_debugfs.c
407
debugfs_create_file("name", 0400, rproc->dbg_dir,
drivers/remoteproc/remoteproc_debugfs.c
408
rproc, &rproc_name_ops);
drivers/remoteproc/remoteproc_debugfs.c
409
debugfs_create_file("recovery", 0600, rproc->dbg_dir,
drivers/remoteproc/remoteproc_debugfs.c
410
rproc, &rproc_recovery_ops);
drivers/remoteproc/remoteproc_debugfs.c
411
debugfs_create_file("crash", 0200, rproc->dbg_dir,
drivers/remoteproc/remoteproc_debugfs.c
412
rproc, &rproc_crash_ops);
drivers/remoteproc/remoteproc_debugfs.c
413
debugfs_create_file("resource_table", 0400, rproc->dbg_dir,
drivers/remoteproc/remoteproc_debugfs.c
414
rproc, &rproc_rsc_table_fops);
drivers/remoteproc/remoteproc_debugfs.c
415
debugfs_create_file("carveout_memories", 0400, rproc->dbg_dir,
drivers/remoteproc/remoteproc_debugfs.c
416
rproc, &rproc_carveouts_fops);
drivers/remoteproc/remoteproc_debugfs.c
417
debugfs_create_file("coredump", 0600, rproc->dbg_dir,
drivers/remoteproc/remoteproc_debugfs.c
418
rproc, &rproc_coredump_fops);
drivers/remoteproc/remoteproc_debugfs.c
45
struct rproc *rproc = filp->private_data;
drivers/remoteproc/remoteproc_debugfs.c
50
rproc_coredump_str[rproc->dump_conf]);
drivers/remoteproc/remoteproc_debugfs.c
75
struct rproc *rproc = filp->private_data;
drivers/remoteproc/remoteproc_debugfs.c
90
if (rproc->state == RPROC_CRASHED) {
drivers/remoteproc/remoteproc_debugfs.c
91
dev_err(&rproc->dev, "can't change coredump configuration\n");
drivers/remoteproc/remoteproc_debugfs.c
97
rproc->dump_conf = RPROC_COREDUMP_DISABLED;
drivers/remoteproc/remoteproc_debugfs.c
99
rproc->dump_conf = RPROC_COREDUMP_ENABLED;
drivers/remoteproc/remoteproc_elf_loader.c
128
u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_elf_loader.c
160
int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_elf_loader.c
162
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_elf_loader.c
212
ptr = rproc_da_to_va(rproc, da, memsz, &is_iomem);
drivers/remoteproc/remoteproc_elf_loader.c
326
int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_elf_loader.c
329
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_elf_loader.c
350
rproc->cached_table = kmemdup(table, tablesz, GFP_KERNEL);
drivers/remoteproc/remoteproc_elf_loader.c
351
if (!rproc->cached_table)
drivers/remoteproc/remoteproc_elf_loader.c
354
rproc->table_ptr = rproc->cached_table;
drivers/remoteproc/remoteproc_elf_loader.c
355
rproc->table_sz = tablesz;
drivers/remoteproc/remoteproc_elf_loader.c
37
int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_elf_loader.c
372
struct resource_table *rproc_elf_find_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/remoteproc_elf_loader.c
378
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_elf_loader.c
380
shdr = find_table(&rproc->dev, fw);
drivers/remoteproc/remoteproc_elf_loader.c
39
const char *name = rproc->firmware;
drivers/remoteproc/remoteproc_elf_loader.c
393
return rproc_da_to_va(rproc, sh_addr, sh_size, NULL);
drivers/remoteproc/remoteproc_elf_loader.c
40
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_internal.h
102
static inline void rproc_char_device_remove(struct rproc *rproc)
drivers/remoteproc/remoteproc_internal.h
112
int rproc_trigger_recovery(struct rproc *rproc);
drivers/remoteproc/remoteproc_internal.h
114
int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw);
drivers/remoteproc/remoteproc_internal.h
115
u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw);
drivers/remoteproc/remoteproc_internal.h
116
int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw);
drivers/remoteproc/remoteproc_internal.h
117
int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw);
drivers/remoteproc/remoteproc_internal.h
118
struct resource_table *rproc_elf_find_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/remoteproc_internal.h
121
rproc_find_carveout_by_name(struct rproc *rproc, const char *name, ...);
drivers/remoteproc/remoteproc_internal.h
122
void rproc_add_rvdev(struct rproc *rproc, struct rproc_vdev *rvdev);
drivers/remoteproc/remoteproc_internal.h
125
static inline int rproc_prepare_device(struct rproc *rproc)
drivers/remoteproc/remoteproc_internal.h
127
if (rproc->ops->prepare)
drivers/remoteproc/remoteproc_internal.h
128
return rproc->ops->prepare(rproc);
drivers/remoteproc/remoteproc_internal.h
133
static inline int rproc_unprepare_device(struct rproc *rproc)
drivers/remoteproc/remoteproc_internal.h
135
if (rproc->ops->unprepare)
drivers/remoteproc/remoteproc_internal.h
136
return rproc->ops->unprepare(rproc);
drivers/remoteproc/remoteproc_internal.h
141
static inline int rproc_attach_device(struct rproc *rproc)
drivers/remoteproc/remoteproc_internal.h
143
if (rproc->ops->attach)
drivers/remoteproc/remoteproc_internal.h
144
return rproc->ops->attach(rproc);
drivers/remoteproc/remoteproc_internal.h
150
int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_internal.h
152
if (rproc->ops->sanity_check)
drivers/remoteproc/remoteproc_internal.h
153
return rproc->ops->sanity_check(rproc, fw);
drivers/remoteproc/remoteproc_internal.h
159
u64 rproc_get_boot_addr(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_internal.h
161
if (rproc->ops->get_boot_addr)
drivers/remoteproc/remoteproc_internal.h
162
return rproc->ops->get_boot_addr(rproc, fw);
drivers/remoteproc/remoteproc_internal.h
168
int rproc_load_segments(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_internal.h
170
if (rproc->ops->load)
drivers/remoteproc/remoteproc_internal.h
171
return rproc->ops->load(rproc, fw);
drivers/remoteproc/remoteproc_internal.h
176
static inline int rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/remoteproc_internal.h
178
if (rproc->ops->parse_fw)
drivers/remoteproc/remoteproc_internal.h
179
return rproc->ops->parse_fw(rproc, fw);
drivers/remoteproc/remoteproc_internal.h
18
struct rproc;
drivers/remoteproc/remoteproc_internal.h
185
int rproc_handle_rsc(struct rproc *rproc, u32 rsc_type, void *rsc, int offset,
drivers/remoteproc/remoteproc_internal.h
188
if (rproc->ops->handle_rsc)
drivers/remoteproc/remoteproc_internal.h
189
return rproc->ops->handle_rsc(rproc, rsc_type, rsc, offset,
drivers/remoteproc/remoteproc_internal.h
196
struct resource_table *rproc_find_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/remoteproc_internal.h
199
if (rproc->ops->find_loaded_rsc_table)
drivers/remoteproc/remoteproc_internal.h
200
return rproc->ops->find_loaded_rsc_table(rproc, fw);
drivers/remoteproc/remoteproc_internal.h
206
struct resource_table *rproc_get_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/remoteproc_internal.h
209
if (rproc->ops->get_loaded_rsc_table)
drivers/remoteproc/remoteproc_internal.h
21
struct rproc *rproc;
drivers/remoteproc/remoteproc_internal.h
210
return rproc->ops->get_loaded_rsc_table(rproc, size);
drivers/remoteproc/remoteproc_internal.h
42
static inline bool rproc_has_feature(struct rproc *rproc, unsigned int feature)
drivers/remoteproc/remoteproc_internal.h
44
return test_bit(feature, rproc->features);
drivers/remoteproc/remoteproc_internal.h
47
static inline int rproc_set_feature(struct rproc *rproc, unsigned int feature)
drivers/remoteproc/remoteproc_internal.h
52
set_bit(feature, rproc->features);
drivers/remoteproc/remoteproc_internal.h
63
irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int vq_id);
drivers/remoteproc/remoteproc_internal.h
67
struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc,
drivers/remoteproc/remoteproc_internal.h
69
void rproc_delete_debug_dir(struct rproc *rproc);
drivers/remoteproc/remoteproc_internal.h
70
void rproc_create_debug_dir(struct rproc *rproc);
drivers/remoteproc/remoteproc_internal.h
82
int rproc_char_device_add(struct rproc *rproc);
drivers/remoteproc/remoteproc_internal.h
83
void rproc_char_device_remove(struct rproc *rproc);
drivers/remoteproc/remoteproc_internal.h
97
static inline int rproc_char_device_add(struct rproc *rproc)
drivers/remoteproc/remoteproc_sysfs.c
108
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
11
#define to_rproc(d) container_of(d, struct rproc, dev)
drivers/remoteproc/remoteproc_sysfs.c
110
if (rproc->state == RPROC_CRASHED) {
drivers/remoteproc/remoteproc_sysfs.c
111
dev_err(&rproc->dev, "can't change coredump configuration\n");
drivers/remoteproc/remoteproc_sysfs.c
116
rproc->dump_conf = RPROC_COREDUMP_DISABLED;
drivers/remoteproc/remoteproc_sysfs.c
118
rproc->dump_conf = RPROC_COREDUMP_ENABLED;
drivers/remoteproc/remoteproc_sysfs.c
120
rproc->dump_conf = RPROC_COREDUMP_INLINE;
drivers/remoteproc/remoteproc_sysfs.c
122
dev_err(&rproc->dev, "Invalid coredump configuration\n");
drivers/remoteproc/remoteproc_sysfs.c
134
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
135
const char *firmware = rproc->firmware;
drivers/remoteproc/remoteproc_sysfs.c
142
if (rproc->state == RPROC_ATTACHED)
drivers/remoteproc/remoteproc_sysfs.c
153
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
156
err = rproc_set_firmware(rproc, buf);
drivers/remoteproc/remoteproc_sysfs.c
16
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
18
return sysfs_emit(buf, "%s", rproc->recovery_disabled ? "disabled\n" : "enabled\n");
drivers/remoteproc/remoteproc_sysfs.c
181
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
184
state = rproc->state > RPROC_LAST ? RPROC_LAST : rproc->state;
drivers/remoteproc/remoteproc_sysfs.c
193
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
197
ret = rproc_boot(rproc);
drivers/remoteproc/remoteproc_sysfs.c
199
dev_err(&rproc->dev, "Boot failed: %d\n", ret);
drivers/remoteproc/remoteproc_sysfs.c
201
ret = rproc_shutdown(rproc);
drivers/remoteproc/remoteproc_sysfs.c
203
ret = rproc_detach(rproc);
drivers/remoteproc/remoteproc_sysfs.c
205
dev_err(&rproc->dev, "Unrecognised option: %s\n", buf);
drivers/remoteproc/remoteproc_sysfs.c
216
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
218
return sprintf(buf, "%s\n", rproc->name);
drivers/remoteproc/remoteproc_sysfs.c
226
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
229
if (rproc->sysfs_read_only && (attr == &dev_attr_recovery.attr ||
drivers/remoteproc/remoteproc_sysfs.c
49
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
53
rproc->recovery_disabled = false;
drivers/remoteproc/remoteproc_sysfs.c
54
rproc_trigger_recovery(rproc);
drivers/remoteproc/remoteproc_sysfs.c
56
rproc->recovery_disabled = true;
drivers/remoteproc/remoteproc_sysfs.c
59
rproc_trigger_recovery(rproc);
drivers/remoteproc/remoteproc_sysfs.c
83
struct rproc *rproc = to_rproc(dev);
drivers/remoteproc/remoteproc_sysfs.c
85
return sysfs_emit(buf, "%s\n", rproc_coredump_str[rproc->dump_conf]);
drivers/remoteproc/remoteproc_virtio.c
109
struct rproc *rproc = vdev_to_rproc(vdev);
drivers/remoteproc/remoteproc_virtio.c
110
struct device *dev = &rproc->dev;
drivers/remoteproc/remoteproc_virtio.c
126
mem = rproc_find_carveout_by_name(rproc, "vdev%dvring%d", rvdev->index,
drivers/remoteproc/remoteproc_virtio.c
160
rsc = (void *)rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
218
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
228
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
239
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
251
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
271
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
298
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
316
rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;
drivers/remoteproc/remoteproc_virtio.c
372
struct rproc *rproc = rvdev->rproc;
drivers/remoteproc/remoteproc_virtio.c
378
if (rproc->ops->kick == NULL) {
drivers/remoteproc/remoteproc_virtio.c
380
dev_err(dev, ".kick method not defined for %s\n", rproc->name);
drivers/remoteproc/remoteproc_virtio.c
385
mem = rproc_find_carveout_by_name(rproc, "vdev%dbuffer", rvdev->index);
drivers/remoteproc/remoteproc_virtio.c
390
struct device_node *np = rproc->dev.parent->of_node;
drivers/remoteproc/remoteproc_virtio.c
419
struct device_node *np = rproc->dev.parent->of_node;
drivers/remoteproc/remoteproc_virtio.c
499
struct rproc *rproc = container_of(dev->parent, struct rproc, dev);
drivers/remoteproc/remoteproc_virtio.c
511
rvdev->rproc = rproc;
drivers/remoteproc/remoteproc_virtio.c
514
ret = copy_dma_range_map(dev, rproc->dev.parent);
drivers/remoteproc/remoteproc_virtio.c
519
set_dma_ops(dev, get_dma_ops(rproc->dev.parent));
drivers/remoteproc/remoteproc_virtio.c
521
ret = dma_coerce_mask_and_coherent(dev, dma_get_mask(rproc->dev.parent));
drivers/remoteproc/remoteproc_virtio.c
524
dma_get_mask(rproc->dev.parent), ERR_PTR(ret));
drivers/remoteproc/remoteproc_virtio.c
549
rproc_add_rvdev(rproc, rvdev);
drivers/remoteproc/remoteproc_virtio.c
554
rproc_add_subdev(rproc, &rvdev->subdev);
drivers/remoteproc/remoteproc_virtio.c
564
get_device(&rproc->dev);
drivers/remoteproc/remoteproc_virtio.c
57
static struct rproc *vdev_to_rproc(struct virtio_device *vdev)
drivers/remoteproc/remoteproc_virtio.c
578
struct rproc *rproc = rvdev->rproc;
drivers/remoteproc/remoteproc_virtio.c
587
rproc_remove_subdev(rproc, &rvdev->subdev);
drivers/remoteproc/remoteproc_virtio.c
590
put_device(&rproc->dev);
drivers/remoteproc/remoteproc_virtio.c
61
return rvdev->rproc;
drivers/remoteproc/remoteproc_virtio.c
68
struct rproc *rproc = rvring->rvdev->rproc;
drivers/remoteproc/remoteproc_virtio.c
71
dev_dbg(&rproc->dev, "kicking vq index: %d\n", notifyid);
drivers/remoteproc/remoteproc_virtio.c
73
rproc->ops->kick(rproc, notifyid);
drivers/remoteproc/remoteproc_virtio.c
89
irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int notifyid)
drivers/remoteproc/remoteproc_virtio.c
93
dev_dbg(&rproc->dev, "vq index %d is interrupted\n", notifyid);
drivers/remoteproc/remoteproc_virtio.c
95
rvring = idr_find(&rproc->notifyids, notifyid);
drivers/remoteproc/st_remoteproc.c
110
static int st_rproc_mem_release(struct rproc *rproc,
drivers/remoteproc/st_remoteproc.c
118
static int st_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/st_remoteproc.c
120
struct device *dev = rproc->dev.parent;
drivers/remoteproc/st_remoteproc.c
157
rproc_add_carveout(rproc, mem);
drivers/remoteproc/st_remoteproc.c
160
return rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/st_remoteproc.c
163
static int st_rproc_start(struct rproc *rproc)
drivers/remoteproc/st_remoteproc.c
165
struct st_rproc *ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
169
ddata->config->bootaddr_mask, rproc->bootaddr);
drivers/remoteproc/st_remoteproc.c
173
dev_err(&rproc->dev, "Failed to enable clock\n");
drivers/remoteproc/st_remoteproc.c
180
dev_err(&rproc->dev, "Failed to deassert S/W Reset\n");
drivers/remoteproc/st_remoteproc.c
188
dev_err(&rproc->dev, "Failed to deassert Power Reset\n");
drivers/remoteproc/st_remoteproc.c
193
dev_info(&rproc->dev, "Started from 0x%llx\n", rproc->bootaddr);
drivers/remoteproc/st_remoteproc.c
207
static int st_rproc_stop(struct rproc *rproc)
drivers/remoteproc/st_remoteproc.c
209
struct st_rproc *ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
215
dev_err(&rproc->dev, "Failed to assert S/W Reset\n");
drivers/remoteproc/st_remoteproc.c
221
dev_err(&rproc->dev, "Failed to assert Power Reset\n");
drivers/remoteproc/st_remoteproc.c
245
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/st_remoteproc.c
246
struct st_rproc *ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
283
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/st_remoteproc.c
284
struct st_rproc *ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
333
struct rproc *rproc;
drivers/remoteproc/st_remoteproc.c
338
rproc = devm_rproc_alloc(dev, np->name, &st_rproc_ops, NULL, sizeof(*ddata));
drivers/remoteproc/st_remoteproc.c
339
if (!rproc)
drivers/remoteproc/st_remoteproc.c
342
rproc->has_iommu = false;
drivers/remoteproc/st_remoteproc.c
343
ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
348
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/st_remoteproc.c
361
atomic_inc(&rproc->power);
drivers/remoteproc/st_remoteproc.c
362
rproc->state = RPROC_RUNNING;
drivers/remoteproc/st_remoteproc.c
386
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
394
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
402
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
410
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
417
ret = rproc_add(rproc);
drivers/remoteproc/st_remoteproc.c
434
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/st_remoteproc.c
435
struct st_rproc *ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
438
rproc_del(rproc);
drivers/remoteproc/st_remoteproc.c
57
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/st_remoteproc.c
59
if (rproc_vq_interrupt(rproc, msg) == IRQ_NONE)
drivers/remoteproc/st_remoteproc.c
75
static void st_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/st_remoteproc.c
77
struct st_rproc *ddata = rproc->priv;
drivers/remoteproc/st_remoteproc.c
78
struct device *dev = rproc->dev.parent;
drivers/remoteproc/st_remoteproc.c
91
static int st_rproc_mem_alloc(struct rproc *rproc,
drivers/remoteproc/st_remoteproc.c
94
struct device *dev = rproc->dev.parent;
drivers/remoteproc/st_slim_rproc.c
111
static int slim_rproc_start(struct rproc *rproc)
drivers/remoteproc/st_slim_rproc.c
113
struct device *dev = &rproc->dev;
drivers/remoteproc/st_slim_rproc.c
114
struct st_slim_rproc *slim_rproc = rproc->priv;
drivers/remoteproc/st_slim_rproc.c
153
static int slim_rproc_stop(struct rproc *rproc)
drivers/remoteproc/st_slim_rproc.c
155
struct st_slim_rproc *slim_rproc = rproc->priv;
drivers/remoteproc/st_slim_rproc.c
169
dev_warn(&rproc->dev, "Failed to disable SLIM");
drivers/remoteproc/st_slim_rproc.c
171
dev_dbg(&rproc->dev, "slim stopped\n");
drivers/remoteproc/st_slim_rproc.c
176
static void *slim_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/st_slim_rproc.c
178
struct st_slim_rproc *slim_rproc = rproc->priv;
drivers/remoteproc/st_slim_rproc.c
193
dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%zx va = 0x%p\n",
drivers/remoteproc/st_slim_rproc.c
227
struct rproc *rproc;
drivers/remoteproc/st_slim_rproc.c
237
rproc = rproc_alloc(dev, np->name, &slim_rproc_ops,
drivers/remoteproc/st_slim_rproc.c
239
if (!rproc)
drivers/remoteproc/st_slim_rproc.c
242
rproc->has_iommu = false;
drivers/remoteproc/st_slim_rproc.c
244
slim_rproc = rproc->priv;
drivers/remoteproc/st_slim_rproc.c
245
slim_rproc->rproc = rproc;
drivers/remoteproc/st_slim_rproc.c
287
err = rproc_add(rproc);
drivers/remoteproc/st_slim_rproc.c
301
rproc_free(rproc);
drivers/remoteproc/st_slim_rproc.c
325
rproc_del(slim_rproc->rproc);
drivers/remoteproc/st_slim_rproc.c
326
rproc_free(slim_rproc->rproc);
drivers/remoteproc/stm32_rproc.c
109
dev_dbg(rproc->dev.parent, "pa %pa to da %llx\n", &pa, *da);
drivers/remoteproc/stm32_rproc.c
116
static int stm32_rproc_mem_alloc(struct rproc *rproc,
drivers/remoteproc/stm32_rproc.c
119
struct device *dev = rproc->dev.parent;
drivers/remoteproc/stm32_rproc.c
136
static int stm32_rproc_mem_release(struct rproc *rproc,
drivers/remoteproc/stm32_rproc.c
139
dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma);
drivers/remoteproc/stm32_rproc.c
198
static int stm32_rproc_mbox_idx(struct rproc *rproc, const unsigned char *name)
drivers/remoteproc/stm32_rproc.c
200
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
207
dev_err(&rproc->dev, "mailbox %s not found\n", name);
drivers/remoteproc/stm32_rproc.c
212
static int stm32_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
214
struct device *dev = rproc->dev.parent;
drivers/remoteproc/stm32_rproc.c
229
if (stm32_rproc_pa_to_da(rproc, res.start, &da) < 0) {
drivers/remoteproc/stm32_rproc.c
245
rproc_coredump_add_segment(rproc, da,
drivers/remoteproc/stm32_rproc.c
259
rproc_add_carveout(rproc, mem);
drivers/remoteproc/stm32_rproc.c
264
static int stm32_rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/stm32_rproc.c
266
if (rproc_elf_load_rsc_table(rproc, fw))
drivers/remoteproc/stm32_rproc.c
267
dev_warn(&rproc->dev, "no resource table found for this firmware\n");
drivers/remoteproc/stm32_rproc.c
275
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/stm32_rproc.c
277
rproc_report_crash(rproc, RPROC_WATCHDOG);
drivers/remoteproc/stm32_rproc.c
285
struct rproc *rproc = dev_get_drvdata(mb->client.dev);
drivers/remoteproc/stm32_rproc.c
287
mutex_lock(&rproc->lock);
drivers/remoteproc/stm32_rproc.c
289
if (rproc->state != RPROC_RUNNING && rproc->state != RPROC_ATTACHED)
drivers/remoteproc/stm32_rproc.c
292
if (rproc_vq_interrupt(rproc, mb->vq_id) == IRQ_NONE)
drivers/remoteproc/stm32_rproc.c
293
dev_dbg(&rproc->dev, "no message found in vq%d\n", mb->vq_id);
drivers/remoteproc/stm32_rproc.c
296
mutex_unlock(&rproc->lock);
drivers/remoteproc/stm32_rproc.c
301
struct rproc *rproc = dev_get_drvdata(cl->dev);
drivers/remoteproc/stm32_rproc.c
303
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
308
static void stm32_rproc_free_mbox(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
310
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
357
static int stm32_rproc_request_mbox(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
359
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
360
struct device *dev = &rproc->dev;
drivers/remoteproc/stm32_rproc.c
402
static int stm32_rproc_set_hold_boot(struct rproc *rproc, bool hold)
drivers/remoteproc/stm32_rproc.c
404
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
436
dev_err(&rproc->dev, "failed to set hold boot\n");
drivers/remoteproc/stm32_rproc.c
441
static void stm32_rproc_add_coredump_trace(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
447
list_for_each_entry(trace, &rproc->traces, node) {
drivers/remoteproc/stm32_rproc.c
450
list_for_each_entry(segment, &rproc->dump_segments, node) {
drivers/remoteproc/stm32_rproc.c
458
rproc_coredump_add_segment(rproc, trace->trace_mem.da,
drivers/remoteproc/stm32_rproc.c
463
static int stm32_rproc_start(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
465
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
468
stm32_rproc_add_coredump_trace(rproc);
drivers/remoteproc/stm32_rproc.c
475
dev_err(&rproc->dev, "failed to clear pdds\n");
drivers/remoteproc/stm32_rproc.c
480
err = stm32_rproc_set_hold_boot(rproc, false);
drivers/remoteproc/stm32_rproc.c
484
return stm32_rproc_set_hold_boot(rproc, true);
drivers/remoteproc/stm32_rproc.c
487
static int stm32_rproc_attach(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
489
stm32_rproc_add_coredump_trace(rproc);
drivers/remoteproc/stm32_rproc.c
491
return stm32_rproc_set_hold_boot(rproc, true);
drivers/remoteproc/stm32_rproc.c
494
static int stm32_rproc_detach(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
496
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
500
idx = stm32_rproc_mbox_idx(rproc, STM32_MBX_DETACH);
drivers/remoteproc/stm32_rproc.c
504
dev_warn(&rproc->dev, "warning: remote FW detach without ack\n");
drivers/remoteproc/stm32_rproc.c
508
return stm32_rproc_set_hold_boot(rproc, false);
drivers/remoteproc/stm32_rproc.c
511
static int stm32_rproc_stop(struct rproc *rproc)
drivers/remoteproc/stm32_rproc.c
513
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
517
if (rproc->state != RPROC_OFFLINE && rproc->state != RPROC_CRASHED) {
drivers/remoteproc/stm32_rproc.c
518
idx = stm32_rproc_mbox_idx(rproc, STM32_MBX_SHUTDOWN);
drivers/remoteproc/stm32_rproc.c
522
dev_warn(&rproc->dev, "warning: remote FW shutdown without ack\n");
drivers/remoteproc/stm32_rproc.c
526
err = stm32_rproc_set_hold_boot(rproc, true);
drivers/remoteproc/stm32_rproc.c
532
dev_err(&rproc->dev, "failed to assert the reset\n");
drivers/remoteproc/stm32_rproc.c
541
dev_err(&rproc->dev, "failed to set pdds\n");
drivers/remoteproc/stm32_rproc.c
553
dev_err(&rproc->dev, "failed to set copro state\n");
drivers/remoteproc/stm32_rproc.c
561
static void stm32_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/stm32_rproc.c
563
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
577
dev_err(&rproc->dev, "%s: failed (%s, err:%d)\n",
drivers/remoteproc/stm32_rproc.c
583
static int stm32_rproc_da_to_pa(struct rproc *rproc,
drivers/remoteproc/stm32_rproc.c
586
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
587
struct device *dev = rproc->dev.parent;
drivers/remoteproc/stm32_rproc.c
610
stm32_rproc_get_loaded_rsc_table(struct rproc *rproc, size_t *table_sz)
drivers/remoteproc/stm32_rproc.c
612
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
613
struct device *dev = rproc->dev.parent;
drivers/remoteproc/stm32_rproc.c
632
err = stm32_rproc_da_to_pa(rproc, rsc_da, &rsc_pa);
drivers/remoteproc/stm32_rproc.c
831
struct rproc *rproc;
drivers/remoteproc/stm32_rproc.c
844
rproc = devm_rproc_alloc(dev, np->name, &st_rproc_ops, fw_name, sizeof(*ddata));
drivers/remoteproc/stm32_rproc.c
845
if (!rproc)
drivers/remoteproc/stm32_rproc.c
848
ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
850
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
drivers/remoteproc/stm32_rproc.c
852
ret = stm32_rproc_parse_dt(pdev, ddata, &rproc->auto_boot);
drivers/remoteproc/stm32_rproc.c
865
rproc->state = RPROC_DETACHED;
drivers/remoteproc/stm32_rproc.c
867
rproc->has_iommu = false;
drivers/remoteproc/stm32_rproc.c
875
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/stm32_rproc.c
877
ret = stm32_rproc_request_mbox(rproc);
drivers/remoteproc/stm32_rproc.c
881
ret = rproc_add(rproc);
drivers/remoteproc/stm32_rproc.c
888
stm32_rproc_free_mbox(rproc);
drivers/remoteproc/stm32_rproc.c
892
rproc_resource_cleanup(rproc);
drivers/remoteproc/stm32_rproc.c
903
struct rproc *rproc = platform_get_drvdata(pdev);
drivers/remoteproc/stm32_rproc.c
904
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
907
if (atomic_read(&rproc->power) > 0)
drivers/remoteproc/stm32_rproc.c
908
rproc_shutdown(rproc);
drivers/remoteproc/stm32_rproc.c
910
rproc_del(rproc);
drivers/remoteproc/stm32_rproc.c
911
stm32_rproc_free_mbox(rproc);
drivers/remoteproc/stm32_rproc.c
922
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/stm32_rproc.c
923
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
933
struct rproc *rproc = dev_get_drvdata(dev);
drivers/remoteproc/stm32_rproc.c
934
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/stm32_rproc.c
96
static int stm32_rproc_pa_to_da(struct rproc *rproc, phys_addr_t pa, u64 *da)
drivers/remoteproc/stm32_rproc.c
99
struct stm32_rproc *ddata = rproc->priv;
drivers/remoteproc/ti_k3_common.c
165
int k3_rproc_request_mbox(struct rproc *rproc)
drivers/remoteproc/ti_k3_common.c
167
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
200
int k3_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/ti_k3_common.c
202
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
207
if (rproc->state == RPROC_DETACHED)
drivers/remoteproc/ti_k3_common.c
246
int k3_rproc_unprepare(struct rproc *rproc)
drivers/remoteproc/ti_k3_common.c
248
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
253
if (rproc->state == RPROC_DETACHED)
drivers/remoteproc/ti_k3_common.c
274
int k3_rproc_start(struct rproc *rproc)
drivers/remoteproc/ti_k3_common.c
276
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
288
int k3_rproc_stop(struct rproc *rproc)
drivers/remoteproc/ti_k3_common.c
290
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
305
int k3_rproc_attach(struct rproc *rproc) { return 0; }
drivers/remoteproc/ti_k3_common.c
315
int k3_rproc_detach(struct rproc *rproc) { return 0; }
drivers/remoteproc/ti_k3_common.c
328
struct resource_table *k3_get_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/ti_k3_common.c
331
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
360
void *k3_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/ti_k3_common.c
362
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.c
55
struct device *dev = kproc->rproc->dev.parent;
drivers/remoteproc/ti_k3_common.c
56
struct rproc *rproc = kproc->rproc;
drivers/remoteproc/ti_k3_common.c
67
dev_err(dev, "K3 rproc %s crashed\n", rproc->name);
drivers/remoteproc/ti_k3_common.c
70
dev_info(dev, "received echo reply from %s\n", rproc->name);
drivers/remoteproc/ti_k3_common.c
76
if (msg > rproc->max_notifyid) {
drivers/remoteproc/ti_k3_common.c
81
if (rproc_vq_interrupt(rproc, msg) == IRQ_NONE)
drivers/remoteproc/ti_k3_common.c
93
void k3_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/ti_k3_common.c
95
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_common.h
102
int k3_rproc_request_mbox(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
103
int k3_rproc_prepare(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
104
int k3_rproc_unprepare(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
105
int k3_rproc_start(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
106
int k3_rproc_stop(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
107
int k3_rproc_attach(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
108
int k3_rproc_detach(struct rproc *rproc);
drivers/remoteproc/ti_k3_common.h
109
struct resource_table *k3_get_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/ti_k3_common.h
111
void *k3_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len,
drivers/remoteproc/ti_k3_common.h
83
struct rproc *rproc;
drivers/remoteproc/ti_k3_common.h
99
void k3_rproc_kick(struct rproc *rproc, int vqid);
drivers/remoteproc/ti_k3_dsp_remoteproc.c
100
kproc->rproc = rproc;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
104
ret = k3_rproc_request_mbox(rproc);
drivers/remoteproc/ti_k3_dsp_remoteproc.c
152
rproc->state = RPROC_DETACHED;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
157
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/ti_k3_dsp_remoteproc.c
169
struct rproc *rproc = kproc->rproc;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
173
if (rproc->state == RPROC_ATTACHED) {
drivers/remoteproc/ti_k3_dsp_remoteproc.c
174
ret = rproc_detach(rproc);
drivers/remoteproc/ti_k3_dsp_remoteproc.c
32
static int k3_dsp_rproc_start(struct rproc *rproc)
drivers/remoteproc/ti_k3_dsp_remoteproc.c
34
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
39
boot_addr = rproc->bootaddr;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
52
ret = k3_rproc_start(rproc);
drivers/remoteproc/ti_k3_dsp_remoteproc.c
75
struct rproc *rproc;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
88
rproc = devm_rproc_alloc(dev, dev_name(dev), &k3_dsp_rproc_ops,
drivers/remoteproc/ti_k3_dsp_remoteproc.c
90
if (!rproc)
drivers/remoteproc/ti_k3_dsp_remoteproc.c
93
rproc->has_iommu = false;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
94
rproc->recovery_disabled = true;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
96
rproc->ops->prepare = k3_rproc_prepare;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
97
rproc->ops->unprepare = k3_rproc_unprepare;
drivers/remoteproc/ti_k3_dsp_remoteproc.c
99
kproc = rproc->priv;
drivers/remoteproc/ti_k3_m4_remoteproc.c
109
rproc->state = RPROC_DETACHED;
drivers/remoteproc/ti_k3_m4_remoteproc.c
115
ret = k3_rproc_request_mbox(rproc);
drivers/remoteproc/ti_k3_m4_remoteproc.c
119
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/ti_k3_m4_remoteproc.c
41
struct rproc *rproc;
drivers/remoteproc/ti_k3_m4_remoteproc.c
55
rproc = devm_rproc_alloc(dev, dev_name(dev), &k3_m4_rproc_ops, fw_name,
drivers/remoteproc/ti_k3_m4_remoteproc.c
57
if (!rproc)
drivers/remoteproc/ti_k3_m4_remoteproc.c
60
rproc->has_iommu = false;
drivers/remoteproc/ti_k3_m4_remoteproc.c
61
rproc->recovery_disabled = true;
drivers/remoteproc/ti_k3_m4_remoteproc.c
62
kproc = rproc->priv;
drivers/remoteproc/ti_k3_m4_remoteproc.c
64
kproc->rproc = rproc;
drivers/remoteproc/ti_k3_m4_remoteproc.c
66
platform_set_drvdata(pdev, rproc);
drivers/remoteproc/ti_k3_r5_remoteproc.c
1029
struct rproc *rproc;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1043
rproc = devm_rproc_alloc(cdev, dev_name(cdev), &k3_r5_rproc_ops,
drivers/remoteproc/ti_k3_r5_remoteproc.c
1045
if (!rproc) {
drivers/remoteproc/ti_k3_r5_remoteproc.c
1051
rproc->has_iommu = false;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1053
rproc->recovery_disabled = true;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1055
kproc = rproc->priv;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1058
kproc->rproc = rproc;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1113
rproc = kproc->rproc;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1115
ret = k3_rproc_request_mbox(rproc);
drivers/remoteproc/ti_k3_r5_remoteproc.c
1142
ret = devm_rproc_add(cdev, rproc);
drivers/remoteproc/ti_k3_r5_remoteproc.c
1160
if (rproc->state == RPROC_ATTACHED) {
drivers/remoteproc/ti_k3_r5_remoteproc.c
1161
ret1 = rproc_detach(rproc);
drivers/remoteproc/ti_k3_r5_remoteproc.c
1174
rproc = kproc->rproc;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1185
struct rproc *rproc;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1200
rproc = kproc->rproc;
drivers/remoteproc/ti_k3_r5_remoteproc.c
1202
if (rproc->state == RPROC_ATTACHED) {
drivers/remoteproc/ti_k3_r5_remoteproc.c
1203
ret = rproc_detach(rproc);
drivers/remoteproc/ti_k3_r5_remoteproc.c
303
static int k3_r5_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/ti_k3_r5_remoteproc.c
305
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_r5_remoteproc.c
401
static int k3_r5_rproc_unprepare(struct rproc *rproc)
drivers/remoteproc/ti_k3_r5_remoteproc.c
403
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_r5_remoteproc.c
464
static int k3_r5_rproc_start(struct rproc *rproc)
drivers/remoteproc/ti_k3_r5_remoteproc.c
466
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_r5_remoteproc.c
473
boot_addr = rproc->bootaddr;
drivers/remoteproc/ti_k3_r5_remoteproc.c
529
static int k3_r5_rproc_stop(struct rproc *rproc)
drivers/remoteproc/ti_k3_r5_remoteproc.c
531
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_r5_remoteproc.c
570
static void *k3_r5_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/ti_k3_r5_remoteproc.c
572
struct k3_rproc *kproc = rproc->priv;
drivers/remoteproc/ti_k3_r5_remoteproc.c
595
return k3_rproc_da_to_va(rproc, da, len, is_iomem);
drivers/remoteproc/ti_k3_r5_remoteproc.c
883
kproc->rproc->state = RPROC_DETACHED;
drivers/remoteproc/ti_k3_r5_remoteproc.c
886
kproc->rproc->ops->prepare = NULL;
drivers/remoteproc/ti_k3_r5_remoteproc.c
887
kproc->rproc->ops->unprepare = NULL;
drivers/remoteproc/ti_k3_r5_remoteproc.c
888
kproc->rproc->ops->start = NULL;
drivers/remoteproc/ti_k3_r5_remoteproc.c
889
kproc->rproc->ops->stop = NULL;
drivers/remoteproc/ti_k3_r5_remoteproc.c
890
kproc->rproc->ops->attach = k3_rproc_attach;
drivers/remoteproc/ti_k3_r5_remoteproc.c
891
kproc->rproc->ops->detach = k3_rproc_detach;
drivers/remoteproc/ti_k3_r5_remoteproc.c
892
kproc->rproc->ops->get_loaded_rsc_table =
drivers/remoteproc/wkup_m3_rproc.c
143
struct rproc *rproc;
drivers/remoteproc/wkup_m3_rproc.c
168
rproc = devm_rproc_alloc(dev, "wkup_m3", &wkup_m3_rproc_ops,
drivers/remoteproc/wkup_m3_rproc.c
170
if (!rproc)
drivers/remoteproc/wkup_m3_rproc.c
173
rproc->auto_boot = false;
drivers/remoteproc/wkup_m3_rproc.c
174
rproc->sysfs_read_only = true;
drivers/remoteproc/wkup_m3_rproc.c
176
wkupm3 = rproc->priv;
drivers/remoteproc/wkup_m3_rproc.c
177
wkupm3->rproc = rproc;
drivers/remoteproc/wkup_m3_rproc.c
211
dev_set_drvdata(dev, rproc);
drivers/remoteproc/wkup_m3_rproc.c
213
ret = devm_rproc_add(dev, rproc);
drivers/remoteproc/wkup_m3_rproc.c
50
struct rproc *rproc;
drivers/remoteproc/wkup_m3_rproc.c
56
static int wkup_m3_rproc_start(struct rproc *rproc)
drivers/remoteproc/wkup_m3_rproc.c
58
struct wkup_m3_rproc *wkupm3 = rproc->priv;
drivers/remoteproc/wkup_m3_rproc.c
74
static int wkup_m3_rproc_stop(struct rproc *rproc)
drivers/remoteproc/wkup_m3_rproc.c
76
struct wkup_m3_rproc *wkupm3 = rproc->priv;
drivers/remoteproc/wkup_m3_rproc.c
92
static void *wkup_m3_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
drivers/remoteproc/wkup_m3_rproc.c
94
struct wkup_m3_rproc *wkupm3 = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
1415
rproc_del(r5_cores[i]->rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
1416
rproc_free(r5_cores[i]->rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
1442
rproc_del(r5_core->rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
1443
rproc_free(r5_core->rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
1464
struct rproc *rproc;
drivers/remoteproc/xlnx_r5_remoteproc.c
1471
rproc = r5_core->rproc;
drivers/remoteproc/xlnx_r5_remoteproc.c
1473
if (rproc->state == RPROC_RUNNING) {
drivers/remoteproc/xlnx_r5_remoteproc.c
1474
ret = rproc_shutdown(rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
1476
} else if (rproc->state == RPROC_ATTACHED) {
drivers/remoteproc/xlnx_r5_remoteproc.c
1477
ret = rproc_detach(rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
1485
rproc_state_str, rproc->index);
drivers/remoteproc/xlnx_r5_remoteproc.c
153
struct rproc *rproc;
drivers/remoteproc/xlnx_r5_remoteproc.c
187
struct rproc *rproc = data;
drivers/remoteproc/xlnx_r5_remoteproc.c
189
if (rproc_vq_interrupt(rproc, id) == IRQ_NONE)
drivers/remoteproc/xlnx_r5_remoteproc.c
190
dev_dbg(&rproc->dev, "data not found for vqid=%d\n", id);
drivers/remoteproc/xlnx_r5_remoteproc.c
204
struct rproc *rproc;
drivers/remoteproc/xlnx_r5_remoteproc.c
207
rproc = ipi->r5_core->rproc;
drivers/remoteproc/xlnx_r5_remoteproc.c
216
idr_for_each(&rproc->notifyids, event_notified_idr_cb, rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
326
static void zynqmp_r5_rproc_kick(struct rproc *rproc, int vqid)
drivers/remoteproc/xlnx_r5_remoteproc.c
328
struct zynqmp_r5_core *r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
354
static int zynqmp_r5_rproc_start(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
356
struct zynqmp_r5_core *r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
377
bootmem = (rproc->bootaddr >= 0xFFFC0000) ?
drivers/remoteproc/xlnx_r5_remoteproc.c
380
dev_dbg(r5_core->dev, "RPU boot addr 0x%llx from %s.", rproc->bootaddr,
drivers/remoteproc/xlnx_r5_remoteproc.c
411
static int zynqmp_r5_rproc_stop(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
413
struct zynqmp_r5_core *r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
453
static int zynqmp_r5_mem_region_map(struct rproc *rproc,
drivers/remoteproc/xlnx_r5_remoteproc.c
476
static int zynqmp_r5_mem_region_unmap(struct rproc *rproc,
drivers/remoteproc/xlnx_r5_remoteproc.c
491
static int add_mem_regions_carveout(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
497
r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
510
rproc_mem = rproc_of_resm_mem_entry_init(&rproc->dev, i,
drivers/remoteproc/xlnx_r5_remoteproc.c
516
rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL,
drivers/remoteproc/xlnx_r5_remoteproc.c
529
rproc_add_carveout(rproc, rproc_mem);
drivers/remoteproc/xlnx_r5_remoteproc.c
530
rproc_coredump_add_segment(rproc, res.start, resource_size(&res));
drivers/remoteproc/xlnx_r5_remoteproc.c
532
dev_dbg(&rproc->dev, "reserved mem carveout %pR\n", &res);
drivers/remoteproc/xlnx_r5_remoteproc.c
537
static int add_sram_carveouts(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
539
struct zynqmp_r5_core *r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
554
rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL,
drivers/remoteproc/xlnx_r5_remoteproc.c
561
dev_err(&rproc->dev, "failed to add sram %s da=0x%x, size=0x%lx",
drivers/remoteproc/xlnx_r5_remoteproc.c
566
rproc_add_carveout(rproc, rproc_mem);
drivers/remoteproc/xlnx_r5_remoteproc.c
567
rproc_coredump_add_segment(rproc, da, len);
drivers/remoteproc/xlnx_r5_remoteproc.c
569
dev_dbg(&rproc->dev, "sram carveout %s addr=%llx, da=0x%x, size=0x%lx",
drivers/remoteproc/xlnx_r5_remoteproc.c
585
static int tcm_mem_unmap(struct rproc *rproc, struct rproc_mem_entry *mem)
drivers/remoteproc/xlnx_r5_remoteproc.c
602
static int tcm_mem_map(struct rproc *rproc,
drivers/remoteproc/xlnx_r5_remoteproc.c
628
static int add_tcm_banks(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
640
r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
672
if (rproc->state == RPROC_DETACHED)
drivers/remoteproc/xlnx_r5_remoteproc.c
685
rproc_add_carveout(rproc, rproc_mem);
drivers/remoteproc/xlnx_r5_remoteproc.c
686
rproc_coredump_add_segment(rproc, da, bank_size);
drivers/remoteproc/xlnx_r5_remoteproc.c
709
static int zynqmp_r5_parse_fw(struct rproc *rproc, const struct firmware *fw)
drivers/remoteproc/xlnx_r5_remoteproc.c
713
ret = rproc_elf_load_rsc_table(rproc, fw);
drivers/remoteproc/xlnx_r5_remoteproc.c
721
dev_info(&rproc->dev, "no resource table found.\n");
drivers/remoteproc/xlnx_r5_remoteproc.c
735
static int zynqmp_r5_rproc_prepare(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
739
ret = add_tcm_banks(rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
741
dev_err(&rproc->dev, "failed to get TCM banks, err %d\n", ret);
drivers/remoteproc/xlnx_r5_remoteproc.c
745
ret = add_mem_regions_carveout(rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
747
dev_err(&rproc->dev, "failed to get reserve mem regions %d\n", ret);
drivers/remoteproc/xlnx_r5_remoteproc.c
751
ret = add_sram_carveouts(rproc);
drivers/remoteproc/xlnx_r5_remoteproc.c
753
dev_err(&rproc->dev, "failed to get sram carveout %d\n", ret);
drivers/remoteproc/xlnx_r5_remoteproc.c
768
static int zynqmp_r5_rproc_unprepare(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
774
r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
786
static struct resource_table *zynqmp_r5_get_loaded_rsc_table(struct rproc *rproc,
drivers/remoteproc/xlnx_r5_remoteproc.c
791
r5_core = rproc->priv;
drivers/remoteproc/xlnx_r5_remoteproc.c
860
static int zynqmp_r5_attach(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
862
dev_dbg(&rproc->dev, "rproc %d attached\n", rproc->index);
drivers/remoteproc/xlnx_r5_remoteproc.c
867
static int zynqmp_r5_detach(struct rproc *rproc)
drivers/remoteproc/xlnx_r5_remoteproc.c
874
zynqmp_r5_rproc_kick(rproc, 0);
drivers/remoteproc/xlnx_r5_remoteproc.c
907
struct rproc *r5_rproc;
drivers/remoteproc/xlnx_r5_remoteproc.c
955
r5_core->rproc = r5_rproc;
drivers/soc/ti/pruss.c
56
struct pruss *pruss_get(struct rproc *rproc)
drivers/soc/ti/pruss.c
62
if (IS_ERR_OR_NULL(rproc))
drivers/soc/ti/pruss.c
65
dev = &rproc->dev;
drivers/soc/ti/wkup_m3_ipc.c
103
aux_data_addr = rproc_da_to_va(m3_ipc->rproc,
drivers/soc/ti/wkup_m3_ipc.c
600
ret = rproc_boot(m3_ipc->rproc);
drivers/soc/ti/wkup_m3_ipc.c
614
struct rproc *m3_rproc;
drivers/soc/ti/wkup_m3_ipc.c
664
m3_ipc->rproc = m3_rproc;
drivers/soc/ti/wkup_m3_ipc.c
717
rproc_shutdown(m3_ipc_state->rproc);
drivers/soc/ti/wkup_m3_ipc.c
718
rproc_put(m3_ipc_state->rproc);
drivers/soc/ti/wkup_m3_ipc.c
734
rproc_shutdown(m3_ipc_state->rproc);
drivers/soc/ti/wkup_m3_ipc.c
735
rproc_boot(m3_ipc_state->rproc);
include/linux/cdx/mcdi.h
65
struct rproc *r5_rproc;
include/linux/pruss_driver.h
108
struct pruss *pruss_get(struct rproc *rproc);
include/linux/pruss_driver.h
124
static inline struct pruss *pruss_get(struct rproc *rproc)
include/linux/remoteproc.h
314
struct rproc;
include/linux/remoteproc.h
344
int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem);
include/linux/remoteproc.h
345
int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem);
include/linux/remoteproc.h
386
int (*prepare)(struct rproc *rproc);
include/linux/remoteproc.h
387
int (*unprepare)(struct rproc *rproc);
include/linux/remoteproc.h
388
int (*start)(struct rproc *rproc);
include/linux/remoteproc.h
389
int (*stop)(struct rproc *rproc);
include/linux/remoteproc.h
390
int (*attach)(struct rproc *rproc);
include/linux/remoteproc.h
391
int (*detach)(struct rproc *rproc);
include/linux/remoteproc.h
392
void (*kick)(struct rproc *rproc, int vqid);
include/linux/remoteproc.h
393
void * (*da_to_va)(struct rproc *rproc, u64 da, size_t len, bool *is_iomem);
include/linux/remoteproc.h
394
int (*parse_fw)(struct rproc *rproc, const struct firmware *fw);
include/linux/remoteproc.h
395
int (*handle_rsc)(struct rproc *rproc, u32 rsc_type, void *rsc,
include/linux/remoteproc.h
398
struct rproc *rproc, const struct firmware *fw);
include/linux/remoteproc.h
400
struct rproc *rproc, size_t *size);
include/linux/remoteproc.h
401
int (*load)(struct rproc *rproc, const struct firmware *fw);
include/linux/remoteproc.h
402
int (*sanity_check)(struct rproc *rproc, const struct firmware *fw);
include/linux/remoteproc.h
403
u64 (*get_boot_addr)(struct rproc *rproc, const struct firmware *fw);
include/linux/remoteproc.h
404
unsigned long (*panic)(struct rproc *rproc);
include/linux/remoteproc.h
405
void (*coredump)(struct rproc *rproc);
include/linux/remoteproc.h
487
void (*dump)(struct rproc *rproc, struct rproc_dump_segment *segment,
include/linux/remoteproc.h
651
struct rproc *rproc;
include/linux/remoteproc.h
657
struct rproc *rproc_get_by_phandle(phandle phandle);
include/linux/remoteproc.h
658
struct rproc *rproc_get_by_child(struct device *dev);
include/linux/remoteproc.h
660
struct rproc *rproc_alloc(struct device *dev, const char *name,
include/linux/remoteproc.h
663
void rproc_put(struct rproc *rproc);
include/linux/remoteproc.h
664
int rproc_add(struct rproc *rproc);
include/linux/remoteproc.h
665
int rproc_del(struct rproc *rproc);
include/linux/remoteproc.h
666
void rproc_free(struct rproc *rproc);
include/linux/remoteproc.h
667
void rproc_resource_cleanup(struct rproc *rproc);
include/linux/remoteproc.h
669
struct rproc *devm_rproc_alloc(struct device *dev, const char *name,
include/linux/remoteproc.h
672
int devm_rproc_add(struct device *dev, struct rproc *rproc);
include/linux/remoteproc.h
674
void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem);
include/linux/remoteproc.h
679
int (*alloc)(struct rproc *, struct rproc_mem_entry *),
include/linux/remoteproc.h
680
int (*release)(struct rproc *, struct rproc_mem_entry *),
include/linux/remoteproc.h
687
int rproc_boot(struct rproc *rproc);
include/linux/remoteproc.h
688
int rproc_shutdown(struct rproc *rproc);
include/linux/remoteproc.h
689
int rproc_detach(struct rproc *rproc);
include/linux/remoteproc.h
690
int rproc_set_firmware(struct rproc *rproc, const char *fw_name);
include/linux/remoteproc.h
691
void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type);
include/linux/remoteproc.h
692
void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem);
include/linux/remoteproc.h
695
void rproc_coredump_cleanup(struct rproc *rproc);
include/linux/remoteproc.h
696
void rproc_coredump(struct rproc *rproc);
include/linux/remoteproc.h
697
void rproc_coredump_using_sections(struct rproc *rproc);
include/linux/remoteproc.h
698
int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size);
include/linux/remoteproc.h
699
int rproc_coredump_add_custom_segment(struct rproc *rproc,
include/linux/remoteproc.h
701
void (*dumpfn)(struct rproc *rproc,
include/linux/remoteproc.h
706
int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine);
include/linux/remoteproc.h
708
void rproc_add_subdev(struct rproc *rproc, struct rproc_subdev *subdev);
include/linux/remoteproc.h
710
void rproc_remove_subdev(struct rproc *rproc, struct rproc_subdev *subdev);
include/linux/remoteproc/mtk_scp.h
55
struct rproc *scp_get_rproc(struct mtk_scp *scp);
include/linux/remoteproc/pruss.h
46
struct rproc;
include/linux/remoteproc/pruss.h
50
struct rproc *pru_rproc_get(struct device_node *np, int index,
include/linux/remoteproc/pruss.h
52
void pru_rproc_put(struct rproc *rproc);
include/linux/remoteproc/pruss.h
53
int pru_rproc_set_ctable(struct rproc *rproc, enum pru_ctable_idx c, u32 addr);
include/linux/remoteproc/pruss.h
57
static inline struct rproc *
include/linux/remoteproc/pruss.h
63
static inline void pru_rproc_put(struct rproc *rproc) { }
include/linux/remoteproc/pruss.h
65
static inline int pru_rproc_set_ctable(struct rproc *rproc,
include/linux/remoteproc/st_slim_rproc.h
41
struct rproc *rproc;
include/linux/wkup_m3_ipc.h
21
struct rproc *rproc;