^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef __ASM_GENERIC_MSI_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __ASM_GENERIC_MSI_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef NUM_MSI_ALLOC_SCRATCHPAD_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) # define NUM_MSI_ALLOC_SCRATCHPAD_REGS 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) struct msi_desc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * struct msi_alloc_info - Default structure for MSI interrupt allocation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * @desc: Pointer to msi descriptor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * @hwirq: Associated hw interrupt number in the domain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * @scratchpad: Storage for implementation specific scratch data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) * Architectures can provide their own implementation by not including
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) * asm-generic/msi.h into their arch specific header file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) typedef struct msi_alloc_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) struct msi_desc *desc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) irq_hw_number_t hwirq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) union {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) unsigned long ul;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) void *ptr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) } scratchpad[NUM_MSI_ALLOC_SCRATCHPAD_REGS];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) } msi_alloc_info_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define GENERIC_MSI_DOMAIN_OPS 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #endif