summaryrefslogtreecommitdiff
path: root/scripts/basic/split-include.c
diff options
context:
space:
mode:
authorJohn Hubbard <jhubbard@nvidia.com>2026-09-29 20:41:46 -0700
committerAlexandre Courbot <acourbot@nvidia.com>2026-10-02 21:50:17 +0900
commit476abf9f669d87f993429ebb42668169464c907c (patch)
tree3b7e8ec60309a7b7cfc0e5c96b54ceac37083372 /scripts/basic/split-include.c
parente727d1c382a0cb2e10fd7aabef9217d1a37c80c7 (diff)
downloadlinux-476abf9f669d87f993429ebb42668169464c907c.tar.gz
linux-476abf9f669d87f993429ebb42668169464c907c.zip
gpu: nova-core: service GSP events from the SWGEN0 interrupt
The GSP posts each message for the CPU to the GSP-to-CPU queue and then raises SWGEN0, a software-generated interrupt cause of its falcon. GIN delivers SWGEN0 to the CPU on vector 155. A thread waiting for a command reply was the only reader of the queue, so an event posted between commands stayed unread until the next command was sent. Register a threaded handler on the GSP vector. Draining the queue takes the command-queue mutex, which can sleep, so the top half reads and writes only registers and wakes the IRQ thread to drain the queue. Every existing read of the queue asks for one message type and waits on a deadline, so add a drain that logs and consumes whatever the GSP has already posted and returns at once. When a falcon cause other than SWGEN0 stays set after its latch is cleared, as the Blackwell fault-containment and ECC causes do, disable the GSP vector rather than retrigger the falcon. A retrigger would re-emit the cause at once, and the CPU would take the same interrupt again and again. Assisted-by: LLM Signed-off-by: John Hubbard <jhubbard@nvidia.com> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260930034148.590687-14-jhubbard@nvidia.com [acourbot: trim comment leaking unneeded implementation details.] [acourbot: make Subtree crate-visible here instead of in earlier patch.] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Diffstat (limited to 'scripts/basic/split-include.c')
0 files changed, 0 insertions, 0 deletions