remoteproc: Fix various kernel-doc warnings
Fix all the kernel-doc warnings in various remoteproc core files. Some of them just needed a formatting cleanup change, while others needed the Return statement to be added, or documenting the missed structure elements. Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Suman Anna <s-anna@ti.com> Link: https://lore.kernel.org/r/20210519180304.23563-3-s-anna@ti.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
95347e7348
commit
f286743400
@ -183,12 +183,12 @@ EXPORT_SYMBOL(rproc_va_to_pa);
|
|||||||
* translations on the internal remoteproc memory regions through a platform
|
* translations on the internal remoteproc memory regions through a platform
|
||||||
* implementation specific da_to_va ops, if present.
|
* implementation specific da_to_va ops, if present.
|
||||||
*
|
*
|
||||||
* The function returns a valid kernel address on success or NULL on failure.
|
|
||||||
*
|
|
||||||
* Note: phys_to_virt(iommu_iova_to_phys(rproc->domain, da)) will work too,
|
* Note: phys_to_virt(iommu_iova_to_phys(rproc->domain, da)) will work too,
|
||||||
* but only on kernel direct mapped RAM memory. Instead, we're just using
|
* but only on kernel direct mapped RAM memory. Instead, we're just using
|
||||||
* here the output of the DMA API for the carveouts, which should be more
|
* here the output of the DMA API for the carveouts, which should be more
|
||||||
* correct.
|
* correct.
|
||||||
|
*
|
||||||
|
* Return: a valid kernel address on success or NULL on failure
|
||||||
*/
|
*/
|
||||||
void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
|
void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
|
||||||
{
|
{
|
||||||
@ -509,7 +509,7 @@ static int copy_dma_range_map(struct device *to, struct device *from)
|
|||||||
* use RSC_DEVMEM resource entries to map their required @da to the physical
|
* use RSC_DEVMEM resource entries to map their required @da to the physical
|
||||||
* address of their base CMA region (ouch, hacky!).
|
* address of their base CMA region (ouch, hacky!).
|
||||||
*
|
*
|
||||||
* Returns 0 on success, or an appropriate error code otherwise
|
* Return: 0 on success, or an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
static int rproc_handle_vdev(struct rproc *rproc, void *ptr,
|
static int rproc_handle_vdev(struct rproc *rproc, void *ptr,
|
||||||
int offset, int avail)
|
int offset, int avail)
|
||||||
@ -644,7 +644,7 @@ void rproc_vdev_release(struct kref *ref)
|
|||||||
* support dynamically allocating this address using the generic
|
* support dynamically allocating this address using the generic
|
||||||
* DMA API (but currently there isn't a use case for that).
|
* DMA API (but currently there isn't a use case for that).
|
||||||
*
|
*
|
||||||
* Returns 0 on success, or an appropriate error code otherwise
|
* Return: 0 on success, or an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
static int rproc_handle_trace(struct rproc *rproc, void *ptr,
|
static int rproc_handle_trace(struct rproc *rproc, void *ptr,
|
||||||
int offset, int avail)
|
int offset, int avail)
|
||||||
@ -721,6 +721,8 @@ static int rproc_handle_trace(struct rproc *rproc, void *ptr,
|
|||||||
* tell us ranges of physical addresses the firmware is allowed to request,
|
* tell us ranges of physical addresses the firmware is allowed to request,
|
||||||
* and not allow firmwares to request access to physical addresses that
|
* and not allow firmwares to request access to physical addresses that
|
||||||
* are outside those ranges.
|
* are outside those ranges.
|
||||||
|
*
|
||||||
|
* Return: 0 on success, or an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
static int rproc_handle_devmem(struct rproc *rproc, void *ptr,
|
static int rproc_handle_devmem(struct rproc *rproc, void *ptr,
|
||||||
int offset, int avail)
|
int offset, int avail)
|
||||||
@ -783,6 +785,8 @@ out:
|
|||||||
*
|
*
|
||||||
* This function allocate specified memory entry @mem using
|
* This function allocate specified memory entry @mem using
|
||||||
* dma_alloc_coherent() as default allocator
|
* dma_alloc_coherent() as default allocator
|
||||||
|
*
|
||||||
|
* Return: 0 on success, or an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
static int rproc_alloc_carveout(struct rproc *rproc,
|
static int rproc_alloc_carveout(struct rproc *rproc,
|
||||||
struct rproc_mem_entry *mem)
|
struct rproc_mem_entry *mem)
|
||||||
@ -889,6 +893,8 @@ dma_free:
|
|||||||
*
|
*
|
||||||
* This function releases specified memory entry @mem allocated via
|
* This function releases specified memory entry @mem allocated via
|
||||||
* rproc_alloc_carveout() function by @rproc.
|
* rproc_alloc_carveout() function by @rproc.
|
||||||
|
*
|
||||||
|
* Return: 0 on success, or an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
static int rproc_release_carveout(struct rproc *rproc,
|
static int rproc_release_carveout(struct rproc *rproc,
|
||||||
struct rproc_mem_entry *mem)
|
struct rproc_mem_entry *mem)
|
||||||
@ -918,6 +924,8 @@ static int rproc_release_carveout(struct rproc *rproc,
|
|||||||
* (e.g. CMA) more efficiently, and also minimizes the number of TLB entries
|
* (e.g. CMA) more efficiently, and also minimizes the number of TLB entries
|
||||||
* needed to map it (in case @rproc is using an IOMMU). Reducing the TLB
|
* needed to map it (in case @rproc is using an IOMMU). Reducing the TLB
|
||||||
* pressure is important; it may have a substantial impact on performance.
|
* pressure is important; it may have a substantial impact on performance.
|
||||||
|
*
|
||||||
|
* Return: 0 on success, or an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
static int rproc_handle_carveout(struct rproc *rproc,
|
static int rproc_handle_carveout(struct rproc *rproc,
|
||||||
void *ptr, int offset, int avail)
|
void *ptr, int offset, int avail)
|
||||||
@ -1006,6 +1014,8 @@ EXPORT_SYMBOL(rproc_add_carveout);
|
|||||||
*
|
*
|
||||||
* This function allocates a rproc_mem_entry struct and fill it with parameters
|
* This function allocates a rproc_mem_entry struct and fill it with parameters
|
||||||
* provided by client.
|
* provided by client.
|
||||||
|
*
|
||||||
|
* Return: a valid pointer on success, or NULL on failure
|
||||||
*/
|
*/
|
||||||
__printf(8, 9)
|
__printf(8, 9)
|
||||||
struct rproc_mem_entry *
|
struct rproc_mem_entry *
|
||||||
@ -1050,6 +1060,8 @@ EXPORT_SYMBOL(rproc_mem_entry_init);
|
|||||||
*
|
*
|
||||||
* This function allocates a rproc_mem_entry struct and fill it with parameters
|
* This function allocates a rproc_mem_entry struct and fill it with parameters
|
||||||
* provided by client.
|
* provided by client.
|
||||||
|
*
|
||||||
|
* Return: a valid pointer on success, or NULL on failure
|
||||||
*/
|
*/
|
||||||
__printf(5, 6)
|
__printf(5, 6)
|
||||||
struct rproc_mem_entry *
|
struct rproc_mem_entry *
|
||||||
@ -1881,6 +1893,8 @@ static int __rproc_detach(struct rproc *rproc)
|
|||||||
* remoteproc functional again.
|
* remoteproc functional again.
|
||||||
*
|
*
|
||||||
* This function can sleep, so it cannot be called from atomic context.
|
* This function can sleep, so it cannot be called from atomic context.
|
||||||
|
*
|
||||||
|
* Return: 0 on success or a negative value upon failure
|
||||||
*/
|
*/
|
||||||
int rproc_trigger_recovery(struct rproc *rproc)
|
int rproc_trigger_recovery(struct rproc *rproc)
|
||||||
{
|
{
|
||||||
@ -1965,7 +1979,7 @@ static void rproc_crash_handler_work(struct work_struct *work)
|
|||||||
* If the remote processor is already powered on, this function immediately
|
* If the remote processor is already powered on, this function immediately
|
||||||
* returns (successfully).
|
* returns (successfully).
|
||||||
*
|
*
|
||||||
* Returns 0 on success, and an appropriate error value otherwise.
|
* Return: 0 on success, and an appropriate error value otherwise
|
||||||
*/
|
*/
|
||||||
int rproc_boot(struct rproc *rproc)
|
int rproc_boot(struct rproc *rproc)
|
||||||
{
|
{
|
||||||
@ -2100,6 +2114,8 @@ EXPORT_SYMBOL(rproc_shutdown);
|
|||||||
* no longer available. From there it should be possible to remove the
|
* no longer available. From there it should be possible to remove the
|
||||||
* platform driver and even power cycle the application processor (if the HW
|
* platform driver and even power cycle the application processor (if the HW
|
||||||
* supports it) without needing to switch off the remote processor.
|
* supports it) without needing to switch off the remote processor.
|
||||||
|
*
|
||||||
|
* Return: 0 on success, and an appropriate error value otherwise
|
||||||
*/
|
*/
|
||||||
int rproc_detach(struct rproc *rproc)
|
int rproc_detach(struct rproc *rproc)
|
||||||
{
|
{
|
||||||
@ -2152,7 +2168,7 @@ EXPORT_SYMBOL(rproc_detach);
|
|||||||
* This function increments the remote processor's refcount, so always
|
* This function increments the remote processor's refcount, so always
|
||||||
* use rproc_put() to decrement it back once rproc isn't needed anymore.
|
* use rproc_put() to decrement it back once rproc isn't needed anymore.
|
||||||
*
|
*
|
||||||
* Returns the rproc handle on success, and NULL on failure.
|
* Return: rproc handle on success, and NULL on failure
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
struct rproc *rproc_get_by_phandle(phandle phandle)
|
struct rproc *rproc_get_by_phandle(phandle phandle)
|
||||||
@ -2302,8 +2318,6 @@ static int rproc_validate(struct rproc *rproc)
|
|||||||
* This is called by the platform-specific rproc implementation, whenever
|
* This is called by the platform-specific rproc implementation, whenever
|
||||||
* a new remote processor device is probed.
|
* a new remote processor device is probed.
|
||||||
*
|
*
|
||||||
* Returns 0 on success and an appropriate error code otherwise.
|
|
||||||
*
|
|
||||||
* Note: this function initiates an asynchronous firmware loading
|
* Note: this function initiates an asynchronous firmware loading
|
||||||
* context, which will look for virtio devices supported by the rproc's
|
* context, which will look for virtio devices supported by the rproc's
|
||||||
* firmware.
|
* firmware.
|
||||||
@ -2311,6 +2325,8 @@ static int rproc_validate(struct rproc *rproc)
|
|||||||
* If found, those virtio devices will be created and added, so as a result
|
* If found, those virtio devices will be created and added, so as a result
|
||||||
* of registering this remote processor, additional virtio drivers might be
|
* of registering this remote processor, additional virtio drivers might be
|
||||||
* probed.
|
* probed.
|
||||||
|
*
|
||||||
|
* Return: 0 on success and an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
int rproc_add(struct rproc *rproc)
|
int rproc_add(struct rproc *rproc)
|
||||||
{
|
{
|
||||||
@ -2364,7 +2380,7 @@ static void devm_rproc_remove(void *rproc)
|
|||||||
* This function performs like rproc_add() but the registered rproc device will
|
* This function performs like rproc_add() but the registered rproc device will
|
||||||
* automatically be removed on driver detach.
|
* automatically be removed on driver detach.
|
||||||
*
|
*
|
||||||
* Returns: 0 on success, negative errno on failure
|
* Return: 0 on success, negative errno on failure
|
||||||
*/
|
*/
|
||||||
int devm_rproc_add(struct device *dev, struct rproc *rproc)
|
int devm_rproc_add(struct device *dev, struct rproc *rproc)
|
||||||
{
|
{
|
||||||
@ -2472,10 +2488,10 @@ static int rproc_alloc_ops(struct rproc *rproc, const struct rproc_ops *ops)
|
|||||||
* implementations should then call rproc_add() to complete
|
* implementations should then call rproc_add() to complete
|
||||||
* the registration of the remote processor.
|
* the registration of the remote processor.
|
||||||
*
|
*
|
||||||
* On success the new rproc is returned, and on failure, NULL.
|
|
||||||
*
|
|
||||||
* Note: _never_ directly deallocate @rproc, even if it was not registered
|
* Note: _never_ directly deallocate @rproc, even if it was not registered
|
||||||
* yet. Instead, when you need to unroll rproc_alloc(), use rproc_free().
|
* yet. Instead, when you need to unroll rproc_alloc(), use rproc_free().
|
||||||
|
*
|
||||||
|
* Return: new rproc pointer on success, and NULL on failure
|
||||||
*/
|
*/
|
||||||
struct rproc *rproc_alloc(struct device *dev, const char *name,
|
struct rproc *rproc_alloc(struct device *dev, const char *name,
|
||||||
const struct rproc_ops *ops,
|
const struct rproc_ops *ops,
|
||||||
@ -2588,7 +2604,7 @@ EXPORT_SYMBOL(rproc_put);
|
|||||||
* of the outstanding reference created by rproc_alloc. To decrement that
|
* of the outstanding reference created by rproc_alloc. To decrement that
|
||||||
* one last refcount, one still needs to call rproc_free().
|
* one last refcount, one still needs to call rproc_free().
|
||||||
*
|
*
|
||||||
* Returns 0 on success and -EINVAL if @rproc isn't valid.
|
* Return: 0 on success and -EINVAL if @rproc isn't valid
|
||||||
*/
|
*/
|
||||||
int rproc_del(struct rproc *rproc)
|
int rproc_del(struct rproc *rproc)
|
||||||
{
|
{
|
||||||
@ -2635,7 +2651,7 @@ static void devm_rproc_free(struct device *dev, void *res)
|
|||||||
* This function performs like rproc_alloc() but the acquired rproc device will
|
* This function performs like rproc_alloc() but the acquired rproc device will
|
||||||
* automatically be released on driver detach.
|
* automatically be released on driver detach.
|
||||||
*
|
*
|
||||||
* Returns: new rproc instance, or NULL on failure
|
* Return: new rproc instance, or NULL on failure
|
||||||
*/
|
*/
|
||||||
struct rproc *devm_rproc_alloc(struct device *dev, const char *name,
|
struct rproc *devm_rproc_alloc(struct device *dev, const char *name,
|
||||||
const struct rproc_ops *ops,
|
const struct rproc_ops *ops,
|
||||||
@ -2687,7 +2703,7 @@ EXPORT_SYMBOL(rproc_remove_subdev);
|
|||||||
* rproc_get_by_child() - acquire rproc handle of @dev's ancestor
|
* rproc_get_by_child() - acquire rproc handle of @dev's ancestor
|
||||||
* @dev: child device to find ancestor of
|
* @dev: child device to find ancestor of
|
||||||
*
|
*
|
||||||
* Returns the ancestor rproc instance, or NULL if not found.
|
* Return: the ancestor rproc instance, or NULL if not found
|
||||||
*/
|
*/
|
||||||
struct rproc *rproc_get_by_child(struct device *dev)
|
struct rproc *rproc_get_by_child(struct device *dev)
|
||||||
{
|
{
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
* @fw: the ELF firmware image
|
* @fw: the ELF firmware image
|
||||||
*
|
*
|
||||||
* Make sure this fw image is sane (ie a correct ELF32/ELF64 file).
|
* Make sure this fw image is sane (ie a correct ELF32/ELF64 file).
|
||||||
|
*
|
||||||
|
* Return: 0 on success and -EINVAL upon any failure
|
||||||
*/
|
*/
|
||||||
int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw)
|
int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw)
|
||||||
{
|
{
|
||||||
@ -117,11 +119,11 @@ EXPORT_SYMBOL(rproc_elf_sanity_check);
|
|||||||
* @rproc: the remote processor handle
|
* @rproc: the remote processor handle
|
||||||
* @fw: the ELF firmware image
|
* @fw: the ELF firmware image
|
||||||
*
|
*
|
||||||
* This function returns the entry point address of the ELF
|
|
||||||
* image.
|
|
||||||
*
|
|
||||||
* Note that the boot address is not a configurable property of all remote
|
* Note that the boot address is not a configurable property of all remote
|
||||||
* processors. Some will always boot at a specific hard-coded address.
|
* processors. Some will always boot at a specific hard-coded address.
|
||||||
|
*
|
||||||
|
* Return: entry point address of the ELF image
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw)
|
u64 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw)
|
||||||
{
|
{
|
||||||
@ -152,6 +154,8 @@ EXPORT_SYMBOL(rproc_elf_get_boot_addr);
|
|||||||
* might be different: they might not have iommus, and would prefer to
|
* might be different: they might not have iommus, and would prefer to
|
||||||
* directly allocate memory for every segment/resource. This is not yet
|
* directly allocate memory for every segment/resource. This is not yet
|
||||||
* supported, though.
|
* supported, though.
|
||||||
|
*
|
||||||
|
* Return: 0 on success and an appropriate error code otherwise
|
||||||
*/
|
*/
|
||||||
int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
|
int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
|
||||||
{
|
{
|
||||||
@ -362,7 +366,7 @@ EXPORT_SYMBOL(rproc_elf_load_rsc_table);
|
|||||||
* This function finds the location of the loaded resource table. Don't
|
* This function finds the location of the loaded resource table. Don't
|
||||||
* call this function if the table wasn't loaded yet - it's a bug if you do.
|
* call this function if the table wasn't loaded yet - it's a bug if you do.
|
||||||
*
|
*
|
||||||
* Returns the pointer to the resource table if it is found or NULL otherwise.
|
* Return: pointer to the resource table if it is found or NULL otherwise.
|
||||||
* If the table wasn't loaded yet the result is unspecified.
|
* If the table wasn't loaded yet the result is unspecified.
|
||||||
*/
|
*/
|
||||||
struct resource_table *rproc_elf_find_loaded_rsc_table(struct rproc *rproc,
|
struct resource_table *rproc_elf_find_loaded_rsc_table(struct rproc *rproc,
|
||||||
|
@ -45,7 +45,7 @@ static bool rproc_virtio_notify(struct virtqueue *vq)
|
|||||||
* when the remote processor signals that a specific virtqueue has pending
|
* when the remote processor signals that a specific virtqueue has pending
|
||||||
* messages available.
|
* messages available.
|
||||||
*
|
*
|
||||||
* Returns IRQ_NONE if no message was found in the @notifyid virtqueue,
|
* Return: IRQ_NONE if no message was found in the @notifyid virtqueue,
|
||||||
* and otherwise returns IRQ_HANDLED.
|
* and otherwise returns IRQ_HANDLED.
|
||||||
*/
|
*/
|
||||||
irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int notifyid)
|
irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int notifyid)
|
||||||
@ -325,7 +325,7 @@ static void rproc_virtio_dev_release(struct device *dev)
|
|||||||
* This function registers a virtio device. This vdev's partent is
|
* This function registers a virtio device. This vdev's partent is
|
||||||
* the rproc device.
|
* the rproc device.
|
||||||
*
|
*
|
||||||
* Returns 0 on success or an appropriate error value otherwise.
|
* Return: 0 on success or an appropriate error value otherwise
|
||||||
*/
|
*/
|
||||||
int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id)
|
int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id)
|
||||||
{
|
{
|
||||||
@ -432,6 +432,8 @@ out:
|
|||||||
* @data: must be null
|
* @data: must be null
|
||||||
*
|
*
|
||||||
* This function unregisters an existing virtio device.
|
* This function unregisters an existing virtio device.
|
||||||
|
*
|
||||||
|
* Return: 0
|
||||||
*/
|
*/
|
||||||
int rproc_remove_virtio_dev(struct device *dev, void *data)
|
int rproc_remove_virtio_dev(struct device *dev, void *data)
|
||||||
{
|
{
|
||||||
|
@ -243,7 +243,7 @@ struct fw_rsc_trace {
|
|||||||
* @da: device address
|
* @da: device address
|
||||||
* @align: the alignment between the consumer and producer parts of the vring
|
* @align: the alignment between the consumer and producer parts of the vring
|
||||||
* @num: num of buffers supported by this vring (must be power of two)
|
* @num: num of buffers supported by this vring (must be power of two)
|
||||||
* @notifyid is a unique rproc-wide notify index for this vring. This notify
|
* @notifyid: a unique rproc-wide notify index for this vring. This notify
|
||||||
* index is used when kicking a remote processor, to let it know that this
|
* index is used when kicking a remote processor, to let it know that this
|
||||||
* vring is triggered.
|
* vring is triggered.
|
||||||
* @pa: physical address
|
* @pa: physical address
|
||||||
@ -266,18 +266,18 @@ struct fw_rsc_vdev_vring {
|
|||||||
/**
|
/**
|
||||||
* struct fw_rsc_vdev - virtio device header
|
* struct fw_rsc_vdev - virtio device header
|
||||||
* @id: virtio device id (as in virtio_ids.h)
|
* @id: virtio device id (as in virtio_ids.h)
|
||||||
* @notifyid is a unique rproc-wide notify index for this vdev. This notify
|
* @notifyid: a unique rproc-wide notify index for this vdev. This notify
|
||||||
* index is used when kicking a remote processor, to let it know that the
|
* index is used when kicking a remote processor, to let it know that the
|
||||||
* status/features of this vdev have changes.
|
* status/features of this vdev have changes.
|
||||||
* @dfeatures specifies the virtio device features supported by the firmware
|
* @dfeatures: specifies the virtio device features supported by the firmware
|
||||||
* @gfeatures is a place holder used by the host to write back the
|
* @gfeatures: a place holder used by the host to write back the
|
||||||
* negotiated features that are supported by both sides.
|
* negotiated features that are supported by both sides.
|
||||||
* @config_len is the size of the virtio config space of this vdev. The config
|
* @config_len: the size of the virtio config space of this vdev. The config
|
||||||
* space lies in the resource table immediate after this vdev header.
|
* space lies in the resource table immediate after this vdev header.
|
||||||
* @status is a place holder where the host will indicate its virtio progress.
|
* @status: a place holder where the host will indicate its virtio progress.
|
||||||
* @num_of_vrings indicates how many vrings are described in this vdev header
|
* @num_of_vrings: indicates how many vrings are described in this vdev header
|
||||||
* @reserved: reserved (must be zero)
|
* @reserved: reserved (must be zero)
|
||||||
* @vring is an array of @num_of_vrings entries of 'struct fw_rsc_vdev_vring'.
|
* @vring: an array of @num_of_vrings entries of 'struct fw_rsc_vdev_vring'.
|
||||||
*
|
*
|
||||||
* This resource is a virtio device header: it provides information about
|
* This resource is a virtio device header: it provides information about
|
||||||
* the vdev, and is then used by the host and its peer remote processors
|
* the vdev, and is then used by the host and its peer remote processors
|
||||||
@ -287,16 +287,17 @@ struct fw_rsc_vdev_vring {
|
|||||||
* to statically allocate a vdev upon registration of the rproc (dynamic vdev
|
* to statically allocate a vdev upon registration of the rproc (dynamic vdev
|
||||||
* allocation is not yet supported).
|
* allocation is not yet supported).
|
||||||
*
|
*
|
||||||
* Note: unlike virtualization systems, the term 'host' here means
|
* Note:
|
||||||
* the Linux side which is running remoteproc to control the remote
|
* 1. unlike virtualization systems, the term 'host' here means
|
||||||
* processors. We use the name 'gfeatures' to comply with virtio's terms,
|
* the Linux side which is running remoteproc to control the remote
|
||||||
* though there isn't really any virtualized guest OS here: it's the host
|
* processors. We use the name 'gfeatures' to comply with virtio's terms,
|
||||||
* which is responsible for negotiating the final features.
|
* though there isn't really any virtualized guest OS here: it's the host
|
||||||
* Yeah, it's a bit confusing.
|
* which is responsible for negotiating the final features.
|
||||||
|
* Yeah, it's a bit confusing.
|
||||||
*
|
*
|
||||||
* Note: immediately following this structure is the virtio config space for
|
* 2. immediately following this structure is the virtio config space for
|
||||||
* this vdev (which is specific to the vdev; for more info, read the virtio
|
* this vdev (which is specific to the vdev; for more info, read the virtio
|
||||||
* spec). the size of the config space is specified by @config_len.
|
* spec). The size of the config space is specified by @config_len.
|
||||||
*/
|
*/
|
||||||
struct fw_rsc_vdev {
|
struct fw_rsc_vdev {
|
||||||
u32 id;
|
u32 id;
|
||||||
@ -440,7 +441,7 @@ enum rproc_state {
|
|||||||
* enum rproc_crash_type - remote processor crash types
|
* enum rproc_crash_type - remote processor crash types
|
||||||
* @RPROC_MMUFAULT: iommu fault
|
* @RPROC_MMUFAULT: iommu fault
|
||||||
* @RPROC_WATCHDOG: watchdog bite
|
* @RPROC_WATCHDOG: watchdog bite
|
||||||
* @RPROC_FATAL_ERROR fatal error
|
* @RPROC_FATAL_ERROR: fatal error
|
||||||
*
|
*
|
||||||
* Each element of the enum is used as an array index. So that, the value of
|
* Each element of the enum is used as an array index. So that, the value of
|
||||||
* the elements should be always something sane.
|
* the elements should be always something sane.
|
||||||
@ -457,9 +458,9 @@ enum rproc_crash_type {
|
|||||||
* enum rproc_dump_mechanism - Coredump options for core
|
* enum rproc_dump_mechanism - Coredump options for core
|
||||||
* @RPROC_COREDUMP_DISABLED: Don't perform any dump
|
* @RPROC_COREDUMP_DISABLED: Don't perform any dump
|
||||||
* @RPROC_COREDUMP_ENABLED: Copy dump to separate buffer and carry on with
|
* @RPROC_COREDUMP_ENABLED: Copy dump to separate buffer and carry on with
|
||||||
recovery
|
* recovery
|
||||||
* @RPROC_COREDUMP_INLINE: Read segments directly from device memory. Stall
|
* @RPROC_COREDUMP_INLINE: Read segments directly from device memory. Stall
|
||||||
recovery until all segments are read
|
* recovery until all segments are read
|
||||||
*/
|
*/
|
||||||
enum rproc_dump_mechanism {
|
enum rproc_dump_mechanism {
|
||||||
RPROC_COREDUMP_DISABLED,
|
RPROC_COREDUMP_DISABLED,
|
||||||
@ -475,6 +476,7 @@ enum rproc_dump_mechanism {
|
|||||||
* @priv: private data associated with the dump_segment
|
* @priv: private data associated with the dump_segment
|
||||||
* @dump: custom dump function to fill device memory segment associated
|
* @dump: custom dump function to fill device memory segment associated
|
||||||
* with coredump
|
* with coredump
|
||||||
|
* @offset: offset of the segment
|
||||||
*/
|
*/
|
||||||
struct rproc_dump_segment {
|
struct rproc_dump_segment {
|
||||||
struct list_head node;
|
struct list_head node;
|
||||||
@ -524,7 +526,9 @@ struct rproc_dump_segment {
|
|||||||
* @auto_boot: flag to indicate if remote processor should be auto-started
|
* @auto_boot: flag to indicate if remote processor should be auto-started
|
||||||
* @dump_segments: list of segments in the firmware
|
* @dump_segments: list of segments in the firmware
|
||||||
* @nb_vdev: number of vdev currently handled by rproc
|
* @nb_vdev: number of vdev currently handled by rproc
|
||||||
* @char_dev: character device of the rproc
|
* @elf_class: firmware ELF class
|
||||||
|
* @elf_machine: firmware ELF machine
|
||||||
|
* @cdev: character device of the rproc
|
||||||
* @cdev_put_on_release: flag to indicate if remoteproc should be shutdown on @char_dev release
|
* @cdev_put_on_release: flag to indicate if remoteproc should be shutdown on @char_dev release
|
||||||
*/
|
*/
|
||||||
struct rproc {
|
struct rproc {
|
||||||
@ -613,10 +617,10 @@ struct rproc_vring {
|
|||||||
* struct rproc_vdev - remoteproc state for a supported virtio device
|
* struct rproc_vdev - remoteproc state for a supported virtio device
|
||||||
* @refcount: reference counter for the vdev and vring allocations
|
* @refcount: reference counter for the vdev and vring allocations
|
||||||
* @subdev: handle for registering the vdev as a rproc subdevice
|
* @subdev: handle for registering the vdev as a rproc subdevice
|
||||||
|
* @dev: device struct used for reference count semantics
|
||||||
* @id: virtio device id (as in virtio_ids.h)
|
* @id: virtio device id (as in virtio_ids.h)
|
||||||
* @node: list node
|
* @node: list node
|
||||||
* @rproc: the rproc handle
|
* @rproc: the rproc handle
|
||||||
* @vdev: the virio device
|
|
||||||
* @vring: the vrings for this vdev
|
* @vring: the vrings for this vdev
|
||||||
* @rsc_offset: offset of the vdev's resource entry
|
* @rsc_offset: offset of the vdev's resource entry
|
||||||
* @index: vdev position versus other vdev declared in resource table
|
* @index: vdev position versus other vdev declared in resource table
|
||||||
|
Loading…
Reference in New Issue
Block a user