mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: doxygen for runlist HAL
Add documentation for runlist HAL that is called from other units: - reload Jira NVGPU-4110 Change-Id: Ic5fe6293461de38b38b223b84525e43ac094d50b Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2214220 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Alex Waterman
parent
cf3567f6a5
commit
c5922eba87
@@ -55,6 +55,7 @@
|
||||
* TODO
|
||||
*
|
||||
* + include/nvgpu/runlist.h
|
||||
* + include/nvgpu/gops_runlist.h
|
||||
*
|
||||
* Pbdma
|
||||
* -------
|
||||
|
||||
@@ -24,15 +24,54 @@
|
||||
|
||||
#include <nvgpu/types.h>
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* Runlist HAL interface.
|
||||
*/
|
||||
struct gk20a;
|
||||
struct nvgpu_channel;
|
||||
|
||||
/**
|
||||
* Runlist HAL operations.
|
||||
*
|
||||
* @see gpu_ops
|
||||
*/
|
||||
struct gops_runlist {
|
||||
/**
|
||||
* @brief Reload runlist.
|
||||
*
|
||||
* @param g [in] The GPU driver struct.
|
||||
* @param runlist_id [in] Runlist identifier.
|
||||
* @param add [in] True to submit a runlist buffer with
|
||||
* all active channels. False to submit
|
||||
* an empty runlist buffer.
|
||||
* @param wait_for_finish [in] True to wait for runlist update
|
||||
* completion.
|
||||
*
|
||||
* When \a add is true, all entries are updated for the runlist.
|
||||
* A runlist buffer is built with all active channels/TSGs for the
|
||||
* runlist and submitted to H/W.
|
||||
*
|
||||
* When \a add is false, an empty runlist buffer is submitted to H/W.
|
||||
* Submitting a NULL runlist results in Host expiring the current
|
||||
* timeslices and effectively disabling scheduling for that runlist
|
||||
* processor until the next runlist is submitted.
|
||||
*
|
||||
* @return 0 in case of success, < 0 in case of failure.
|
||||
* @retval -ETIMEDOUT if transition to the new runlist takes too long,
|
||||
* and \a wait_for_finish was requested.
|
||||
* @retval -E2BIG in case there are not enough entries in the runlist
|
||||
* buffer to accommodate all active channels/TSGs.
|
||||
*/
|
||||
int (*reload)(struct gk20a *g, u32 runlist_id,
|
||||
bool add, bool wait_for_finish);
|
||||
|
||||
/** @cond DOXYGEN_SHOULD_SKIP_THIS */
|
||||
|
||||
int (*update_for_channel)(struct gk20a *g, u32 runlist_id,
|
||||
struct nvgpu_channel *ch, bool add,
|
||||
bool wait_for_finish);
|
||||
int (*reload)(struct gk20a *g, u32 runlist_id,
|
||||
bool add, bool wait_for_finish);
|
||||
u32 (*count_max)(void);
|
||||
u32 (*entry_size)(struct gk20a *g);
|
||||
u32 (*length_max)(struct gk20a *g);
|
||||
@@ -44,11 +83,11 @@ struct gops_runlist {
|
||||
int (*wait_pending)(struct gk20a *g, u32 runlist_id);
|
||||
void (*write_state)(struct gk20a *g, u32 runlists_mask,
|
||||
u32 runlist_state);
|
||||
|
||||
/** NON FUSA */
|
||||
int (*reschedule)(struct nvgpu_channel *ch, bool preempt_next);
|
||||
int (*reschedule_preempt_next_locked)(struct nvgpu_channel *ch,
|
||||
bool wait_preempt);
|
||||
|
||||
/** @endcond DOXYGEN_SHOULD_SKIP_THIS */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user