summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index 208c135..f6a021a 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -10680,7 +10680,9 @@ static int gsp_phys_rmcall_gr_ctx_promote(void __iomem *bar0)
boot_stage.rmcall_gr_promote !=
GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_EXEC &&
boot_stage.rmcall_gr_promote !=
- GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_EXEC_LAST))
+ GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_EXEC_LAST &&
+ boot_stage.rmcall_gr_promote !=
+ GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_USER_LANE))
return -EINVAL;
if (mode == GSP_PHYS_RMCALL_GR_PROMOTE_OFF)
return -EOPNOTSUPP;
@@ -13211,12 +13213,12 @@ static int gsp_phys_rmcall_stage3(void __iomem *bar0)
"mode 35 TURING_COMPUTE_A on V7 (after promote)",
&ul_rpc, &ul_status);
if (ret) {
- pr_err("vgsp-boot: rm-call: stage 3 aborted: mode 35 TURING_COMPUTE_A on V7 failed (status=0x%x rpc_result=0x%x ret=%d); the V7 context has no class object and the ladder aborts with no retry\n",
+ pr_err("vgsp-boot: rm-call: mode 35 TURING_COMPUTE_A on V7 failed (status=0x%x rpc_result=0x%x ret=%d); continuing BEST-EFFORT: the lane stays and stage 4 + the forwarded launch show whether the class-object gate matters for QMD dispatch\n",
ul_status, ul_rpc, ret);
- return ret;
+ } else {
+ boot_stage.rmcall_gr_object =
+ GSP_PHYS_RMCALL_HANDLE_USER_LANE_GR_OBJ;
}
- boot_stage.rmcall_gr_object =
- GSP_PHYS_RMCALL_HANDLE_USER_LANE_GR_OBJ;
pr_info("vgsp-boot: rm-call: mode 35: execution channel switched from V6 0x%x to V7 0x%x (captured flags=0x%x internalFlags=0x%x hContextShare=0x%x hVASpace=0, gpFifoVa=0x%llx entries=%u, sysmem USERD, FBMEM instance/ramfc, TURING_COMPUTE_A 0x%x); V6 stays allocated and unscheduled, stage 4 + forwarding run on V7\n",
boot_stage.rmcall_channel,
GSP_PHYS_RMCALL_HANDLE_USER_LANE,