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.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c
index 9b7235b..7932268 100644
--- a/kernel/gsp_phys_gpu.c
+++ b/kernel/gsp_phys_gpu.c
@@ -1075,6 +1075,28 @@ int gsp_phys_rmcall_gr_data_prewin_value(void)
EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_data_prewin_value);
/*
+ * B-2: grown boot-fixed data-bounce region (gsp_phys_gr_data_region; default
+ * 1). When set, gsp_phys_rmcall_pdb_build plants the 16384-page (64 MiB)
+ * region at GSP_PHYS_RMCALL_GR_DATA_BOUNCE_VA0 (PD0 80..111) and the SVC
+ * relocates operand pages into it; the booter's copy-in/copy-out index the
+ * grown chunk. When 0, everything falls back to the legacy 205-page /
+ * 68-pages-per-pointer window below the mail page, for one-flip A/B
+ * trialing. Boot-fixed: it is read by the stage-3 plant, so set it at
+ * insmod, not at runtime.
+ */
+static int gsp_phys_gr_data_region_param = 1;
+module_param_named(gsp_phys_gr_data_region,
+ gsp_phys_gr_data_region_param, int, 0644);
+MODULE_PARM_DESC(gsp_phys_gr_data_region,
+ "Use the grown 64 MiB data-bounce region for GR operands (default 1; 0 = legacy 205-page window)");
+
+int gsp_phys_gr_data_region_value(void)
+{
+ return gsp_phys_gr_data_region_param;
+}
+EXPORT_SYMBOL_GPL(gsp_phys_gr_data_region_value);
+
+/*
* m113: after planting the launch's data mappings, re-register the VAS page
* directory (UNSET+SET) to force the server walker to re-snapshot the tree;
* all evidence says the SM walker resolves only the commit-time tree, and