gpu: nvgpu: Fix for MIG boot issue

- The power device node is created at bootime and the power node
is used to power-on the GPU. Power node is commmon for MIG and
non-MIG platforms. As the same API is used for power and
other MIG/non-MIG nodes, we need to distinguish between them.
Otherwise the same nodes creation will give boot issue.
- As we are supporting mig_mode setting for non-mig platforms
like GV11B, the condition need to be added to create MIG-modes
or not. If any mig-mode is set on gv11b/tu104 then graphics pipeline
will be disabled.

JIRA NVGPU-6633

Signed-off-by: dt <dt@nvidia.com>
Change-Id: I3c641e50c39180543efff04a9cf8b721dbf7f648
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2521732
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Vaibhav Kachore <vkachore@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
dt
2021-04-28 10:51:32 +00:00
committed by mobile promotions
parent 07d8a39647
commit a6a3bde1b5

View File

@@ -22,6 +22,7 @@
#include <nvgpu/nvgpu_common.h> #include <nvgpu/nvgpu_common.h>
#include <nvgpu/gk20a.h> #include <nvgpu/gk20a.h>
#include <nvgpu/mig.h> #include <nvgpu/mig.h>
#include <nvgpu/grmgr.h>
#include <nvgpu/nvgpu_init.h> #include <nvgpu/nvgpu_init.h>
#include "ioctl_channel.h" #include "ioctl_channel.h"
@@ -555,7 +556,7 @@ static int nvgpu_prepare_dev_node_class_list(struct gk20a *g, u32 *num_classes,
{ {
int err; int err;
if (nvgpu_is_enabled(g, NVGPU_SUPPORT_MIG)) { if ((!power_node) && nvgpu_grmgr_is_multi_gr_enabled(g)) {
err = nvgpu_prepare_mig_dev_node_class_list(g, num_classes); err = nvgpu_prepare_mig_dev_node_class_list(g, num_classes);
} else { } else {
err = nvgpu_prepare_default_dev_node_class_list(g, num_classes, power_node); err = nvgpu_prepare_default_dev_node_class_list(g, num_classes, power_node);