summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_sema_service.h')
-rw-r--r--kernel/gsp_sema_service.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/gsp_sema_service.h b/kernel/gsp_sema_service.h
index 7778443..ae9b7da 100644
--- a/kernel/gsp_sema_service.h
+++ b/kernel/gsp_sema_service.h
@@ -66,6 +66,17 @@ int gsp_sema_service_counter_add(u32 h_object, u64 pa);
void gsp_sema_service_doorbell(u32 token);
/*
+ * P5 wave-1 shadow work lifetime hooks. The backend release path must call
+ * gsp_sema_service_work_quiesce() before it frees the ladder buffers: it
+ * pauses new shadow requests and waits (bounded by the submit's 200 ms poll
+ * cap) for the in-flight one to finish, so no poll ever touches freed memory.
+ * gsp_sema_service_work_resume() re-enables requests when a new backend
+ * session starts.
+ */
+void gsp_sema_service_work_quiesce(void);
+void gsp_sema_service_work_resume(void);
+
+/*
* Discover and pin GR (compute) channel rings after the CE region of the
* channel video-memory allocation. Set false to leave GR rings untranslated
* (the pump then only runs the CE channels).