mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-23 09:42:19 +03:00
IRQ is external interface for DMA driver. Use one IRQ handler callbacks to register and call SoC specific handler them based on SoC type. Add ICD documentation for common IRQ API's JIRA NET-2663 Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com> Change-Id: I51137489ebe071e2e4a3edc3c5e3fefb84c994fa Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3305091 Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com> Reviewed-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
78 lines
1.7 KiB
C
78 lines
1.7 KiB
C
// 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 <a href="#tegra-pcie-dma-irq-handler">(tegra_pcie_dma_irq_hadnler())</a>
|
|
*/
|
|
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
|
|
* <a href="#tegra-pcie-dma-complete-t">(tegra_pcie_dma_complete_t())</a>.
|
|
*
|
|
*/
|
|
irqreturn_t tegra_pcie_dma_irq_handler(int irq, void *arg);
|
|
|
|
#endif /* TEGRA_PCIE_DMA_IRQ_H */
|