• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* SPDX-License-Identifier: GPL-2.0-only */
2Name(IRQB, ResourceTemplate(){
3	IRQ(Level,ActiveLow,Shared){}
4})
5
6Name(IRQP, ResourceTemplate(){
7	IRQ(Level,ActiveLow,Shared){3, 4, 5, 6, 7, 10, 11, 12, 14, 15}
8})
9
10/* adapted from ma78gm/dsdt.asl */
11#define PCI_INTX_DEV(intx, pinx, uid)			\
12Device(intx) {						\
13	Name(_HID, EISAID("PNP0C0F"))			\
14	Name(_UID, uid)					\
15							\
16	Method(_STA, 0) {				\
17		If (pinx & 0x80) {			\
18			Return(0x09)			\
19		}					\
20		Return(0x0B)				\
21	}						\
22							\
23	Method(_DIS ,0) {				\
24		pinx = 0x80			\
25	}						\
26							\
27	Method(_PRS ,0) {				\
28		Return(IRQP)				\
29	}						\
30							\
31	Method(_CRS ,0) {				\
32		CreateWordField(IRQB, 1, IRQN)		\
33		IRQN = 1 << (pinx & 0x0f)		\
34		Return(IRQB)				\
35	}						\
36							\
37	Method(_SRS, 1) {				\
38		CreateWordField(ARG0, 1, IRQM)		\
39							\
40		/* Use lowest available IRQ */		\
41		FindSetRightBit(IRQM, Local0)		\
42		if (Local0) {				\
43			Local0--			\
44		}					\
45		pinx = Local0			\
46	}						\
47}
48