NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/47648: NetBSD 6.1_RC1 ACPI interupt routing problem + other ACPI lossage



The following reply was made to PR kern/47648; it has been noted by GNATS.

From: Reinoud Zandijk <reinoud%NetBSD.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
        netbsd-bugs%netbsd.org@localhost, reinoud%NetBSD.org@localhost
Subject: Re: kern/47648: NetBSD 6.1_RC1 ACPI interupt routing problem + other
 ACPI lossage
Date: Sun, 17 Mar 2013 21:40:14 +0100

 --d6Gm4EdcadzBjdND
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Hi Chuck,
 
 On Fri, Mar 15, 2013 at 03:55:03PM +0000, Chuck Silvers wrote:
 >  what is the specific problem with auixp?  what other devices have trouble
 >  and what's the specific problem with those?
 
 The one device that really got screwed up was auixp; it couldn't communicate
 with its codec anymore.
 
 >  does this patch make any difference?
 >  http://mail-index.netbsd.org/port-amd64/2013/02/19/msg001860.html
 
 This patch solves it. The interrupt storm is gone and auixp(9) is working 
again!
 
 >  if you revert all of those files to the netbsd-6-0-RELEASE tag,
 >  does that make the problem go away?  if so, could you turn on
 >  MPVERBOSE and INTRDEBUG and send the output from that with ACPI enabled?
 >  (with the current netbsd-6 versions of those files, not the older versions)
 ...
 >  also, could you provide the output of "acpidump -dt"?
 It works without reverting these files. I've attachd the dmesg and the
 acpidump nevertheless.
 
 With regards,
 Reinoud
 
 
 --d6Gm4EdcadzBjdND
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="dmesg.heethoofdje"
 
 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     2006, 2007, 2008, 2009, 2010, 2011, 2012
     The NetBSD Foundation, Inc.  All rights reserved.
 Copyright (c) 1982, 1986, 1989, 1991, 1993
     The Regents of the University of California.  All rights reserved.
 
 NetBSD 6.1_RC1 (GENERIC) #8: Sun Mar 17 21:30:35 CET 2013
        
reinoud%heethoofdje.13thmonkey.org@localhost:/usr/sources/cvs.netbsd.org/src-6-debug/sys/arch/i386/compile/GENERIC
 total memory = 1918 MB
 avail memory = 1873 MB
 timecounter: Timecounters tick every 10.000 msec
 timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
 To Be Filled By O.E.M. To Be Filled By O.E.M. (To Be Filled By O.E.M.)
 mainbus0 (root)
 mainbus0: scanning 0x9fc00 to 0x9fff0 for MP signature
 mainbus0: scanning 0x9f800 to 0x9fbf0 for MP signature
 mainbus0: scanning 0xf0000 to 0xffff0 for MP signature
 cpu0 at mainbus0: Intel(R) Pentium(R) 4 CPU 3.20GHz, id 0xf33
 cpu0: idle lwp at 0xc2f3dd20, idle sp at 0xda9b9d28
 pci0 at mainbus0 bus 0: configuration mode 1
 pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
 pchb0 at pci0 dev 0 function 0: vendor 0x1002 product 0x5833 (rev. 0x02)
 agp at pchb0 not configured
 ppb0 at pci0 dev 1 function 0: vendor 0x1002 product 0x5838 (rev. 0x00)
 pci1 at ppb0 bus 1
 pci1: i/o space, memory space enabled
 genfb0 at pci1 dev 5 function 0: vendor 0x1002 product 0x5834 (rev. 0x00)
 genfb0: framebuffer at 0xc0000000, size 1280x1024, depth 8, stride 1280
 wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation)
 wsmux1: connecting to wsdisplay0
 radeondrm0 at genfb0: ATI Radeon RS300 9100 IGP
 radeondrm0: Initialized radeon 1.29.0 20080613
 ohci0 at pci0 dev 19 function 0: vendor 0x1002 product 0x4347 (rev. 0x01)
 allocated pic pic0 type level pin 10 level 6 to cpu0 slot 10 idt entry 42
 ohci0: interrupting at irq 10
 ohci0: OHCI version 1.0, legacy support
 usb0 at ohci0: USB revision 1.0
 ohci1 at pci0 dev 19 function 1: vendor 0x1002 product 0x4348 (rev. 0x01)
 allocated pic pic0 type level pin 10 level 6 to cpu0 slot 10 idt entry 42
 ohci1: interrupting at irq 10
 ohci1: OHCI version 1.0, legacy support
 usb1 at ohci1: USB revision 1.0
 ehci0 at pci0 dev 19 function 2: vendor 0x1002 product 0x4345 (rev. 0x01)
 allocated pic pic0 type level pin 10 level 6 to cpu0 slot 10 idt entry 42
 ehci0: interrupting at irq 10
 ehci0: dropped intr workaround enabled
 ehci0: BIOS refuses to give up ownership, using force
 ehci0: EHCI version 1.0
 ehci0: companion controllers, 3 ports each: ohci0 ohci1
 usb2 at ehci0: USB revision 2.0
 piixpm0 at pci0 dev 20 function 0: vendor 0x1002 product 0x4353 (rev. 0x18)
 piixpm0: interrupting at SMI, polling
 iic0 at piixpm0: I2C bus
 ixpide0 at pci0 dev 20 function 1: ATI Technologies IXP IDE Controller (rev. 
0x00)
 ixpide0: bus-master DMA support present
 ixpide0: primary channel configured to compatibility mode
 allocated pic pic0 type edge pin 14 level 6 to cpu0 slot 14 idt entry 46
 ixpide0: primary channel interrupting at irq 14
 atabus0 at ixpide0 channel 0
 ixpide0: secondary channel configured to compatibility mode
 allocated pic pic0 type edge pin 15 level 6 to cpu0 slot 15 idt entry 47
 ixpide0: secondary channel interrupting at irq 15
 atabus1 at ixpide0 channel 1
 pcib0 at pci0 dev 20 function 3: vendor 0x1002 product 0x434c (rev. 0x00)
 ppb1 at pci0 dev 20 function 4: vendor 0x1002 product 0x4342 (rev. 0x00)
 pci2 at ppb1 bus 2
 pci2: i/o space, memory space enabled
 ex0 at pci2 dev 8 function 0: 3Com 3c920B-EMB-WNM Integrated Fast Ethernet 
(rev. 0x40)
 allocated pic pic0 type level pin 3 level 6 to cpu0 slot 3 idt entry 35
 ex0: interrupting at irq 3
 ex0: MAC address 00:11:2f:52:44:7c
 rlphy0 at ex0 phy 1: RTL8201L 10/100 media interface, rev. 1
 rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 fwohci0 at pci2 dev 10 function 0: vendor 0x1106 product 0x3044 (rev. 0x80)
 allocated pic pic0 type level pin 3 level 6 to cpu0 slot 3 idt entry 35
 fwohci0: interrupting at irq 3
 fwohci0: OHCI version 1.10 (ROM=1)
 fwohci0: No. of Isochronous channels is 4.
 fwohci0: EUI64 00:e0:18:00:00:8c:83:d8
 fwohci0: Phy 1394a available S400, 2 ports.
 fwohci0: Link S400, max_rec 2048 bytes.
 ieee1394if0 at fwohci0: IEEE1394 bus
 fwip0 at ieee1394if0: IP over IEEE1394
 fwohci0: Initiate bus reset
 cbb0 at pci2 dev 12 function 0: vendor 0x1524 product 0x1411 (rev. 0x02)
 vendor 0x1524 product 0x0510 (flash memory) at pci2 dev 12 function 1 not 
configured
 re0 at pci2 dev 14 function 0: RealTek 8169/8110 Gigabit Ethernet (rev. 0x10)
 allocated pic pic0 type level pin 5 level 6 to cpu0 slot 5 idt entry 37
 re0: interrupting at irq 5
 re0: Ethernet address 00:e0:4c:1f:12:ec
 re0: using 256 tx descriptors
 rgephy0 at re0 phy 7: RTL8169S/8110S/8211 1000BASE-T media interface, rev. 3
 rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
1000baseT-FDX, auto
 cbb0: cacheline 0x10 lattimer 0x40
 cbb0: bhlc 0x824010
 pci_intr_map: no mapping for pin A (line=ff)
 cbb0: couldn't map interrupt
 cardslot0 at cbb0
 cardbus0 at cardslot0: bus 3
 pcmcia0 at cardslot0
 auixp0 at pci0 dev 20 function 5: vendor 0x1002 product 0x4341 (rev. 0x00)
 allocated pic pic0 type level pin 5 level 7 to cpu0 slot 5 idt entry 37
 auixp0: interrupting at irq 5
 auixp0: soft resetting aclink
 isa0 at pcib0
 lpt0 at isa0 port 0x378-0x37b irq 7
 allocated pic pic0 type edge pin 7 level 6 to cpu0 slot 7 idt entry 39
 com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
 allocated pic pic0 type edge pin 4 level 8 to cpu0 slot 4 idt entry 36
 pckbc0 at isa0 port 0x60-0x64
 pckbd0 at pckbc0 (kbd slot)
 allocated pic pic0 type edge pin 1 level 6 to cpu0 slot 1 idt entry 33
 pckbc0: using irq 1 for kbd slot
 wskbd0 at pckbd0: console keyboard, using wsdisplay0
 attimer0 at isa0 port 0x40-0x43
 pcppi0 at isa0 port 0x61
 midi0 at pcppi0: PC speaker
 sysbeep0 at pcppi0
 npx0 at isa0 port 0xf0-0xff
 npx0: reported by CPUID; using exception 16
 attimer0: attached to pcppi0
 fwohci0: BUS reset
 fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
 ieee1394if0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me)
 ieee1394if0: bus manager 0
 timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
 allocated pic pic0 type level pin 0 level 7 to cpu0 slot 0 idt entry 32
 timecounter: Timecounter "TSC" frequency 3192634080 Hz quality 3000
 auixp0: ac97: Analog Devices AD1888 codec; headphone, 20 bit DAC, no 3D stereo
 auixp0: ac97: ext id 0x3c7<AMAP,LDAC,SDAC,CDAC,SPDIF,DRA,VRA>
 auixp0: codec spdif support detected but disabled for now
 audio0 at auixp0: full duplex, playback, capture, mmap, independent
 atapibus0 at atabus0: 2 targets
 uhub0 at usb0: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
 uhub0: 3 ports with 3 removable, self powered
 uhub1 at usb1: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
 uhub1: 3 ports with 3 removable, self powered
 uhub2 at usb2: vendor 0x1002 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
 uhub2: 6 ports with 6 removable, self powered
 cd0 at atapibus0 drive 0: <ASUS    CRW-5232A4, , 1.00> cdrom removable
 cd0: 32-bit data port
 cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
 cd0(ixpide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
 umass0 at uhub2 port 2 configuration 1 interface 0
 umass0: Sony Sony Digital Book Reader, rev 2.00/2.26, addr 2
 umass0: using SCSI over Bulk-Only
 scsibus0 at umass0: 2 targets, 3 luns per target
 sd0 at scsibus0 target 0 lun 0: <Sony, PRS-T2, 2044> disk removable
 sd0: drive offline
 sd0: unable to open device, error = 19
 sd1 at scsibus0 target 0 lun 1: <Sony, PRS-T2  SD, 2044> disk removable
 sd1: drive offline
 sd1: unable to open device, error = 19
 sd2 at scsibus0 target 0 lun 2: <Sony, PRS-T2  Setup, 2044> disk removable
 sd2: drive offline
 sd2: unable to open device, error = 19
 wd0 at atabus1 drive 0
 wd0: <WDC WD5000AACS-00ZUB0>
 wd0: drive supports 16-sector PIO transfers, LBA48 addressing
 wd0: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
 wd0: 32-bit data port
 wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
 wd0(ixpide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
 Kernelized RAIDframe activated
 boot device: wd0
 root on wd0a dumps on wd0b
 root file system type: ffs
 uhidev0 at uhub1 port 2 configuration 1 interface 0
 uhidev0: Unique ICs Unique ICs mouse, rev 1.00/0.01, addr 2, iclass 3/1
 ums0 at uhidev0: 5 buttons and Z dir
 wsmouse0 at ums0 mux 0
 tap0: Ethernet address f2:0b:a4:12:c9:02
 cprng sysctl: WARNING pseudorandom rekeying.
 wsdisplay0: screen 1 added (default, vt100 emulation)
 wsdisplay0: screen 2 added (default, vt100 emulation)
 wsdisplay0: screen 3 added (default, vt100 emulation)
 wsdisplay0: screen 4 added (default, vt100 emulation)
 
 --d6Gm4EdcadzBjdND
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="acpidump-dt.heethoofdje"
 
 /*
   RSD PTR: OEM=ACPIAM, ACPI_Rev=2.0x (2)
        XSDT=0x77f40100, length=33, cksum=115
  */
 /*
   XSDT: Length=60, Revision=1, Checksum=121,
        OEMID=A M I, OEM Table ID=OEMXSDT, OEM Revision=0x6000529,
        Creator ID=MSFT, Creator Revision=0x97
        Entries={ 0x77f40200, 0x77f40300, 0x77f50040 }
  */
 /*
   FACP: Length=129, Revision=1, Checksum=197,
        OEMID=A M I, OEM Table ID=OEMFACP, OEM Revision=0x6000529,
        Creator ID=MSFT, Creator Revision=0x97
        FACS=0x77f50000, DSDT=0x77f40360
        INT_MODEL=APIC
        Preferred_PM_Profile=Unspecified (0)
        SCI_INT=9
        SMI_CMD=0xb0, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x0
        PSTATE_CNT=0xe2
        PM1a_EVT_BLK=0x800-0x803
        PM1a_CNT_BLK=0xf40-0xf41
        PM2_CNT_BLK=0x850-0x850
        PM_TMR_BLK=0x808-0x80b
        GPE0_BLK=0x820-0x827
        P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
        FLUSH_SIZE=1024, FLUSH_STRIDE=16
        DUTY_OFFSET=0, DUTY_WIDTH=8
        DAY_ALRM=13, MON_ALRM=0, CENTURY=50
        IAPC_BOOT_ARCH={LEGACY_DEVICES,8042}
        
Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,32BIT_TIMER,HEADLESS}
        X_FACS=0x77f50000, X_DSDT=0x77f40360
        X_PM1a_EVT_BLK=0x800:0[32] (IO)
        X_PM1a_CNT_BLK=0xf40:0[16] (IO)
        X_PM_TMR_BLK=0x808:0[32] (IO)
        X_GPE0_BLK=0x820:0[32] (IO)
        X_GPE1_BLK=0x830:0[32] (IO)
  */
 /*
   FACS:        Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
        Global_Lock=
        Flags=
        Version=1
  */
 /*
   DSDT: Length=11128, Revision=1, Checksum=78,
        OEMID=A0032, OEM Table ID=A0032000, OEM Revision=0x0,
        Creator ID=INTL, Creator Revision=0x20030522
  */
 /*
   APIC: Length=92, Revision=1, Checksum=35,
        OEMID=A M I, OEM Table ID=OEMAPIC, OEM Revision=0x6000529,
        Creator ID=MSFT, Creator Revision=0x97
        Local APIC ADDR=0xfee00000
        Flags={PC-AT}
 
        Type=Local APIC
        ACPI CPU=1
        Flags={ENABLED}
        APIC ID=0
 
        Type=Local APIC
        ACPI CPU=2
        Flags={ENABLED}
        APIC ID=1
 
        Type=IO APIC
        APIC ID=2
        INT BASE=0
        ADDR=0x00000000fec00000
 
        Type=INT Override
        BUS=0
        IRQ=0
        INTR=2
        Flags={Polarity=conforming, Trigger=conforming}
 
        Type=INT Override
        BUS=0
        IRQ=9
        INTR=21
        Flags={Polarity=active-lo, Trigger=level}
  */
 /*
   OEMB: Length=67, Revision=1, Checksum=112,
        OEMID=A M I, OEM Table ID=OEMBIOS, OEM Revision=0x6000529,
        Creator ID=MSFT, Creator Revision=0x97
 
        Data={
                 4f 45 4d 42 43 00 00 00    01 70 41 20 4d 20 49 20
                 4f 45 4d 42 49 4f 53 20    29 05 00 06 4d 53 46 54
                 97 00 00 00 0d 00 04 00    00 00 78 00 00 f8 ff 00
                 00 00 00 00 00 00 00 00    00 00 78 00 00 00 88 83
                 50 f5 77
        }
  */
 /*
  * Intel ACPI Component Architecture
  * AML Disassembler version 20110623-32 [23 Jun 2011]
  * Copyright (c) 2000 - 2011 Intel Corporation
  * 
  * Disassembly of /tmp/acpidump.00321a, Sun Mar 17 18:58:00 2013
  *
  * Original Table Header:
  *     Signature        "DSDT"
  *     Length           0x00002B78 (11128)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
  *     Checksum         0x4E
  *     OEM ID           "A0032"
  *     OEM Table ID     "A0032000"
  *     OEM Revision     0x00000000 (0)
  *     Compiler ID      "INTL"
  *     Compiler Version 0x20030522 (537068834)
  */
 
 DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "A0032", "A0032000", 
0x00000000)
 {
     OperationRegion (BIOS, SystemMemory, 0x77F50064, 0xFF)
     Field (BIOS, ByteAcc, NoLock, Preserve)
     {
         SS1,    1, 
         SS2,    1, 
         SS3,    1, 
         SS4,    1, 
                 Offset (0x01), 
         IOST,   16, 
         TOPM,   32, 
         ROMS,   32, 
         MG1B,   32, 
         MG1L,   32, 
         MG2B,   32, 
         MG2L,   32, 
         ACPR,   32
     }
 
     Name (PMBS, 0x0800)
     Name (PMLN, 0x80)
     Name (GPBS, 0x00)
     Name (GPLN, 0x00)
     Name (SMBS, 0x0A00)
     Name (SMBL, 0x00)
     Name (SPIO, 0x2E)
     Name (APCB, 0xFEC00000)
     Name (APCL, 0x1000)
     Name (IO1B, 0x0280)
     Name (IO1L, 0x10)
     Method (RRIO, 4, NotSerialized)
     {
         Store ("RRIO", Debug)
     }
 
     Method (RDMA, 3, NotSerialized)
     {
         Store ("rDMA", Debug)
     }
 
     Name (PICM, 0x00)
     Method (_PIC, 1, NotSerialized)
     {
         If (Arg0)
         {
             Store (0x00, \_SB.PCI0.SBRG.EINT)
             Store (0x00, \_SB.PCI0.SBRG.FINT)
         }
         Else
         {
         }
 
         Store (Arg0, PICM)
     }
 
     Name (OSVR, Ones)
     Method (OSFL, 0, NotSerialized)
     {
         If (LNotEqual (OSVR, Ones))
         {
             Return (OSVR)
         }
 
         Store (0xAC, DBG8)
         Store (0x01, OSVR)
         If (MCTH (\_OS, "Microsoft Windows NT"))
         {
             Store (0x00, OSVR)
         }
 
         Return (OSVR)
     }
 
     Method (MCTH, 2, NotSerialized)
     {
         If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
         {
             Return (Zero)
         }
 
         Add (SizeOf (Arg0), 0x01, Local0)
         Name (BUF0, Buffer (Local0) {})
         Name (BUF1, Buffer (Local0) {})
         Store (Arg0, BUF0)
         Store (Arg1, BUF1)
         While (Local0)
         {
             Decrement (Local0)
             If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
                 BUF1, Local0))))
             {
                 Return (Zero)
             }
         }
 
         Return (One)
     }
 
     Method (GPRW, 2, NotSerialized)
     {
         Name (PRWP, Package (0x02)
         {
             0x00, 
             0x00
         })
         Store (Arg0, Index (PRWP, 0x00))
         Store (Arg1, Index (PRWP, 0x01))
         Store (0x00, Local0)
         Or (Local0, ShiftLeft (SS1, 0x01), Local0)
         Or (Local0, ShiftLeft (SS2, 0x02), Local0)
         Or (Local0, ShiftLeft (SS3, 0x03), Local0)
         Or (Local0, ShiftLeft (SS4, 0x04), Local0)
         If (And (ShiftLeft (0x01, Arg1), Local0)) {}
         Else
         {
             ShiftRight (Local0, 0x01, Local0)
             If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
             {
                 FindSetLeftBit (Local0, Index (PRWP, 0x01))
             }
             Else
             {
                 FindSetRightBit (Local0, Index (PRWP, 0x01))
             }
         }
 
         Return (PRWP)
     }
 
     Name (WAKP, Package (0x02)
     {
         0x00, 
         0x00
     })
     OperationRegion (DLY0, SystemIO, 0xE1, 0x01)
     Field (DLY0, ByteAcc, NoLock, Preserve)
     {
         DELY,   8
     }
 
     OperationRegion (DEB0, SystemIO, 0x1080, 0x02)
     Field (DEB0, WordAcc, NoLock, Preserve)
     {
         DBG8,   16
     }
 
     Scope (\_PR)
     {
         Processor (CPU1, 0x01, 0x00000000, 0x00) {}
         Processor (CPU2, 0x02, 0x00000000, 0x00) {}
     }
 
     Scope (\_SB)
     {
         Name (PR00, Package (0x03)
         {
             Package (0x04)
             {
                 0x0014FFFF, 
                 0x00, 
                 LNKA, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0014FFFF, 
                 0x01, 
                 LNKB, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0013FFFF, 
                 0x00, 
                 LNKD, 
                 0x00
             }
         })
         Name (AR00, Package (0x03)
         {
             Package (0x04)
             {
                 0x0014FFFF, 
                 0x00, 
                 0x00, 
                 0x10
             }, 
 
             Package (0x04)
             {
                 0x0014FFFF, 
                 0x01, 
                 0x00, 
                 0x11
             }, 
 
             Package (0x04)
             {
                 0x0013FFFF, 
                 0x00, 
                 0x00, 
                 0x13
             }
         })
         Name (PR01, Package (0x02)
         {
             Package (0x04)
             {
                 0x0005FFFF, 
                 0x00, 
                 LNKA, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0005FFFF, 
                 0x01, 
                 LNKB, 
                 0x00
             }
         })
         Name (AR01, Package (0x02)
         {
             Package (0x04)
             {
                 0x0005FFFF, 
                 0x00, 
                 0x00, 
                 0x10
             }, 
 
             Package (0x04)
             {
                 0x0005FFFF, 
                 0x01, 
                 0x00, 
                 0x11
             }
         })
         Name (PR02, Package (0x0F)
         {
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x00, 
                 LNKC, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x01, 
                 LNKD, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x02, 
                 LNKA, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x03, 
                 LNKB, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x00, 
                 LNKA, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x01, 
                 LNKB, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x02, 
                 LNKC, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x03, 
                 LNKD, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000AFFFF, 
                 0x00, 
                 LNKC, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000CFFFF, 
                 0x00, 
                 LNKA, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000CFFFF, 
                 0x01, 
                 LNKD, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x00, 
                 LNKB, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x01, 
                 LNKA, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x02, 
                 LNKD, 
                 0x00
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x03, 
                 LNKC, 
                 0x00
             }
         })
         Name (AR02, Package (0x0F)
         {
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x00, 
                 0x00, 
                 0x12
             }, 
 
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x01, 
                 0x00, 
                 0x13
             }, 
 
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x02, 
                 0x00, 
                 0x10
             }, 
 
             Package (0x04)
             {
                 0x0008FFFF, 
                 0x03, 
                 0x00, 
                 0x11
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x00, 
                 0x00, 
                 0x10
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x01, 
                 0x00, 
                 0x11
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x02, 
                 0x00, 
                 0x12
             }, 
 
             Package (0x04)
             {
                 0x0009FFFF, 
                 0x03, 
                 0x00, 
                 0x13
             }, 
 
             Package (0x04)
             {
                 0x000AFFFF, 
                 0x00, 
                 0x00, 
                 0x12
             }, 
 
             Package (0x04)
             {
                 0x000CFFFF, 
                 0x00, 
                 0x00, 
                 0x10
             }, 
 
             Package (0x04)
             {
                 0x000CFFFF, 
                 0x01, 
                 0x00, 
                 0x13
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x00, 
                 0x00, 
                 0x11
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x01, 
                 0x00, 
                 0x10
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x02, 
                 0x00, 
                 0x11
             }, 
 
             Package (0x04)
             {
                 0x000EFFFF, 
                 0x03, 
                 0x00, 
                 0x12
             }
         })
         Name (PRSA, ResourceTemplate ()
         {
             IRQ (Level, ActiveLow, Shared, )
                 {3,4,5,7,10,11,12,14,15}
         })
         Alias (PRSA, PRSB)
         Alias (PRSA, PRSC)
         Alias (PRSA, PRSD)
         Device (PCI0)
         {
             Name (_HID, EisaId ("PNP0A03"))
             Name (_ADR, 0x00)
             Name (_BBN, 0x00)
             Name (_UID, 0x00)
             Method (_PRT, 0, NotSerialized)
             {
                 If (PICM)
                 {
                     Return (AR00)
                 }
 
                 Return (PR00)
             }
 
             Device (P0P1)
             {
                 Name (_ADR, 0x00010000)
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (PICM)
                     {
                         Return (AR01)
                     }
 
                     Return (PR01)
                 }
             }
 
             Device (SBSM)
             {
                 Name (_ADR, 0x00140000)
                 OperationRegion (SBIO, PCI_Config, 0x80, 0x30)
                 Field (SBIO, AnyAcc, NoLock, Preserve)
                 {
                     SBGP,   8, 
                     SBP0,   1, 
                     SBP1,   1, 
                     SBP2,   1, 
                     SBP3,   1, 
                             Offset (0x28), 
                     SEC0,   1, 
                     SEC1,   1, 
                     SEC2,   1, 
                     SEC3,   1, 
                     SEC4,   1, 
                     SEC5,   1, 
                             Offset (0x29), 
                     SEO0,   1, 
                     SEO1,   1, 
                     SEO2,   1, 
                     SEO3,   1, 
                     SEO4,   1, 
                     SEO5,   1, 
                             Offset (0x2A), 
                     SEI0,   1, 
                     SEI1,   1, 
                     SEI2,   1, 
                     SEI3,   1, 
                     SEI4,   1, 
                     SEI5,   1
                 }
             }
 
             Device (SBRG)
             {
                 Name (_ADR, 0x00140003)
                 OperationRegion (SBLP, PCI_Config, 0x44, 0x04)
                 Field (SBLP, DWordAcc, NoLock, Preserve)
                 {
                     LPCD,   32
                 }
 
                 OperationRegion (PINT, SystemIO, 0x0C00, 0x02)
                 Field (PINT, ByteAcc, NoLock, Preserve)
                 {
                     IIDX,   8, 
                     IDAT,   8
                 }
 
                 IndexField (IIDX, IDAT, ByteAcc, NoLock, Preserve)
                 {
                     AINT,   8, 
                     BINT,   8, 
                     CINT,   8, 
                     DINT,   8, 
                     EINT,   8, 
                     FINT,   8
                 }
 
                 OperationRegion (CMOS, SystemIO, 0x72, 0x02)
                 Field (CMOS, ByteAcc, NoLock, Preserve)
                 {
                     CIDX,   8, 
                     CDAT,   8
                 }
 
                 IndexField (CIDX, CDAT, ByteAcc, NoLock, Preserve)
                 {
                             Offset (0x90), 
                     WAKT,   8, 
                     SLPT,   4, 
                     KBFG,   1, 
                     MSFG,   1
                 }
 
                 OperationRegion (PMBL, SystemIO, 0x0CD6, 0x02)
                 Field (PMBL, ByteAcc, NoLock, Preserve)
                 {
                     PIDX,   8, 
                     PDAT,   8
                 }
 
                 IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
                 {
                             Offset (0x0D), 
                         ,   6, 
                     PLED,   2, 
                             Offset (0x14), 
                     TP0P,   16, 
                     TP1P,   16, 
                     TP2P,   16, 
                     TP3P,   16, 
                         ,   4, 
                     TP3E,   1, 
                     TP2E,   1, 
                     TP1E,   1, 
                     TP0E,   1, 
                         ,   4, 
                     TP3S,   1, 
                     TP2S,   1, 
                     TP1S,   1, 
                     TP0S,   1, 
                             Offset (0x22), 
                     PMCB,   16, 
                             Offset (0x36), 
                     GE0T,   1, 
                     GE1T,   1, 
                     GE2T,   1, 
                     GE3T,   1, 
                     GE4T,   1, 
                     GE5T,   1, 
                     GE6T,   1, 
                     GE7T,   1, 
                             Offset (0x39), 
                     GE0S,   1, 
                     GE1S,   1, 
                     GE2S,   1, 
                     GE3S,   1, 
                     GE4S,   1, 
                     GE5S,   1, 
                     GE6S,   1, 
                     GE7S,   1, 
                             Offset (0x50), 
                     C4EN,   1, 
                             Offset (0x60), 
                     SLED,   1
                 }
 
                 Method (_INI, 0, NotSerialized)
                 {
                     C4C3 ()
                 }
 
                 Method (C4C3, 0, NotSerialized)
                 {
                 }
 
                 Scope (\_SB)
                 {
                     OperationRegion (GPMC, SystemIO, 0x0C52, 0x01)
                     Field (GPMC, ByteAcc, NoLock, Preserve)
                     {
                         GPM0,   1, 
                         GPM1,   1, 
                         GPM2,   1, 
                         GPM3,   1, 
                         GPM4,   1, 
                         GPM5,   1, 
                         GPM6,   1, 
                         GPM7,   1
                     }
                 }
 
                 Device (PIC)
                 {
                     Name (_HID, EisaId ("PNP0000"))
                     Name (_CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0020,             // Range Minimum
                             0x0020,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00A0,             // Range Minimum
                             0x00A0,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IRQNoFlags ()
                             {2}
                     })
                 }
 
                 Device (DMAD)
                 {
                     Name (_HID, EisaId ("PNP0200"))
                     Name (_CRS, ResourceTemplate ()
                     {
                         DMA (Compatibility, BusMaster, Transfer8, )
                             {4}
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x00,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0081,             // Range Minimum
                             0x0081,             // Range Maximum
                             0x00,               // Alignment
                             0x03,               // Length
                             )
                         IO (Decode16,
                             0x0087,             // Range Minimum
                             0x0087,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0089,             // Range Minimum
                             0x0089,             // Range Maximum
                             0x00,               // Alignment
                             0x03,               // Length
                             )
                         IO (Decode16,
                             0x008F,             // Range Minimum
                             0x008F,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x00C0,             // Range Minimum
                             0x00C0,             // Range Maximum
                             0x00,               // Alignment
                             0x20,               // Length
                             )
                     })
                 }
 
                 Device (TMR)
                 {
                     Name (_HID, EisaId ("PNP0100"))
                     Name (_CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0040,             // Range Minimum
                             0x0040,             // Range Maximum
                             0x00,               // Alignment
                             0x04,               // Length
                             )
                         IRQNoFlags ()
                             {0}
                     })
                 }
 
                 Device (RTC0)
                 {
                     Name (_HID, EisaId ("PNP0B00"))
                     Name (_CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0070,             // Range Minimum
                             0x0070,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IRQNoFlags ()
                             {8}
                     })
                 }
 
                 Device (SPKR)
                 {
                     Name (_HID, EisaId ("PNP0800"))
                     Name (_CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0061,             // Range Minimum
                             0x0061,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                     })
                 }
 
                 Device (COPR)
                 {
                     Name (_HID, EisaId ("PNP0C04"))
                     Name (_CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x00F0,             // Range Minimum
                             0x00F0,             // Range Maximum
                             0x00,               // Alignment
                             0x10,               // Length
                             )
                         IRQNoFlags ()
                             {13}
                     })
                 }
 
                 Device (FDC)
                 {
                     Name (_HID, EisaId ("PNP0700"))
                     Name (_FDE, Package (0x05)
                     {
                         0x01, 
                         0x00, 
                         0x02, 
                         0x02, 
                         0x02
                     })
                     Method (_STA, 0, NotSerialized)
                     {
                         Return (DSTA (0x03))
                     }
 
                     Method (_DIS, 0, NotSerialized)
                     {
                         DCNT (0x03, 0x00)
                     }
 
                     Method (_CRS, 0, NotSerialized)
                     {
                         DCRS (0x03)
                         Store (IRQM, IRQE)
                         Store (DMAM, DMAE)
                         Store (IO11, IO21)
                         Store (IO12, IO22)
                         Store (0x06, LEN2)
                         Add (IO21, 0x07, IO31)
                         Store (IO31, IO32)
                         Store (0x01, LEN3)
                         Return (CRS2)
                     }
 
                     Method (_SRS, 1, NotSerialized)
                     {
                         DSRS (Arg0, 0x03)
                     }
 
                     Name (_PRS, ResourceTemplate ()
                     {
                         StartDependentFn (0x00, 0x00)
                         {
                             IRQNoFlags ()
                                 {6}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {2}
                             IO (Decode16,
                                 0x03F0,             // Range Minimum
                                 0x03F0,             // Range Maximum
                                 0x01,               // Alignment
                                 0x06,               // Length
                                 )
                             IO (Decode16,
                                 0x03F7,             // Range Minimum
                                 0x03F7,             // Range Maximum
                                 0x01,               // Alignment
                                 0x01,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,5,6,7,10,11,12}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IO (Decode16,
                                 0x03F0,             // Range Minimum
                                 0x03F0,             // Range Maximum
                                 0x01,               // Alignment
                                 0x06,               // Length
                                 )
                             IO (Decode16,
                                 0x03F7,             // Range Minimum
                                 0x03F7,             // Range Maximum
                                 0x01,               // Alignment
                                 0x01,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,5,6,7,10,11,12}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IO (Decode16,
                                 0x0370,             // Range Minimum
                                 0x0370,             // Range Maximum
                                 0x01,               // Alignment
                                 0x06,               // Length
                                 )
                             IO (Decode16,
                                 0x0377,             // Range Minimum
                                 0x0377,             // Range Maximum
                                 0x01,               // Alignment
                                 0x01,               // Length
                                 )
                         }
                         EndDependentFn ()
                     })
                 }
 
                 Device (LPTE)
                 {
                     Method (_HID, 0, NotSerialized)
                     {
                         If (LPTM (0x02))
                         {
                             Return (0x0104D041)
                         }
                         Else
                         {
                             Return (0x0004D041)
                         }
                     }
 
                     Method (_STA, 0, NotSerialized)
                     {
                         Return (DSTA (0x02))
                     }
 
                     Method (_DIS, 0, NotSerialized)
                     {
                         DCNT (0x02, 0x00)
                     }
 
                     Method (_CRS, 0, NotSerialized)
                     {
                         DCRS (0x02)
                         If (LPTM (0x02))
                         {
                             Store (IRQM, IRQE)
                             Store (DMAM, DMAE)
                             Store (IO11, IO21)
                             Store (IO12, IO22)
                             Store (LEN1, LEN2)
                             Add (IO21, 0x0400, IO31)
                             Store (IO31, IO32)
                             Store (LEN2, LEN3)
                             Return (CRS2)
                         }
                         Else
                         {
                             Return (CRS1)
                         }
                     }
 
                     Method (_SRS, 1, NotSerialized)
                     {
                         DSRS (Arg0, 0x02)
                     }
 
                     Method (_PRS, 0, NotSerialized)
                     {
                         If (LPTM (0x02))
                         {
                             Return (EPPR)
                         }
                         Else
                         {
                             Return (LPPR)
                         }
                     }
 
                     Name (LPPR, ResourceTemplate ()
                     {
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,5,6,7,10,11,12}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,5,6,7,10,11,12}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,5,6,7,10,11,12}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x01,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {}
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x01,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         EndDependentFn ()
                     })
                     Name (EPPR, ResourceTemplate ()
                     {
                         IRQNoFlags ()
                             {3,4,5,6,7,10,11,12}
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0778,             // Range Minimum
                                 0x0778,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0678,             // Range Minimum
                                 0x0678,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x01,               // Alignment
                                 0x04,               // Length
                                 )
                             IO (Decode16,
                                 0x07BC,             // Range Minimum
                                 0x07BC,             // Range Maximum
                                 0x01,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0778,             // Range Minimum
                                 0x0778,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0678,             // Range Minimum
                                 0x0678,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x01,               // Alignment
                                 0x04,               // Length
                                 )
                             IO (Decode16,
                                 0x07BC,             // Range Minimum
                                 0x07BC,             // Range Maximum
                                 0x01,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         EndDependentFn ()
                     })
                 }
 
                 Device (SIOR)
                 {
                     Name (_HID, EisaId ("PNP0C02"))
                     Method (_UID, 0, NotSerialized)
                     {
                         Return (SPIO)
                     }
 
                     Name (CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x00,               // Alignment
                             0x00,               // Length
                             _Y00)
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x00,               // Alignment
                             0x00,               // Length
                             _Y01)
                         IO (Decode16,
                             0x0260,             // Range Minimum
                             0x0260,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IO (Decode16,
                             0x0310,             // Range Minimum
                             0x0310,             // Range Maximum
                             0x01,               // Alignment
                             0x02,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         If (LAnd (LNotEqual (SPIO, 0x03F0), LGreater (SPIO, 
0xF0)))
                         {
                             CreateWordField (CRS, 
\_SB.PCI0.SBRG.SIOR._Y00._MIN, GP10)
                             CreateWordField (CRS, 
\_SB.PCI0.SBRG.SIOR._Y00._MAX, GP11)
                             CreateByteField (CRS, 
\_SB.PCI0.SBRG.SIOR._Y00._LEN, GPL1)
                             Store (SPIO, GP10)
                             Store (SPIO, GP11)
                             Store (0x02, GPL1)
                         }
 
                         If (IO1B)
                         {
                             CreateWordField (CRS, 
\_SB.PCI0.SBRG.SIOR._Y01._MIN, GP20)
                             CreateWordField (CRS, 
\_SB.PCI0.SBRG.SIOR._Y01._MAX, GP21)
                             CreateByteField (CRS, 
\_SB.PCI0.SBRG.SIOR._Y01._LEN, GPL2)
                             Store (IO1B, GP20)
                             Store (IO1B, GP21)
                             Store (IO1L, GPL2)
                         }
 
                         Return (CRS)
                     }
                 }
 
                 Name (DCAT, Package (0x15)
                 {
                     0x01, 
                     0x02, 
                     0x03, 
                     0x00, 
                     0xFF, 
                     0x08, 
                     0xFF, 
                     0xFF, 
                     0x09, 
                     0xFF, 
                     0x05, 
                     0x04, 
                     0xFF, 
                     0xFF, 
                     0xFF, 
                     0xFF, 
                     0x07, 
                     0xFF, 
                     0xFF, 
                     0xFF, 
                     0xFF
                 })
                 Name (IKEY, Package (0x02)
                 {
                     Package (0x04)
                     {
                         0x87, 
                         0x01, 
                         0x55, 
                         0x55
                     }, 
 
                     Package (0x04)
                     {
                         0x87, 
                         0x01, 
                         0x55, 
                         0xAA
                     }
                 })
                 Name (UR1F, 0x01)
                 Method (ENFG, 1, NotSerialized)
                 {
                     Store (0x87, INDX)
                     Store (0x01, INDX)
                     Store (0x55, INDX)
                     If (LEqual (SPIO, 0x2E))
                     {
                         Store (0x55, INDX)
                     }
                     Else
                     {
                         Store (0xAA, INDX)
                     }
 
                     Store (Arg0, LDN)
                 }
 
                 Method (EXFG, 0, NotSerialized)
                 {
                     Store (0x02, INDX)
                     Store (0x02, DATA)
                 }
 
                 Method (LPTM, 1, NotSerialized)
                 {
                     ENFG (CGLD (Arg0))
                     And (OPT0, 0x02, Local0)
                     EXFG ()
                     Return (Local0)
                 }
 
                 Method (UHID, 1, NotSerialized)
                 {
                     If (LEqual (Arg0, 0x01))
                     {
                         ENFG (CGLD (Arg0))
                         And (OPT0, 0x70, Local0)
                         EXFG ()
                         If (Local0)
                         {
                             Return (0x1005D041)
                         }
                     }
 
                     Return (0x0105D041)
                 }
 
                 Method (SIOS, 1, NotSerialized)
                 {
                     Store ("SIOS", Debug)
                     Store (0x00, GP10)
                     If (LLess (Arg0, 0x05))
                     {
                         ENFG (0x04)
                         Store (0x01, ACTR)
                         EXFG ()
                         ENFG (0x07)
                         And (OPF9, 0xFE, OPF9)
                         And (OPC0, 0xFE, OPC0)
                         And (OP29, 0xEF, OP29)
                         EXFG ()
                     }
                     Else
                     {
                         ENFG (0x07)
                         Or (OPF9, 0x01, OPF9)
                         EXFG ()
                     }
                 }
 
                 Method (SIOW, 1, NotSerialized)
                 {
                     Store (0x01, GP10)
                     Store ("SIOW", Debug)
                     ENFG (0x04)
                     Store (0x00, OPT0)
                     Store (0xFF, OPT1)
                     EXFG ()
                     ENFG (0x07)
                     Or (OPC0, 0x01, OPC0)
                     EXFG ()
                     ENFG (0x05)
                     Or (ACTR, 0x01, ACTR)
                     EXFG ()
                     ENFG (0x06)
                     Or (ACTR, 0x01, ACTR)
                     EXFG ()
                 }
 
                 Method (SIOH, 0, NotSerialized)
                 {
                 }
 
                 OperationRegion (IOID, SystemIO, SPIO, 0x02)
                 Field (IOID, ByteAcc, NoLock, Preserve)
                 {
                     INDX,   8, 
                     DATA,   8
                 }
 
                 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                 {
                             Offset (0x07), 
                     LDN,    8, 
                             Offset (0x29), 
                     OP29,   8, 
                             Offset (0x30), 
                     ACTR,   8, 
                             Offset (0x60), 
                     IOAH,   8, 
                     IOAL,   8, 
                     IOH2,   8, 
                     IOL2,   8, 
                             Offset (0x70), 
                     INTR,   8, 
                             Offset (0x74), 
                     DMCH,   8, 
                             Offset (0xC0), 
                     OPC0,   8, 
                     OPC1,   8, 
                     OPC2,   8, 
                     OPC3,   8, 
                             Offset (0xF0), 
                     OPT0,   8, 
                     OPT1,   8, 
                     OPT2,   8, 
                     OPT3,   8, 
                     OPT4,   8, 
                             Offset (0xF8), 
                     OPF8,   8, 
                     OPF9,   8, 
                     OPFA,   8, 
                     OPFB,   8
                 }
 
                 Method (CGLD, 1, NotSerialized)
                 {
                     Return (DerefOf (Index (DCAT, Arg0)))
                 }
 
                 Method (DSTA, 1, NotSerialized)
                 {
                     ENFG (CGLD (Arg0))
                     Store (ACTR, Local0)
                     EXFG ()
                     If (LEqual (Local0, 0xFF))
                     {
                         Return (0x00)
                     }
 
                     And (Local0, 0x01, Local0)
                     Or (IOST, ShiftLeft (Local0, Arg0), IOST)
                     If (Local0)
                     {
                         Return (0x0F)
                     }
                     Else
                     {
                         If (And (ShiftLeft (0x01, Arg0), IOST))
                         {
                             Return (0x0D)
                         }
                         Else
                         {
                             Return (0x00)
                         }
                     }
                 }
 
                 Method (DCNT, 2, NotSerialized)
                 {
                     ENFG (CGLD (Arg0))
                     ShiftLeft (IOAH, 0x08, Local1)
                     Or (IOAL, Local1, Local1)
                     RRIO (Arg0, Arg1, Local1, 0x08)
                     If (LAnd (LLess (DMCH, 0x04), LNotEqual (And (DMCH, 0x03, 
                         Local1), 0x00)))
                     {
                         RDMA (Arg0, Arg1, Increment (Local1))
                     }
 
                     Store (Arg1, ACTR)
                     EXFG ()
                 }
 
                 Name (CRS1, ResourceTemplate ()
                 {
                     IRQNoFlags (_Y02)
                         {}
                     DMA (Compatibility, NotBusMaster, Transfer8, _Y03)
                         {}
                     IO (Decode16,
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x01,               // Alignment
                         0x00,               // Length
                         _Y04)
                 })
                 CreateWordField (CRS1, \_SB.PCI0.SBRG._Y02._INT, IRQM)
                 CreateByteField (CRS1, \_SB.PCI0.SBRG._Y03._DMA, DMAM)
                 CreateWordField (CRS1, \_SB.PCI0.SBRG._Y04._MIN, IO11)
                 CreateWordField (CRS1, \_SB.PCI0.SBRG._Y04._MAX, IO12)
                 CreateByteField (CRS1, \_SB.PCI0.SBRG._Y04._LEN, LEN1)
                 Name (CRS2, ResourceTemplate ()
                 {
                     IRQNoFlags (_Y05)
                         {6}
                     DMA (Compatibility, NotBusMaster, Transfer8, _Y06)
                         {2}
                     IO (Decode16,
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x01,               // Alignment
                         0x00,               // Length
                         _Y07)
                     IO (Decode16,
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x01,               // Alignment
                         0x00,               // Length
                         _Y08)
                 })
                 CreateWordField (CRS2, \_SB.PCI0.SBRG._Y05._INT, IRQE)
                 CreateByteField (CRS2, \_SB.PCI0.SBRG._Y06._DMA, DMAE)
                 CreateWordField (CRS2, \_SB.PCI0.SBRG._Y07._MIN, IO21)
                 CreateWordField (CRS2, \_SB.PCI0.SBRG._Y07._MAX, IO22)
                 CreateByteField (CRS2, \_SB.PCI0.SBRG._Y07._LEN, LEN2)
                 CreateWordField (CRS2, \_SB.PCI0.SBRG._Y08._MIN, IO31)
                 CreateWordField (CRS2, \_SB.PCI0.SBRG._Y08._MAX, IO32)
                 CreateByteField (CRS2, \_SB.PCI0.SBRG._Y08._LEN, LEN3)
                 Method (DCRS, 1, NotSerialized)
                 {
                     ENFG (CGLD (Arg0))
                     ShiftLeft (IOAH, 0x08, IO11)
                     Or (IOAL, IO11, IO11)
                     Store (IO11, IO12)
                     Subtract (FindSetRightBit (IO11), 0x01, Local0)
                     ShiftLeft (0x01, Local0, LEN1)
                     If (INTR)
                     {
                         ShiftLeft (0x01, INTR, IRQM)
                     }
                     Else
                     {
                         Store (0x00, IRQM)
                     }
 
                     And (DMCH, 0x03, Local1)
                     If (Or (LGreater (DMCH, 0x03), LEqual (DMCH, 0xFF)))
                     {
                         Store (0x00, DMAM)
                     }
                     Else
                     {
                         ShiftLeft (0x01, Local1, DMAM)
                     }
 
                     EXFG ()
                     Return (CRS1)
                 }
 
                 Name (IOSC, Package (0x1E)
                 {
                     0x0F40, 
                     0x0E80, 
                     0x07BC, 
                     0x0778, 
                     0x0678, 
                     0x0604, 
                     0x0530, 
                     0x03F8, 
                     0x03F0, 
                     0x03E8, 
                     0x03BC, 
                     0x0388, 
                     0x0378, 
                     0x0370, 
                     0x0338, 
                     0x0330, 
                     0x0320, 
                     0x0310, 
                     0x0300, 
                     0x02F8, 
                     0x02E8, 
                     0x0280, 
                     0x0278, 
                     0x0260, 
                     0x0240, 
                     0x0238, 
                     0x0230, 
                     0x0228, 
                     0x0220, 
                     0x0200
                 })
                 Name (REGV, Package (0x1E)
                 {
                     0x02000000, 
                     0x01000000, 
                     0x20, 
                     0x02, 
                     0x08, 
                     0x00800000, 
                     0x00400000, 
                     0x40, 
                     0x04000000, 
                     0x2000, 
                     0x10, 
                     0x80000000, 
                     0x01, 
                     0x08000000, 
                     0x1000, 
                     0x00200000, 
                     0x00100000, 
                     0x00080000, 
                     0x00040000, 
                     0x80, 
                     0x0800, 
                     0x00020000, 
                     0x04, 
                     0x00010000, 
                     0x8000, 
                     0x0400, 
                     0x4000, 
                     0x0200, 
                     0x0100, 
                     0x10000000
                 })
                 Method (DSRS, 2, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQM)
                     CreateByteField (Arg0, 0x04, DMAM)
                     CreateWordField (Arg0, 0x08, IO11)
                     ENFG (CGLD (Arg1))
                     Store (Match (IOSC, MLE, IO11, MTR, 0x00, 0x00), Local0)
                     Or (\_SB.PCI0.SBRG.LPCD, DerefOf (Index (REGV, Local0)), 
\_SB.PCI0.SBRG.LPCD)
                     And (IO11, 0xFF, IOAL)
                     ShiftRight (IO11, 0x08, IOAH)
                     If (IRQM)
                     {
                         FindSetRightBit (IRQM, Local0)
                         Subtract (Local0, 0x01, INTR)
                     }
                     Else
                     {
                         Store (0x00, INTR)
                     }
 
                     If (DMAM)
                     {
                         FindSetRightBit (DMAM, Local0)
                         Subtract (Local0, 0x01, DMCH)
                     }
                     Else
                     {
                         Store (0x04, DMCH)
                     }
 
                     EXFG ()
                     DCNT (Arg1, 0x01)
                 }
 
                 OperationRegion (GPIO, SystemIO, IO1B, 0x04)
                 Field (GPIO, ByteAcc, NoLock, Preserve)
                 {
                     GP10,   1, 
                     GP11,   1, 
                     GP12,   1, 
                     GP13,   1, 
                     GO14,   1, 
                     GO15,   1, 
                     GO16,   1, 
                     GO17,   1, 
                     GP20,   1, 
                     GP21,   1, 
                     GP22,   1, 
                     GP23,   1, 
                     GO24,   1, 
                     GO25,   1, 
                     GO26,   1, 
                     GO27,   1, 
                     GP30,   1, 
                     GP31,   1, 
                     GP32,   1, 
                     GP33,   1, 
                     GO34,   1, 
                     GO35,   1, 
                     GO36,   1, 
                     GO37,   1, 
                     GP40,   1, 
                     GP41,   1, 
                     GP42,   1, 
                     GP43,   1, 
                     GO44,   1, 
                     GO45,   1, 
                     GO46,   1, 
                     GO47,   1
                 }
 
                 Device (RMSC)
                 {
                     Name (_HID, EisaId ("PNP0C02"))
                     Name (_UID, 0x10)
                     Name (CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0010,             // Range Minimum
                             0x0010,             // Range Maximum
                             0x00,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0022,             // Range Minimum
                             0x0022,             // Range Maximum
                             0x00,               // Alignment
                             0x1E,               // Length
                             )
                         IO (Decode16,
                             0x0044,             // Range Minimum
                             0x0044,             // Range Maximum
                             0x00,               // Alignment
                             0x1C,               // Length
                             )
                         IO (Decode16,
                             0x0072,             // Range Minimum
                             0x0072,             // Range Maximum
                             0x00,               // Alignment
                             0x0E,               // Length
                             )
                         IO (Decode16,
                             0x0080,             // Range Minimum
                             0x0080,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0084,             // Range Minimum
                             0x0084,             // Range Maximum
                             0x00,               // Alignment
                             0x03,               // Length
                             )
                         IO (Decode16,
                             0x0088,             // Range Minimum
                             0x0088,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x008C,             // Range Minimum
                             0x008C,             // Range Maximum
                             0x00,               // Alignment
                             0x03,               // Length
                             )
                         IO (Decode16,
                             0x0090,             // Range Minimum
                             0x0090,             // Range Maximum
                             0x00,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x00A2,             // Range Minimum
                             0x00A2,             // Range Maximum
                             0x00,               // Alignment
                             0x1E,               // Length
                             )
                         IO (Decode16,
                             0x00E0,             // Range Minimum
                             0x00E0,             // Range Maximum
                             0x00,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x040B,             // Range Minimum
                             0x040B,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x04D0,             // Range Minimum
                             0x04D0,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x04D6,             // Range Minimum
                             0x04D6,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0F40,             // Range Minimum
                             0x0F40,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0C00,             // Range Minimum
                             0x0C00,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0C14,             // Range Minimum
                             0x0C14,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0C50,             // Range Minimum
                             0x0C50,             // Range Maximum
                             0x00,               // Alignment
                             0x03,               // Length
                             )
                         IO (Decode16,
                             0x0C6C,             // Range Minimum
                             0x0C6C,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0C6F,             // Range Minimum
                             0x0C6F,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0CD6,             // Range Minimum
                             0x0CD6,             // Range Maximum
                             0x00,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x00,               // Alignment
                             0x00,               // Length
                             _Y0A)
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x00,               // Alignment
                             0x00,               // Length
                             )
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x00,               // Alignment
                             0x00,               // Length
                             _Y0B)
                         Memory32Fixed (ReadOnly,
                             0xFFB00000,         // Address Base
                             0x00500000,         // Address Length
                             )
                         DWordMemory (ResourceProducer, PosDecode, MinFixed, 
MaxFixed, Cacheable, ReadWrite,
                             0x00000000,         // Granularity
                             0x00000000,         // Range Minimum
                             0x00000000,         // Range Maximum
                             0x00000000,         // Translation Offset
                             0x00000000,         // Length
                             ,, _Y09, AddressRangeMemory, TypeStatic)
                     })
                     CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._MIN, MIN7)
                     CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._MAX, MAX7)
                     CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._LEN, LEN7)
                     Method (_CRS, 0, NotSerialized)
                     {
                         CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._MIN, 
GP00)
                         CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._MAX, 
GP01)
                         CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._LEN, 
GP0L)
                         Store (PMBS, GP00)
                         Store (PMBS, GP01)
                         Store (PMLN, GP0L)
                         If (GPBS)
                         {
                             CreateWordField (CRS, 
\_SB.PCI0.SBRG.RMSC._Y0B._MIN, GP20)
                             CreateWordField (CRS, 
\_SB.PCI0.SBRG.RMSC._Y0B._MAX, GP21)
                             CreateByteField (CRS, 
\_SB.PCI0.SBRG.RMSC._Y0B._LEN, GP2L)
                             Store (GPBS, GP20)
                             Store (GPBS, GP21)
                             Store (GPLN, GP2L)
                         }
 
                         Store (\_SB.PCI0.BAR1, MIN7)
                         Store (0x1000, LEN7)
                         Add (BAR1, 0x0FFF, MAX7)
                         Return (CRS)
                     }
                 }
 
                 Device (OMSC)
                 {
                     Name (_HID, EisaId ("PNP0C02"))
                     Name (_UID, 0x00)
                     Name (CRS, ResourceTemplate ()
                     {
                         Memory32Fixed (ReadOnly,
                             0x00000000,         // Address Base
                             0x00000000,         // Address Length
                             _Y0C)
                         Memory32Fixed (ReadOnly,
                             0x00000000,         // Address Base
                             0x00000000,         // Address Length
                             _Y0D)
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         If (APCB)
                         {
                             CreateDWordField (CRS, 
\_SB.PCI0.SBRG.OMSC._Y0C._LEN, ML01)
                             CreateDWordField (CRS, 
\_SB.PCI0.SBRG.OMSC._Y0C._BAS, MB01)
                             CreateDWordField (CRS, 
\_SB.PCI0.SBRG.OMSC._Y0D._LEN, ML02)
                             CreateDWordField (CRS, 
\_SB.PCI0.SBRG.OMSC._Y0D._BAS, MB02)
                             Store (APCB, MB01)
                             Store (APCL, ML01)
                             Store (0xFEE00000, MB02)
                             Store (0x1000, ML02)
                         }
 
                         Return (CRS)
                     }
                 }
 
                 Device (\_SB.RMEM)
                 {
                     Name (_HID, EisaId ("PNP0C01"))
                     Name (_UID, 0x01)
                     Name (CRS, ResourceTemplate ()
                     {
                         Memory32Fixed (ReadWrite,
                             0x00000000,         // Address Base
                             0x000A0000,         // Address Length
                             )
                         Memory32Fixed (ReadOnly,
                             0x00000000,         // Address Base
                             0x00000000,         // Address Length
                             _Y0E)
                         Memory32Fixed (ReadOnly,
                             0x000E0000,         // Address Base
                             0x00020000,         // Address Length
                             _Y0F)
                         Memory32Fixed (ReadWrite,
                             0x00100000,         // Address Base
                             0x00000000,         // Address Length
                             _Y10)
                         Memory32Fixed (ReadOnly,
                             0x00000000,         // Address Base
                             0x00000000,         // Address Length
                             _Y11)
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         CreateDWordField (CRS, \_SB.RMEM._Y0E._BAS, BAS1)
                         CreateDWordField (CRS, \_SB.RMEM._Y0E._LEN, LEN1)
                         CreateDWordField (CRS, \_SB.RMEM._Y0F._BAS, BAS2)
                         CreateDWordField (CRS, \_SB.RMEM._Y0F._LEN, LEN2)
                         CreateDWordField (CRS, \_SB.RMEM._Y10._LEN, LEN3)
                         CreateDWordField (CRS, \_SB.RMEM._Y11._BAS, BAS4)
                         CreateDWordField (CRS, \_SB.RMEM._Y11._LEN, LEN4)
                         If (OSFL ()) {}
                         Else
                         {
                             If (MG1B)
                             {
                                 If (LGreater (MG1B, 0x000C0000))
                                 {
                                     Store (0x000C0000, BAS1)
                                     Subtract (MG1B, BAS1, LEN1)
                                 }
                             }
                             Else
                             {
                                 Store (0x000C0000, BAS1)
                                 Store (0x00020000, LEN1)
                             }
 
                             If (Add (MG1B, MG1L, Local0))
                             {
                                 Store (Local0, BAS2)
                                 Subtract (0x00100000, BAS2, LEN2)
                             }
                         }
 
                         Subtract (MG2B, 0x00100000, LEN3)
                         Add (MG2B, MG2L, BAS4)
                         Subtract (0x00, BAS4, LEN4)
                         Return (CRS)
                     }
                 }
 
                 Device (UAR1)
                 {
                     Name (_UID, 0x01)
                     Name (_HID, EisaId ("PNP0501"))
                     Method (_STA, 0, NotSerialized)
                     {
                         Return (DSTA (0x00))
                     }
 
                     Method (_DIS, 0, NotSerialized)
                     {
                         DCNT (0x00, 0x00)
                     }
 
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (DCRS (0x00))
                     }
 
                     Method (_SRS, 1, NotSerialized)
                     {
                         DSRS (Arg0, 0x00)
                     }
 
                     Method (_PRS, 0, NotSerialized)
                     {
                         Return (CMPR)
                     }
 
                     Name (CMPR, ResourceTemplate ()
                     {
                         IRQNoFlags ()
                             {3,4,5,6,7,10,11,12}
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x03F8,             // Range Minimum
                                 0x03F8,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x02F8,             // Range Minimum
                                 0x02F8,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x03E8,             // Range Minimum
                                 0x03E8,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IO (Decode16,
                                 0x02E8,             // Range Minimum
                                 0x02E8,             // Range Maximum
                                 0x01,               // Alignment
                                 0x08,               // Length
                                 )
                         }
                         EndDependentFn ()
                     })
                 }
 
                 Method (UAR1._PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x06, 0x03))
                 }
 
                 Device (PS2M)
                 {
                     Name (_HID, EisaId ("PNP0F03"))
                     Name (_CID, EisaId ("PNP0F13"))
                     Method (_STA, 0, NotSerialized)
                     {
                         ShiftLeft (0x01, 0x0C, Local0)
                         If (And (IOST, Local0))
                         {
                             Return (0x0F)
                         }
 
                         Return (0x00)
                     }
 
                     Name (CRS1, ResourceTemplate ()
                     {
                         IRQNoFlags ()
                             {12}
                     })
                     Name (CRS2, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0060,             // Range Minimum
                             0x0060,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0064,             // Range Minimum
                             0x0064,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IRQNoFlags ()
                             {12}
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         ShiftLeft (0x01, 0x0A, Local0)
                         If (And (IOST, Local0))
                         {
                             Return (CRS1)
                         }
                         Else
                         {
                             Return (CRS2)
                         }
                     }
                 }
 
                 Method (PS2M._PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x01, 0x04))
                 }
 
                 Device (PS2K)
                 {
                     Name (_HID, EisaId ("PNP0303"))
                     Name (_CID, EisaId ("PNP030B"))
                     Method (_STA, 0, NotSerialized)
                     {
                         ShiftLeft (0x01, 0x0A, Local0)
                         If (And (IOST, Local0))
                         {
                             Return (0x0F)
                         }
 
                         Return (0x00)
                     }
 
                     Name (_CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0060,             // Range Minimum
                             0x0060,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0064,             // Range Minimum
                             0x0064,             // Range Maximum
                             0x00,               // Alignment
                             0x01,               // Length
                             )
                         IRQNoFlags ()
                             {1}
                     })
                 }
 
                 Method (PS2K._PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x03, 0x04))
                 }
             }
 
             Device (IDEC)
             {
                 Name (_ADR, 0x00140001)
                 Name (UDMT, Package (0x08)
                 {
                     0x78, 
                     0x5A, 
                     0x3C, 
                     0x2D, 
                     0x1E, 
                     0x14, 
                     0x00, 
                     0x00
                 })
                 Name (PIOT, Package (0x06)
                 {
                     0x0258, 
                     0x0186, 
                     0x010E, 
                     0xB4, 
                     0x78, 
                     0x00
                 })
                 Name (PITR, Package (0x06)
                 {
                     0x5D, 
                     0x47, 
                     0x34, 
                     0x22, 
                     0x20, 
                     0x5D
                 })
                 Name (MDMT, Package (0x04)
                 {
                     0x01E0, 
                     0x96, 
                     0x78, 
                     0x00
                 })
                 Name (MDTR, Package (0x04)
                 {
                     0x77, 
                     0x21, 
                     0x20, 
                     0xFF
                 })
                 OperationRegion (IDE, PCI_Config, 0x40, 0x20)
                 Field (IDE, AnyAcc, NoLock, Preserve)
                 {
                     PPIT,   16, 
                     SPIT,   16, 
                     PMDT,   16, 
                     SMDT,   16, 
                     PPIC,   8, 
                     SPIC,   8, 
                     PPIM,   8, 
                     SPIM,   8, 
                             Offset (0x14), 
                     PUDC,   2, 
                     SUDC,   2, 
                             Offset (0x16), 
                     PUDM,   8, 
                     SUDM,   8
                 }
 
                 Method (GETT, 1, NotSerialized)
                 {
                     Store (And (Arg0, 0x0F), Local0)
                     Store (ShiftRight (Arg0, 0x04), Local1)
                     Return (Multiply (0x1E, Add (Add (Local0, 0x01), Add 
(Local1, 
                         0x01))))
                 }
 
                 Method (GTM, 1, NotSerialized)
                 {
                     CreateByteField (Arg0, 0x00, PIT1)
                     CreateByteField (Arg0, 0x01, PIT0)
                     CreateByteField (Arg0, 0x02, MDT1)
                     CreateByteField (Arg0, 0x03, MDT0)
                     CreateByteField (Arg0, 0x04, PICX)
                     CreateByteField (Arg0, 0x05, UDCX)
                     CreateByteField (Arg0, 0x06, UDMX)
                     Name (BUF, Buffer (0x14)
                     {
                         /* 0000 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
0xFF, 0xFF, 
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
0xFF, 0xFF, 
                         /* 0010 */    0x00, 0x00, 0x00, 0x00
                     })
                     CreateDWordField (BUF, 0x00, PIO0)
                     CreateDWordField (BUF, 0x04, DMA0)
                     CreateDWordField (BUF, 0x08, PIO1)
                     CreateDWordField (BUF, 0x0C, DMA1)
                     CreateDWordField (BUF, 0x10, FLAG)
                     If (And (PICX, 0x01))
                     {
                         Return (BUF)
                     }
 
                     Store (GETT (PIT0), PIO0)
                     Store (GETT (PIT1), PIO1)
                     If (And (UDCX, 0x01))
                     {
                         Or (FLAG, 0x01, FLAG)
                         Store (DerefOf (Index (^UDMT, And (UDMX, 0x0F))), DMA0)
                     }
                     Else
                     {
                         Store (GETT (MDT0), DMA0)
                     }
 
                     If (And (UDCX, 0x02))
                     {
                         Or (FLAG, 0x04, FLAG)
                         Store (DerefOf (Index (^UDMT, ShiftRight (UDMX, 
0x04))), DMA1)
                     }
                     Else
                     {
                         Store (GETT (MDT1), DMA1)
                     }
 
                     Or (FLAG, 0x1A, FLAG)
                     Return (BUF)
                 }
 
                 Method (STM, 3, NotSerialized)
                 {
                     CreateDWordField (Arg0, 0x00, PIO0)
                     CreateDWordField (Arg0, 0x04, DMA0)
                     CreateDWordField (Arg0, 0x08, PIO1)
                     CreateDWordField (Arg0, 0x0C, DMA1)
                     CreateDWordField (Arg0, 0x10, FLAG)
                     Name (BUF, Buffer (0x07)
                     {
                         0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00
                     })
                     CreateByteField (BUF, 0x00, PIT1)
                     CreateByteField (BUF, 0x01, PIT0)
                     CreateByteField (BUF, 0x02, MDT1)
                     CreateByteField (BUF, 0x03, MDT0)
                     CreateByteField (BUF, 0x04, PIMX)
                     CreateByteField (BUF, 0x05, UDCX)
                     CreateByteField (BUF, 0x06, UDMX)
                     Store (Match (^PIOT, MLE, PIO0, MTR, 0x00, 0x00), Local0)
                     Divide (Local0, 0x05, Local0)
                     Store (Match (^PIOT, MLE, PIO1, MTR, 0x00, 0x00), Local1)
                     Divide (Local1, 0x05, Local1)
                     Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX)
                     Store (DerefOf (Index (^PITR, Local0)), PIT0)
                     Store (DerefOf (Index (^PITR, Local1)), PIT1)
                     If (And (FLAG, 0x01))
                     {
                         Store (Match (^UDMT, MLE, DMA0, MTR, 0x00, 0x00), 
Local0)
                         Divide (Local0, 0x06, Local0)
                         Or (UDMX, Local0, UDMX)
                         Or (UDCX, 0x01, UDCX)
                     }
                     Else
                     {
                         If (LNotEqual (DMA0, 0xFFFFFFFF))
                         {
                             Store (Match (^MDMT, MLE, DMA0, MTR, 0x00, 0x00), 
Local0)
                             Store (DerefOf (Index (^MDTR, Local0)), MDT0)
                         }
                     }
 
                     If (And (FLAG, 0x04))
                     {
                         Store (Match (^UDMT, MLE, DMA1, MTR, 0x00, 0x00), 
Local0)
                         Divide (Local0, 0x06, Local0)
                         Or (UDMX, ShiftLeft (Local0, 0x04), UDMX)
                         Or (UDCX, 0x02, UDCX)
                     }
                     Else
                     {
                         If (LNotEqual (DMA1, 0xFFFFFFFF))
                         {
                             Store (Match (^MDMT, MLE, DMA1, MTR, 0x00, 0x00), 
Local0)
                             Store (DerefOf (Index (^MDTR, Local0)), MDT1)
                         }
                     }
 
                     Return (BUF)
                 }
 
                 Method (GTF, 2, NotSerialized)
                 {
                     CreateByteField (Arg1, 0x00, MDT1)
                     CreateByteField (Arg1, 0x01, MDT0)
                     CreateByteField (Arg1, 0x02, PIMX)
                     CreateByteField (Arg1, 0x03, UDCX)
                     CreateByteField (Arg1, 0x04, UDMX)
                     If (LEqual (Arg0, 0xA0))
                     {
                         Store (And (PIMX, 0x0F), Local0)
                         Store (MDT0, Local1)
                         And (UDCX, 0x01, Local2)
                         Store (And (UDMX, 0x0F), Local3)
                     }
                     Else
                     {
                         Store (ShiftRight (PIMX, 0x04), Local0)
                         Store (MDT1, Local1)
                         And (UDCX, 0x02, Local2)
                         Store (ShiftRight (UDMX, 0x04), Local3)
                     }
 
                     Name (BUF, Buffer (0x0E)
                     {
                         /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 
0xEF, 0x03, 
                         /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF
                     })
                     CreateByteField (BUF, 0x01, PMOD)
                     CreateByteField (BUF, 0x08, DMOD)
                     CreateByteField (BUF, 0x05, CMDA)
                     CreateByteField (BUF, 0x0C, CMDB)
                     Store (Arg0, CMDA)
                     Store (Arg0, CMDB)
                     Or (Local0, 0x08, PMOD)
                     If (Local2)
                     {
                         Or (Local3, 0x40, DMOD)
                     }
                     Else
                     {
                         Store (Match (^MDMT, MLE, GETT (Local1), MTR, 0x00, 
0x00), Local4)
                         If (LLess (Local4, 0x03))
                         {
                             Or (0x20, Local4, DMOD)
                         }
                     }
 
                     Return (BUF)
                 }
 
                 Device (PRID)
                 {
                     Name (_ADR, 0x00)
                     Method (_GTM, 0, NotSerialized)
                     {
                         Name (BUF, Buffer (0x07)
                         {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                         })
                         CreateWordField (BUF, 0x00, VPIT)
                         CreateWordField (BUF, 0x02, VMDT)
                         CreateByteField (BUF, 0x04, VPIC)
                         CreateByteField (BUF, 0x05, VUDC)
                         CreateByteField (BUF, 0x06, VUDM)
                         Store (^^PPIT, VPIT)
                         Store (^^PMDT, VMDT)
                         Store (^^PPIC, VPIC)
                         Store (^^PUDC, VUDC)
                         Store (^^PUDM, VUDM)
                         Return (GTM (BUF))
                     }
 
                     Method (_STM, 3, NotSerialized)
                     {
                         CreateDWordField (Arg0, 0x10, FLAG)
                         If (And (FLAG, 0x01))
                         {
                             And (^^PUDC, 0x02, ^^PUDC)
                         }
 
                         If (And (FLAG, 0x04))
                         {
                             And (^^PUDC, 0x01, ^^PUDC)
                         }
 
                         Name (BUF, Buffer (0x07)
                         {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                         })
                         CreateWordField (BUF, 0x00, VPIT)
                         CreateWordField (BUF, 0x02, VMDT)
                         CreateByteField (BUF, 0x04, VPIM)
                         CreateByteField (BUF, 0x05, VUDC)
                         CreateByteField (BUF, 0x06, VUDM)
                         Store (STM (Arg0, Arg1, Arg2), BUF)
                         Store (VPIT, ^^PPIT)
                         Store (VMDT, ^^PMDT)
                         Store (VPIM, ^^PPIM)
                         Store (VUDC, ^^PUDC)
                         Store (VUDM, ^^PUDM)
                     }
 
                     Device (P_D0)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Name (BUF, Buffer (0x05)
                             {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                             })
                             CreateWordField (BUF, 0x00, VMDT)
                             CreateByteField (BUF, 0x02, VPIM)
                             CreateByteField (BUF, 0x03, VUDC)
                             CreateByteField (BUF, 0x04, VUDM)
                             Store (^^^PMDT, VMDT)
                             Store (^^^PPIM, VPIM)
                             Store (^^^PUDC, VUDC)
                             Store (^^^PUDM, VUDM)
                             Return (GTF (0xA0, BUF))
                         }
                     }
 
                     Device (P_D1)
                     {
                         Name (_ADR, 0x01)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Name (BUF, Buffer (0x05)
                             {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                             })
                             CreateWordField (BUF, 0x00, VMDT)
                             CreateByteField (BUF, 0x02, VPIM)
                             CreateByteField (BUF, 0x03, VUDC)
                             CreateByteField (BUF, 0x04, VUDM)
                             Store (^^^PMDT, VMDT)
                             Store (^^^PPIM, VPIM)
                             Store (^^^PUDC, VUDC)
                             Store (^^^PUDM, VUDM)
                             Return (GTF (0xB0, BUF))
                         }
                     }
                 }
 
                 Device (SECD)
                 {
                     Name (_ADR, 0x01)
                     Method (_GTM, 0, NotSerialized)
                     {
                         Name (BUF, Buffer (0x07)
                         {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                         })
                         CreateWordField (BUF, 0x00, VPIT)
                         CreateWordField (BUF, 0x02, VMDT)
                         CreateByteField (BUF, 0x04, VPIC)
                         CreateByteField (BUF, 0x05, VUDC)
                         CreateByteField (BUF, 0x06, VUDM)
                         Store (^^SPIT, VPIT)
                         Store (^^SMDT, VMDT)
                         Store (^^SPIC, VPIC)
                         Store (^^SUDC, VUDC)
                         Store (^^SUDM, VUDM)
                         Return (GTM (BUF))
                     }
 
                     Method (_STM, 3, NotSerialized)
                     {
                         CreateDWordField (Arg0, 0x10, DFLG)
                         If (And (DFLG, 0x01))
                         {
                             Store (0x01, \_SB.PCI0.SBRG.TP2E)
                         }
 
                         CreateDWordField (Arg0, 0x10, FLAG)
                         If (And (FLAG, 0x01))
                         {
                             And (^^SUDC, 0x02, ^^SUDC)
                         }
 
                         If (And (FLAG, 0x04))
                         {
                             And (^^SUDC, 0x01, ^^SUDC)
                         }
 
                         Name (BUF, Buffer (0x07)
                         {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                         })
                         CreateWordField (BUF, 0x00, VPIT)
                         CreateWordField (BUF, 0x02, VMDT)
                         CreateByteField (BUF, 0x04, VPIM)
                         CreateByteField (BUF, 0x05, VUDC)
                         CreateByteField (BUF, 0x06, VUDM)
                         Store (STM (Arg0, Arg1, Arg2), BUF)
                         Store (VPIT, ^^SPIT)
                         Store (VMDT, ^^SMDT)
                         Store (VPIM, ^^SPIM)
                         Store (VUDC, ^^SUDC)
                         Store (VUDM, ^^SUDM)
                     }
 
                     Device (S_D0)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Name (BUF, Buffer (0x05)
                             {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                             })
                             CreateWordField (BUF, 0x00, VMDT)
                             CreateByteField (BUF, 0x02, VPIM)
                             CreateByteField (BUF, 0x03, VUDC)
                             CreateByteField (BUF, 0x04, VUDM)
                             Store (^^^SMDT, VMDT)
                             Store (^^^SPIM, VPIM)
                             Store (^^^SUDC, VUDC)
                             Store (^^^SUDM, VUDM)
                             Return (GTF (0xA0, BUF))
                         }
                     }
 
                     Device (S_D1)
                     {
                         Name (_ADR, 0x01)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Name (BUF, Buffer (0x05)
                             {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                             })
                             CreateWordField (BUF, 0x00, VMDT)
                             CreateByteField (BUF, 0x02, VPIM)
                             CreateByteField (BUF, 0x03, VUDC)
                             CreateByteField (BUF, 0x04, VUDM)
                             Store (^^^SMDT, VMDT)
                             Store (^^^SPIM, VPIM)
                             Store (^^^SUDC, VUDC)
                             Store (^^^SUDM, VUDM)
                             Return (GTF (0xB0, BUF))
                         }
                     }
                 }
             }
 
             Device (AC97)
             {
                 Name (_ADR, 0x00140005)
             }
 
             Device (MC97)
             {
                 Name (_ADR, 0x00140006)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x0C, 0x03))
                 }
             }
 
             Device (USB1)
             {
                 Name (_ADR, 0x00130000)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x0B, 0x04))
                 }
             }
 
             Device (USB2)
             {
                 Name (_ADR, 0x00130001)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x0B, 0x04))
                 }
             }
 
             Device (EUSB)
             {
                 Name (_ADR, 0x00130002)
             }
 
             Device (P0P2)
             {
                 Name (_ADR, 0x00140004)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Return (GPRW (0x04, 0x03))
                 }
 
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (PICM)
                     {
                         Return (AR02)
                     }
 
                     Return (PR02)
                 }
 
                 Device (SLAN)
                 {
                     Name (_ADR, 0x00080000)
                     Method (_PRW, 0, NotSerialized)
                     {
                         Return (GPRW (0x17, 0x03))
                     }
                 }
 
                 Device (P2P3)
                 {
                     Name (_ADR, 0x000C0000)
                 }
             }
         }
 
         Scope (\_GPE)
         {
             Method (_L06, 0, NotSerialized)
             {
                 \_SB.PCI0.SBRG.SIOH ()
             }
 
             Method (_L01, 0, NotSerialized)
             {
                 \_SB.PCI0.SBRG.SIOH ()
             }
 
             Method (_L03, 0, NotSerialized)
             {
                 \_SB.PCI0.SBRG.SIOH ()
             }
 
             Method (_L0C, 0, NotSerialized)
             {
                 Notify (\_SB.PCI0.MC97, 0x02)
             }
 
             Method (_L0B, 0, NotSerialized)
             {
                 Notify (\_SB.PCI0.USB1, 0x02)
                 Notify (\_SB.PCI0.USB2, 0x02)
             }
 
             Method (_L04, 0, NotSerialized)
             {
                 Notify (\_SB.PCI0.P0P2, 0x02)
                 Notify (\_SB.PWRB, 0x02)
             }
 
             Method (_L17, 0, NotSerialized)
             {
                 Notify (\_SB.PCI0.P0P2.SLAN, 0x02)
             }
         }
 
         Device (PWRB)
         {
             Name (_HID, EisaId ("PNP0C0C"))
             Name (_UID, 0xAA)
             Name (_STA, 0x0B)
         }
     }
 
     Scope (\_SB)
     {
         OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
         Field (PIRQ, ByteAcc, NoLock, Preserve)
         {
             PIDX,   8, 
             PDAT,   8
         }
 
         IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
         {
             PIRA,   8, 
             PIRB,   8, 
             PIRC,   8, 
             PIRD,   8, 
             PIRS,   8
         }
 
         Name (BUFA, ResourceTemplate ()
         {
             IRQ (Level, ActiveLow, Shared, _Y12)
                 {15}
         })
         Name (IPRA, ResourceTemplate ()
         {
             IRQ (Level, ActiveLow, Shared, )
                 {5,10,11}
         })
         Name (IPRB, ResourceTemplate ()
         {
             IRQ (Level, ActiveLow, Shared, )
                 {5,10,11}
         })
         Name (IPRC, ResourceTemplate ()
         {
             IRQ (Level, ActiveLow, Shared, )
                 {5,10,11}
         })
         Name (IPRD, ResourceTemplate ()
         {
             IRQ (Level, ActiveLow, Shared, )
                 {5,10,11}
         })
         Device (LNKA)
         {
             Name (_HID, EisaId ("PNP0C0F"))
             Name (_UID, 0x01)
             Method (_STA, 0, NotSerialized)
             {
                 If (PIRA)
                 {
                     Return (0x0B)
                 }
                 Else
                 {
                     Return (0x09)
                 }
             }
 
             Method (_PRS, 0, NotSerialized)
             {
                 Return (PRSA)
             }
 
             Method (_DIS, 0, NotSerialized)
             {
                 Store (0x00, PIRA)
             }
 
             Method (_CRS, 0, NotSerialized)
             {
                 CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
                 ShiftLeft (0x01, PIRA, IRQX)
                 Return (BUFA)
             }
 
             Method (_SRS, 1, NotSerialized)
             {
                 CreateWordField (Arg0, 0x01, IRA)
                 FindSetRightBit (IRA, Local0)
                 Decrement (Local0)
                 Store (Local0, PIRA)
             }
         }
 
         Device (LNKB)
         {
             Name (_HID, EisaId ("PNP0C0F"))
             Name (_UID, 0x02)
             Method (_STA, 0, NotSerialized)
             {
                 If (PIRB)
                 {
                     Return (0x0B)
                 }
                 Else
                 {
                     Return (0x09)
                 }
             }
 
             Method (_PRS, 0, NotSerialized)
             {
                 Return (PRSB)
             }
 
             Method (_DIS, 0, NotSerialized)
             {
                 Store (0x00, PIRB)
             }
 
             Method (_CRS, 0, NotSerialized)
             {
                 CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
                 ShiftLeft (0x01, PIRB, IRQX)
                 Return (BUFA)
             }
 
             Method (_SRS, 1, NotSerialized)
             {
                 CreateWordField (Arg0, 0x01, IRA)
                 FindSetRightBit (IRA, Local0)
                 Decrement (Local0)
                 Store (Local0, PIRB)
             }
         }
 
         Device (LNKC)
         {
             Name (_HID, EisaId ("PNP0C0F"))
             Name (_UID, 0x03)
             Method (_STA, 0, NotSerialized)
             {
                 If (PIRC)
                 {
                     Return (0x0B)
                 }
                 Else
                 {
                     Return (0x09)
                 }
             }
 
             Method (_PRS, 0, NotSerialized)
             {
                 Return (PRSC)
             }
 
             Method (_DIS, 0, NotSerialized)
             {
                 Store (0x00, PIRC)
             }
 
             Method (_CRS, 0, NotSerialized)
             {
                 CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
                 ShiftLeft (0x01, PIRC, IRQX)
                 Return (BUFA)
             }
 
             Method (_SRS, 1, NotSerialized)
             {
                 CreateWordField (Arg0, 0x01, IRA)
                 FindSetRightBit (IRA, Local0)
                 Decrement (Local0)
                 Store (Local0, PIRC)
             }
         }
 
         Device (LNKD)
         {
             Name (_HID, EisaId ("PNP0C0F"))
             Name (_UID, 0x04)
             Method (_STA, 0, NotSerialized)
             {
                 If (PIRD)
                 {
                     Return (0x0B)
                 }
                 Else
                 {
                     Return (0x09)
                 }
             }
 
             Method (_PRS, 0, NotSerialized)
             {
                 Return (PRSD)
             }
 
             Method (_DIS, 0, NotSerialized)
             {
                 Store (0x00, PIRD)
             }
 
             Method (_CRS, 0, NotSerialized)
             {
                 CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
                 ShiftLeft (0x01, PIRD, IRQX)
                 Return (BUFA)
             }
 
             Method (_SRS, 1, NotSerialized)
             {
                 CreateWordField (Arg0, 0x01, IRA)
                 FindSetRightBit (IRA, Local0)
                 Decrement (Local0)
                 Store (Local0, PIRD)
             }
         }
     }
 
     Scope (\_SB)
     {
         Scope (PCI0)
         {
             OperationRegion (BBAR, PCI_Config, 0x14, 0x04)
             Field (BBAR, DWordAcc, NoLock, Preserve)
             {
                 BAR1,   32
             }
 
             Name (CRS, ResourceTemplate ()
             {
                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                     0x0000,             // Granularity
                     0x0000,             // Range Minimum
                     0x00FF,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0100,             // Length
                     ,, )
                 IO (Decode16,
                     0x0CF8,             // Range Minimum
                     0x0CF8,             // Range Maximum
                     0x01,               // Alignment
                     0x08,               // Length
                     )
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, 
EntireRange,
                     0x0000,             // Granularity
                     0x0000,             // Range Minimum
                     0x0CF7,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0CF8,             // Length
                     ,, , TypeStatic)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, 
EntireRange,
                     0x0000,             // Granularity
                     0x0D00,             // Range Minimum
                     0xFFFF,             // Range Maximum
                     0x0000,             // Translation Offset
                     0xF300,             // Length
                     ,, , TypeStatic)
                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite,
                     0x00000000,         // Granularity
                     0x000A0000,         // Range Minimum
                     0x000BFFFF,         // Range Maximum
                     0x00000000,         // Translation Offset
                     0x00020000,         // Length
                     ,, , AddressRangeMemory, TypeStatic)
                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite,
                     0x00000000,         // Granularity
                     0x00000000,         // Range Minimum
                     0x00000000,         // Range Maximum
                     0x00000000,         // Translation Offset
                     0x00000000,         // Length
                     ,, _Y13, AddressRangeMemory, TypeStatic)
                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite,
                     0x00000000,         // Granularity
                     0x00000000,         // Range Minimum
                     0x00000000,         // Range Maximum
                     0x00000000,         // Translation Offset
                     0x00000000,         // Length
                     ,, _Y14, AddressRangeMemory, TypeStatic)
             })
             CreateDWordField (CRS, \_SB.PCI0._Y13._MIN, MIN5)
             CreateDWordField (CRS, \_SB.PCI0._Y13._MAX, MAX5)
             CreateDWordField (CRS, \_SB.PCI0._Y13._LEN, LEN5)
             CreateDWordField (CRS, \_SB.PCI0._Y14._MIN, MIN6)
             CreateDWordField (CRS, \_SB.PCI0._Y14._MAX, MAX6)
             CreateDWordField (CRS, \_SB.PCI0._Y14._LEN, LEN6)
             Method (_CRS, 0, NotSerialized)
             {
                 Store (MG1B, MIN5)
                 Store (MG1L, LEN5)
                 Store (MG1L, Local0)
                 If (Local0)
                 {
                     Add (MIN5, Decrement (Local0), MAX5)
                 }
 
                 Store (MG2B, MIN6)
                 Store (MG2L, LEN6)
                 Store (MG2L, Local0)
                 Add (MIN6, Decrement (Local0), MAX6)
                 Return (CRS)
             }
         }
     }
 
     Method (_PTS, 1, NotSerialized)
     {
         Store (Arg0, DBG8)
         And (Arg0, 0x0F, \_SB.PCI0.SBRG.SLPT)
         Store (0x0804, \_SB.PCI0.SBRG.PMCB)
         Or (\_SB.PCI0.SBRG.LPCD, 0x02000000, \_SB.PCI0.SBRG.LPCD)
         Store (0x0F40, \_SB.PCI0.SBRG.TP0P)
         Store (0x01, \_SB.PCI0.SBRG.TP0S)
         Store (0x01, \_SB.PCI0.SBRG.TP0E)
         PTS (Arg0)
         Store (0x00, Index (WAKP, 0x00))
         Store (0x00, Index (WAKP, 0x01))
     }
 
     Method (_WAK, 1, NotSerialized)
     {
         ShiftLeft (Arg0, 0x04, DBG8)
         WAK (Arg0)
         If (LEqual (\_SB.PCI0.SBRG.WAKT, 0x03)) {}
         Else
         {
             Notify (\_SB.PWRB, 0x02)
         }
 
         If (DerefOf (Index (WAKP, 0x00)))
         {
             Store (0x00, Index (WAKP, 0x01))
         }
         Else
         {
             Store (Arg0, Index (WAKP, 0x01))
         }
 
         Return (WAKP)
     }
 
     Name (\_S0, Package (0x04)
     {
         0x00, 
         0x00, 
         0x00, 
         0x00
     })
     Name (\_S1, Package (0x04)
     {
         0x01, 
         0x00, 
         0x00, 
         0x00
     })
     Name (\_S3, Package (0x04)
     {
         0x03, 
         0x00, 
         0x00, 
         0x00
     })
     Name (\_S4, Package (0x04)
     {
         0x04, 
         0x00, 
         0x00, 
         0x00
     })
     Name (\_S5, Package (0x04)
     {
         0x05, 
         0x00, 
         0x00, 
         0x00
     })
     Method (PTS, 1, NotSerialized)
     {
         If (Arg0)
         {
             \_SB.PCI0.SBRG.SIOS (Arg0)
         }
     }
 
     Method (WAK, 1, NotSerialized)
     {
         \_SB.PCI0.SBRG.SIOW (Arg0)
     }
 }
 
 
 --d6Gm4EdcadzBjdND--
 



Home | Main Index | Thread Index | Old Index