xref: /OK3568_Linux_fs/kernel/arch/ia64/include/asm/msidef.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef _IA64_MSI_DEF_H
3*4882a593Smuzhiyun #define _IA64_MSI_DEF_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun /*
6*4882a593Smuzhiyun  * Shifts for APIC-based data
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #define     MSI_DATA_VECTOR_SHIFT	0
10*4882a593Smuzhiyun #define	    MSI_DATA_VECTOR(v)		(((u8)v) << MSI_DATA_VECTOR_SHIFT)
11*4882a593Smuzhiyun #define     MSI_DATA_VECTOR_MASK	0xffffff00
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #define     MSI_DATA_DELIVERY_MODE_SHIFT	8
14*4882a593Smuzhiyun #define     MSI_DATA_DELIVERY_FIXED	(0 << MSI_DATA_DELIVERY_MODE_SHIFT)
15*4882a593Smuzhiyun #define     MSI_DATA_DELIVERY_LOWPRI	(1 << MSI_DATA_DELIVERY_MODE_SHIFT)
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #define     MSI_DATA_LEVEL_SHIFT	14
18*4882a593Smuzhiyun #define     MSI_DATA_LEVEL_DEASSERT	(0 << MSI_DATA_LEVEL_SHIFT)
19*4882a593Smuzhiyun #define     MSI_DATA_LEVEL_ASSERT	(1 << MSI_DATA_LEVEL_SHIFT)
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #define     MSI_DATA_TRIGGER_SHIFT	15
22*4882a593Smuzhiyun #define     MSI_DATA_TRIGGER_EDGE	(0 << MSI_DATA_TRIGGER_SHIFT)
23*4882a593Smuzhiyun #define     MSI_DATA_TRIGGER_LEVEL	(1 << MSI_DATA_TRIGGER_SHIFT)
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun /*
26*4882a593Smuzhiyun  * Shift/mask fields for APIC-based bus address
27*4882a593Smuzhiyun  */
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #define     MSI_ADDR_DEST_ID_SHIFT	4
30*4882a593Smuzhiyun #define     MSI_ADDR_HEADER		0xfee00000
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun #define     MSI_ADDR_DEST_ID_MASK	0xfff0000f
33*4882a593Smuzhiyun #define     MSI_ADDR_DEST_ID_CPU(cpu)	((cpu) << MSI_ADDR_DEST_ID_SHIFT)
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun #define     MSI_ADDR_DEST_MODE_SHIFT	2
36*4882a593Smuzhiyun #define     MSI_ADDR_DEST_MODE_PHYS	(0 << MSI_ADDR_DEST_MODE_SHIFT)
37*4882a593Smuzhiyun #define	    MSI_ADDR_DEST_MODE_LOGIC	(1 << MSI_ADDR_DEST_MODE_SHIFT)
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #define     MSI_ADDR_REDIRECTION_SHIFT	3
40*4882a593Smuzhiyun #define     MSI_ADDR_REDIRECTION_CPU	(0 << MSI_ADDR_REDIRECTION_SHIFT)
41*4882a593Smuzhiyun #define     MSI_ADDR_REDIRECTION_LOWPRI	(1 << MSI_ADDR_REDIRECTION_SHIFT)
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun #endif/* _IA64_MSI_DEF_H */
44