xref: /linux/drivers/gpu/nova-core/irq.rs (revision 9cb3f5d56e81fd97a82ef361b210bc2322daaaa7)
1 // SPDX-License-Identifier: GPL-2.0
2 // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3 
4 //! GPU interrupt support.
5 //!
6 //! GIN, the GPU Interrupt and Notification unit, is the GPU's interrupt controller. It latches
7 //! every interrupt source in a two-level register tree and delivers the tree to the CPU as a
8 //! message-signaled PCI interrupt.
9 //!
10 //! See `Documentation/gpu/nova/core/interrupts.rst`.
11 
12 #[cfg(CONFIG_NOVA_CORE_SELFTESTS)]
13 pub(crate) mod doorbell_test;
14 mod hal;
15 pub(crate) mod interrupt_tree;
16 mod regs;
17 
18 /// The message-signaled interrupt type that Linux granted.
19 ///
20 /// nova-core never requests INTx, so this has no variant for it, unlike [`kernel::pci::IrqType`].
21 #[derive(Clone, Copy, Debug, Eq, PartialEq)]
22 enum MsiType {
23     /// A single message, which every subtree raises.
24     Msi,
25 
26     /// One table entry per subtree.
27     MsiX,
28 }
29