summaryrefslogtreecommitdiff
path: root/drivers/gpu/nova-core/irq.rs
blob: 02f9bd84dd19d6c6a37452f5f9cc40aca8c93026 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// SPDX-License-Identifier: GPL-2.0
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.

//! GPU interrupt support.
//!
//! GIN, the GPU Interrupt and Notification unit, is the GPU's interrupt controller. It latches
//! every interrupt source in a two-level register tree and delivers the tree to the CPU as a
//! message-signaled PCI interrupt.
//!
//! See `Documentation/gpu/nova/core/interrupts.rst`.

#[cfg(CONFIG_NOVA_CORE_SELFTESTS)]
pub(crate) mod doorbell_test;
pub(crate) mod gsp;
mod hal;
pub(crate) mod interrupt_tree;
mod regs;

/// The message-signaled interrupt type that Linux granted.
///
/// nova-core never requests INTx, so this has no variant for it, unlike [`kernel::pci::IrqType`].
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
enum MsiType {
    /// A single message, which every subtree raises.
    Msi,

    /// One table entry per subtree.
    MsiX,
}