// SPDX-License-Identifier: GPL-2.0-only /* SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. */ #ifndef TEGRA_PCIE_DMA_IRQ_H #define TEGRA_PCIE_DMA_IRQ_H #ifdef DOXYGEN_ICD /** * @dir * - forward */ #endif /** * @brief * Interrupt callback API to handle PCIe DMA interrupt. * * @param[in] irq un-used data * @param[in] arg This is used to retrieve Drive specific internal data structures. * * @usage * - Allowed context for the API call * - Interrupt: Yes * - Signal handler: No * - Thread-Safe: No * - Sync/Async: Sync * - Re-entrant: No * - Required Privileges: None. * - Operation Mode * - Initialization: Yes * - Run time: Yes * - De-initialization: Yes * * @return * - IRQ_WAKE_THREAD - always * * @outcome * - Triggers call to (tegra_pcie_dma_irq_hadnler()) */ irqreturn_t tegra_pcie_dma_irq(int irq, void *arg); #ifdef DOXYGEN_ICD /** * @dir * - forward */ #endif /** * @brief * Threaded interrupt Callback API for PCIe DMA controller interrupt. * * @param[in] irq un-used data * @param[in] arg This is used to retrieve Drive specific internal data structures. * * @usage * - Allowed context for the API call * - Interrupt: Yes * - Signal handler: No * - Thread-Safe: No * - Sync/Async: Sync * - Re-entrant: No * - Required Privileges: None. * - Operation Mode * - Initialization: Yes * - Run time: Yes * - De-initialization: Yes * * @return * - IRQ_DONE - always * * @outcome * - PCIe DMA IRQ is processed and status is notified via * (tegra_pcie_dma_complete_t()). * */ irqreturn_t tegra_pcie_dma_irq_handler(int irq, void *arg); #endif /* TEGRA_PCIE_DMA_IRQ_H */