Lines Matching full:rproc
146 * needed to map it (in case @rproc is using an IOMMU). Reducing the TLB
246 * @notifyid: a unique rproc-wide notify index for this vring. This notify
269 * @notifyid: a unique rproc-wide notify index for this vdev. This notify
287 * to statically allocate a vdev upon registration of the rproc (dynamic vdev
314 struct rproc;
344 int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem);
345 int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem);
386 int (*prepare)(struct rproc *rproc);
387 int (*unprepare)(struct rproc *rproc);
388 int (*start)(struct rproc *rproc);
389 int (*stop)(struct rproc *rproc);
390 int (*attach)(struct rproc *rproc);
391 int (*detach)(struct rproc *rproc);
392 void (*kick)(struct rproc *rproc, int vqid);
393 void * (*da_to_va)(struct rproc *rproc, u64 da, size_t len, bool *is_iomem);
394 int (*parse_fw)(struct rproc *rproc, const struct firmware *fw);
395 int (*handle_rsc)(struct rproc *rproc, u32 rsc_type, void *rsc,
398 struct rproc *rproc, const struct firmware *fw);
400 struct rproc *rproc, size_t *size);
401 int (*load)(struct rproc *rproc, const struct firmware *fw);
402 int (*sanity_check)(struct rproc *rproc, const struct firmware *fw);
403 u64 (*get_boot_addr)(struct rproc *rproc, const struct firmware *fw);
404 unsigned long (*panic)(struct rproc *rproc);
405 void (*coredump)(struct rproc *rproc);
472 * @node: list node related to the rproc segment list
487 void (*dump)(struct rproc *rproc, struct rproc_dump_segment *segment,
507 * struct rproc - represents a physical remote processor device
508 * @node: list node of this rproc object
510 * @name: human readable name of the rproc
512 * @priv: private data which belongs to the platform-specific rproc module
513 * @ops: platform-specific start/stop rproc handlers
515 * @power: refcount of users who need this rproc powered up
518 * @lock: lock which protects concurrent manipulations of the rproc
519 * @dbg_dir: debugfs directory of this rproc device
524 * @bootaddr: address of first instruction to boot rproc with (optional)
527 * @notifyids: idr for dynamically assigning rproc-wide unique notify ids
528 * @index: index of this rproc device
542 * @nb_vdev: number of vdev currently handled by rproc
545 * @cdev: character device of the rproc
549 struct rproc { struct
593 * @node: list node related to the rproc subdevs list argument
594 * @prepare: prepare function, called before the rproc is started
595 * @start: start function, called after the rproc has been started
596 * @stop: stop function, called before the rproc is stopped; the @crashed
598 * @unprepare: unprepare function, called after the rproc has been stopped
619 * @notifyid: rproc-specific unique vring index
635 * @subdev: handle for registering the vdev as a rproc subdevice
639 * @rproc: the rproc handle
651 struct rproc *rproc; member
657 struct rproc *rproc_get_by_phandle(phandle phandle);
658 struct rproc *rproc_get_by_child(struct device *dev);
660 struct rproc *rproc_alloc(struct device *dev, const char *name,
663 void rproc_put(struct rproc *rproc);
664 int rproc_add(struct rproc *rproc);
665 int rproc_del(struct rproc *rproc);
666 void rproc_free(struct rproc *rproc);
667 void rproc_resource_cleanup(struct rproc *rproc);
669 struct rproc *devm_rproc_alloc(struct device *dev, const char *name,
672 int devm_rproc_add(struct device *dev, struct rproc *rproc);
674 void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem);
679 int (*alloc)(struct rproc *, struct rproc_mem_entry *),
680 int (*release)(struct rproc *, struct rproc_mem_entry *),
687 int rproc_boot(struct rproc *rproc);
688 int rproc_shutdown(struct rproc *rproc);
689 int rproc_detach(struct rproc *rproc);
690 int rproc_set_firmware(struct rproc *rproc, const char *fw_name);
691 void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type);
692 void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem);
693 void rproc_coredump_using_sections(struct rproc *rproc);
694 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size);
695 int rproc_coredump_add_custom_segment(struct rproc *rproc,
697 void (*dumpfn)(struct rproc *rproc,
702 int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine);
704 void rproc_add_subdev(struct rproc *rproc, struct rproc_subdev *subdev);
706 void rproc_remove_subdev(struct rproc *rproc, struct rproc_subdev *subdev);