Lines Matching full:rproc
146 * needed to map it (in case @rproc is using an IOMMU). Reducing the TLB
246 * @notifyid is a unique rproc-wide notify index for this vring. This notify
269 * @notifyid is a unique rproc-wide notify index for this vdev. This notify
287 * to statically allocate a vdev upon registration of the rproc (dynamic vdev
313 struct rproc;
341 int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem);
342 int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem);
380 int (*prepare)(struct rproc *rproc);
381 int (*unprepare)(struct rproc *rproc);
382 int (*start)(struct rproc *rproc);
383 int (*stop)(struct rproc *rproc);
384 int (*attach)(struct rproc *rproc);
385 void (*kick)(struct rproc *rproc, int vqid);
386 void * (*da_to_va)(struct rproc *rproc, u64 da, size_t len);
387 int (*parse_fw)(struct rproc *rproc, const struct firmware *fw);
388 int (*handle_rsc)(struct rproc *rproc, u32 rsc_type, void *rsc,
391 struct rproc *rproc, const struct firmware *fw);
392 int (*load)(struct rproc *rproc, const struct firmware *fw);
393 int (*sanity_check)(struct rproc *rproc, const struct firmware *fw);
394 u64 (*get_boot_addr)(struct rproc *rproc, const struct firmware *fw);
395 unsigned long (*panic)(struct rproc *rproc);
459 * @node: list node related to the rproc segment list
473 void (*dump)(struct rproc *rproc, struct rproc_dump_segment *segment,
479 * struct rproc - represents a physical remote processor device
480 * @node: list node of this rproc object
482 * @name: human readable name of the rproc
484 * @priv: private data which belongs to the platform-specific rproc module
485 * @ops: platform-specific start/stop rproc handlers
487 * @power: refcount of users who need this rproc powered up
490 * @lock: lock which protects concurrent manipulations of the rproc
491 * @dbg_dir: debugfs directory of this rproc device
496 * @bootaddr: address of first instruction to boot rproc with (optional)
499 * @notifyids: idr for dynamically assigning rproc-wide unique notify ids
500 * @index: index of this rproc device
512 * @nb_vdev: number of vdev currently handled by rproc
513 * @char_dev: character device of the rproc
516 struct rproc { struct
558 * @node: list node related to the rproc subdevs list argument
559 * @prepare: prepare function, called before the rproc is started
560 * @start: start function, called after the rproc has been started
561 * @stop: stop function, called before the rproc is stopped; the @crashed
563 * @unprepare: unprepare function, called after the rproc has been stopped
584 * @notifyid: rproc-specific unique vring index
601 * @subdev: handle for registering the vdev as a rproc subdevice
604 * @rproc: the rproc handle
618 struct rproc *rproc; member
624 struct rproc *rproc_get_by_phandle(phandle phandle);
625 struct rproc *rproc_get_by_child(struct device *dev);
627 struct rproc *rproc_alloc(struct device *dev, const char *name,
630 void rproc_put(struct rproc *rproc);
631 int rproc_add(struct rproc *rproc);
632 int rproc_del(struct rproc *rproc);
633 void rproc_free(struct rproc *rproc);
634 void rproc_resource_cleanup(struct rproc *rproc);
636 struct rproc *devm_rproc_alloc(struct device *dev, const char *name,
639 int devm_rproc_add(struct device *dev, struct rproc *rproc);
641 void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem);
646 int (*alloc)(struct rproc *, struct rproc_mem_entry *),
647 int (*release)(struct rproc *, struct rproc_mem_entry *),
654 int rproc_boot(struct rproc *rproc);
655 void rproc_shutdown(struct rproc *rproc);
656 void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type);
657 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size);
658 int rproc_coredump_add_custom_segment(struct rproc *rproc,
660 void (*dumpfn)(struct rproc *rproc,
665 int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine);
672 static inline struct rproc *vdev_to_rproc(struct virtio_device *vdev) in vdev_to_rproc()
676 return rvdev->rproc; in vdev_to_rproc()
679 void rproc_add_subdev(struct rproc *rproc, struct rproc_subdev *subdev);
681 void rproc_remove_subdev(struct rproc *rproc, struct rproc_subdev *subdev);