summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_gpu.c')
-rw-r--r--kernel/gsp_phys_gpu.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c
index a350ed9..e92e5f1 100644
--- a/kernel/gsp_phys_gpu.c
+++ b/kernel/gsp_phys_gpu.c
@@ -1030,6 +1030,26 @@ int gsp_phys_rmcall_gr_mail_patch_value(void)
EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_mail_patch_value);
/*
+ * m106: pre-install the fixed data PT pool (32 windows at
+ * GSP_PHYS_RMCALL_VA_GR_DATA_BASE) during stage 3, before the channel
+ * commit. Post-commit UPDATE_PDE_2 installs are accepted but ineffective
+ * (m101-m105); the ctx-window installs show the pre-commit path is the
+ * one the engine honours. Launch-time work is then only leaf PTE writes
+ * into these freshly installed PT pages. Default 0.
+ */
+static int gsp_phys_rmcall_gr_data_prewin_param;
+module_param_named(gsp_phys_rmcall_gr_data_prewin,
+ gsp_phys_rmcall_gr_data_prewin_param, int, 0644);
+MODULE_PARM_DESC(gsp_phys_rmcall_gr_data_prewin,
+ "Pre-install the data PT window pool in stage 3 (default 0)");
+
+int gsp_phys_rmcall_gr_data_prewin_value(void)
+{
+ return gsp_phys_rmcall_gr_data_prewin_param;
+}
+EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_data_prewin_value);
+
+/*
* m95: program each GPC's MMU_CTRL from the hub's PFB MMU_CTRL (the real RM's
* grInitGPCMmuPRIRegs matching-fields copy) before a forwarded launch. The
* GPC-side walker refuses the SM I-fetch with MMU_NACK while hub-side reads