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