Merge commit 'linus/master' into sched-fixes-for-linus
[linux-2.6] / include / asm-sparc / msi.h
1 /*
2  * msi.h:  Defines specific to the MBus - Sbus - Interface.
3  *
4  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
5  * Copyright (C) 1996 Eddie C. Dost   (ecd@skynet.be)
6  */
7
8 #ifndef _SPARC_MSI_H
9 #define _SPARC_MSI_H
10
11 /*
12  * Locations of MSI Registers.
13  */
14 #define MSI_MBUS_ARBEN  0xe0001008      /* MBus Arbiter Enable register */
15
16 /*
17  * Useful bits in the MSI Registers.
18  */
19 #define MSI_ASYNC_MODE  0x80000000      /* Operate the MSI asynchronously */
20
21
22 static inline void msi_set_sync(void)
23 {
24         __asm__ __volatile__ ("lda [%0] %1, %%g3\n\t"
25                               "andn %%g3, %2, %%g3\n\t"
26                               "sta %%g3, [%0] %1\n\t" : :
27                               "r" (MSI_MBUS_ARBEN),
28                               "i" (ASI_M_CTL), "r" (MSI_ASYNC_MODE) : "g3");
29 }
30
31 #endif /* !(_SPARC_MSI_H) */