xref: /linux/drivers/gpu/nova-core/irq.rs (revision 939b40877cb883de1fa335e950ff1a3f3bf113ed)
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 mod hal;
13 pub(crate) mod interrupt_tree;
14 mod regs;
15 
16 /// The message-signaled interrupt type that Linux granted.
17 ///
18 /// nova-core never requests INTx, so this has no variant for it, unlike [`kernel::pci::IrqType`].
19 #[derive(Clone, Copy, Debug, Eq, PartialEq)]
20 enum MsiType {
21     /// A single message, which every subtree raises.
22     Msi,
23 
24     /// One table entry per subtree.
25     MsiX,
26 }
27