mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
Add a new header file <nvgpu/gr/gr_instances.h> that supports below macros to execute various functions for GR instances 1) nvgpu_gr_exec_for_each_instance Execute a function for each GR instance by configuring GR remap window for that instance. Function being executed returns void. 2) nvgpu_gr_exec_with_ret_for_each_instance Execute a function for each GR instance by configuring GR remap window for that instance. Function being executed returns an error. 3) nvgpu_gr_exec_for_all_instances Execute a function for all GR instances at once. For this GR remap window needs to be disabled temporarily. If CONFIG_NVGPU_MIG is disabled, all above macros will turn into simple funciton calls. If CONFIG_NVGPU_MIG is disabled or if runtime flag NVGPU_SUPPORT_MIG is disabled, all above macros will turn into simple function calls that configure single GR instance. Separate out GR engine reset code into new API gr_reset_engine() and execute it with nvgpu_gr_exec_with_ret_for_each_instance(). PROD values need to be loaded in legacy mode, hence call nvgpu_cg_init_gr_load_gating_prod() inside nvgpu_gr_exec_for_all_instances(). Rename gr_init_prepare_hw() to more appropriate gr_reset_hw_and_load_prod() Moe gops.gr.init.fifo_access() call to gr_init_reset_enable_hw(). Add new API nvgpu_grmgr_get_gr_syspipe_id() to query GR instance syspipe id from common.grmgr unit. Add nvgpu_gr_get_syspipe_id() that returns same value stored in nvgpu_gr struct. Add cur_gr_instance field to struct nvgpu_gr to track current GR instance being programmed under remap window. Jira NVGPU-5648 Change-Id: I86920303427a6e6547ebf195daa37438365bb38e Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2403550 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>