From c0a421081e003886f9fe8e9956aebae52e26806a Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 17:05:16 -0400 Subject: vgsp: m37 pcas gate (window-only stock form) + QMD w48..50 post-mortem --- kernel/gsp_phys_gpu.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'kernel/gsp_phys_gpu.c') diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c index 0c7e1e5..9100959 100644 --- a/kernel/gsp_phys_gpu.c +++ b/kernel/gsp_phys_gpu.c @@ -618,6 +618,25 @@ int gsp_phys_rmcall_gr_qmdvirt_value(void) } EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_qmdvirt_value); +/* + * Explicit-PCAS gate (default 1). The rebuilt launch carries the vendor's + * turingPushPcas(CU_PCAS_TYPE_COPY) pair (SEND_PCAS_A = QMD>>8 followed by + * SEND_SIGNALING_PCAS_B = INVALIDATE|SCHEDULE). The stock guest push does + * not emit these (it relies on the IQ2M window's implied copy PCAS); setting + * this to 0 emits the pure vendor window-only form for the A/B test. + */ +static int gsp_phys_rmcall_gr_pcas_param = 1; +module_param_named(gsp_phys_rmcall_gr_pcas, + gsp_phys_rmcall_gr_pcas_param, int, 0644); +MODULE_PARM_DESC(gsp_phys_rmcall_gr_pcas, + "Emit the explicit SEND_PCAS_A/SEND_SIGNALING_PCAS_B pair in the GR launch block (default 1 = vendor turingPushPcas copy form; 0 = window-only stock form)"); + +int gsp_phys_rmcall_gr_pcas_value(void) +{ + return gsp_phys_rmcall_gr_pcas_param; +} +EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_pcas_value); + /* * Rank-2 qmdwin diagnostic (gsp_phys_rmcall_gr_qmdwin; default 0). When set, * a forwarded GR launch relocates its inline-QMD destination from the guest -- cgit v1.2.3