diff --git a/drivers/gpu/nvgpu/include/nvgpu/ce.h b/drivers/gpu/nvgpu/include/nvgpu/ce.h index 2f464d87f..1b9dc8a99 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/ce.h +++ b/drivers/gpu/nvgpu/include/nvgpu/ce.h @@ -22,8 +22,56 @@ #ifndef NVGPU_CE_H #define NVGPU_CE_H +/** + * @file + * @page unit-ce Unit CE + * + * Overview + * ======== + * + * The CE unit is responsible for initializing the copy engines. The GPU has two + * types of copy engines, GRCE and LCE. + * + * Data Structures + * =============== + * NA + * + * Static Design + * ============= + * + * CE Initialization + * ----------------- + * The CE unit resets the copy engines at Master Control (MC) level and programs + * the production clock gating and configuration options for copy engines. + * + * External APIs + * ------------- + * + nvgpu_ce_init_support() + * + * Dynamic Design + * ============== + * NA + */ + struct gk20a; +/** + * @brief Initialize the CE support. + * + * @param g [in] The GPU driver struct. + * + * This function is invoked during #nvgpu_finalize_poweron to initialize the + * copy engines. + * + * Steps: + * - Get the reset mask for all copy engines. + * - Reset the engines at master control level through mc_enable_r. + * - Load Second Level Clock Gating (SLCG) configuration for copy engine. + * - Load Block Level Clock Gating (BLCG) configuration for copy engine. + * - Initialize configuration options for LCEs. FORCE_BARRIERS_NPL is set. + * + * @return 0 in case of success, < 0 in case of failure. + */ int nvgpu_ce_init_support(struct gk20a *g); #endif /*NVGPU_CE_H*/ diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 779dabf7e..b4285598b 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -33,6 +33,7 @@ * Welcome to the nvgpu unit design documentation. The following pages document * the major top level units within nvgpu-common: * + * - @ref unit-ce * - @ref unit-mm * - @ref unit-fifo * - @ref unit-gr