IRQ problem with VAIO laptop again

Vladimir B. Grebenschikov vova at fbsd.ru
Thu Dec 4 01:27:29 PST 2003


В ср, 03.12.2003, в 01:50, John Baldwin пишет:

> > The problem is that your _PRS values are incorrect.  Actually, I think jhb
> > committed some code to deal with extended irq resources.  Send me the
> > output of acpidump -t -d > pete-SonyVaio.asl
> > 
> > Also, does booting without ACPI fix things?
> 
> I fixed this bug a while ago.  Messed up a test for the type
> of _PRS.  (Used || instead of &&)

I have may be similar problem with pccard on VAIO z505S.

If I've book with pcmci card (say, lucent wi0) inserted - it works.

But if I try insert card (or eject if boot with card inserted) system
lookups hard. Only ddb rcan be called (stack trace of ddb call).

If I have command ddb 'call boot(2)' it process any pending input on
terminal (many enter in my case - so I have got many prompts) and then
lockup entirely, even debugger can't be called.

I have tried magic like:
hw.pci.allow_unsupported_io_range="1"

or like:
hw.pci.allow_unsupported_io_range="1"
hw.cbb.start_memory="0x20000000"

My guess, after card insertion something wrong happens with spl and only
few interrupts processed.

Also I have note that irq 9 is used by lot of devices (may be it is
reason ?):
# dmesg | fgrep irq\ 9
pcib0: slot 6 INTA is routed to irq 9
pcib0: slot 7 INTD is routed to irq 9
pcib0: slot 8 INTA is routed to irq 9
pcib0: slot 8 INTB is routed to irq 9
pcib0: slot 9 INTA is routed to irq 9
pcib0: slot 11 INTA is routed to irq 9
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xfca0-0xfcbf irq
9 at device 7.2 on pci0
intpm0: <Intel 82371AB Power management controller> port 0x2180-0x218f
irq 9 at device 7.3 on pci0
pcm0: <NeoMagic 256AV> mem 0xfea00000-0xfeafffff,0xfe000000-0xfe3fffff
irq 9 at device 8.1 on pci0
pcib0: slot 10 INTA is routed to irq 9
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xfcc0-0xfcff mem
0xfec00000-0xfecfffff,0xfedef000-0xfedeffff irq 9 at device 6.0 on pci0

So I can't use pcmci cards without reboot :(

# uname -a
FreeBSD vbook.fbsd.ru 5.2-BETA FreeBSD 5.2-BETA #6: Wed Nov 26 08:32:06
MSK 2003     root at walder.asplinux.ru:/ext/obj/ext/current/src/sys/VBOOK 
i386

A bit of history

First it works with both 4.x and 5-CURRENT (long ago), then it stop work
on 5-CURRENT with acpi, then (after pccard changes) it start freeze with
and without acpi on 5-CURRENT and on 4-STABLE.

Please help.

-- 
Vladimir B. Grebenschikov <vova at fbsd.ru>
SWsoft Inc.
-------------- next part --------------
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.2-BETA #6: Wed Nov 26 08:32:06 MSK 2003
    root at walder.asplinux.ru:/ext/obj/ext/current/src/sys/VBOOK
Preloaded elf kernel "/boot/kernel/kernel" at 0xc07f1000.
Preloaded elf module "/boot/kernel/if_wi.ko" at 0xc07f11f4.
Preloaded elf module "/boot/kernel/wlan.ko" at 0xc07f12a0.
Preloaded elf module "/boot/kernel/rc4.ko" at 0xc07f134c.
Preloaded elf module "/boot/kernel/pccard.ko" at 0xc07f13f4.
Preloaded elf module "/boot/kernel/snd_pcm.ko" at 0xc07f14a0.
Preloaded elf module "/boot/kernel/snd_neomagic.ko" at 0xc07f154c.
Preloaded elf module "/boot/kernel/usb.ko" at 0xc07f1600.
Preloaded elf module "/boot/kernel/ukbd.ko" at 0xc07f16a8.
Preloaded elf module "/boot/kernel/ulpt.ko" at 0xc07f1754.
Preloaded elf module "/boot/kernel/ums.ko" at 0xc07f1800.
Preloaded elf module "/boot/kernel/umass.ko" at 0xc07f18a8.
Preloaded elf module "/boot/kernel/sysvmsg.ko" at 0xc07f1954.
Preloaded elf module "/boot/kernel/sysvsem.ko" at 0xc07f1a00.
Preloaded elf module "/boot/kernel/sysvshm.ko" at 0xc07f1aac.
Preloaded elf module "/boot/kernel/cbb.ko" at 0xc07f1b58.
Preloaded elf module "/boot/kernel/exca.ko" at 0xc07f1c00.
Preloaded elf module "/boot/kernel/cardbus.ko" at 0xc07f1cac.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium II/Pentium II Xeon/Celeron (331.58-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x66a  Stepping = 10
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 201261056 (191 MB)
avail memory = 189964288 (181 MB)
Pentium Pro MTRR support enabled
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <SONY   Z0      > on motherboard
pcibios: BIOS version 2.10
Using $PIR table, 7 entries at 0xc00fdf50
acpi0: Power Button (fixed)
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x8008-0x800b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib0: slot 6 INTA is routed to irq 9
pcib0: slot 7 INTD is routed to irq 9
pcib0: slot 8 INTA is routed to irq 9
pcib0: slot 8 INTB is routed to irq 9
pcib0: slot 9 INTA is routed to irq 9
pcib0: slot 11 INTA is routed to irq 9
pci0: <network, ethernet> at device 6.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0xfc90-0xfc9f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata0: [MPSAFE]
ata1: at 0x170 irq 15 on atapci0
ata1: [MPSAFE]
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xfca0-0xfcbf irq 9 at device 7.2 on pci0
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1: Texas Instruments UT-USB41 hub, class 9/0, rev 1.10/1.10, addr 2
uhub1: 4 ports with 4 removable, self powered
ums0: Microsoft Microsoft IntelliMouse╝ Explorer, rev 1.10/1.14, addr 3, iclass 3/1
ums0: 5 buttons and Z dir.
ukbd0: Behavior Tech. Computer Keyboard with mouse port, rev 1.00/1.00, addr 4, iclass 3/1
kbd1 at ukbd0
ums1: Behavior Tech. Computer Keyboard with mouse port, rev 1.00/1.00, addr 4, iclass 3/1
ums1: 3 buttons
intpm0: <Intel 82371AB Power management controller> port 0x2180-0x218f irq 9 at device 7.3 on pci0
intpm0: I/O mapped 2180
intpm0: intr IRQ 9 enabled revision 0
intsmb0: <Intel PIIX4 SMBUS Interface> on intpm0
smbus0: <System Management Bus> on intsmb0
smb0: <SMBus generic I/O> on smbus0
intpm0: PM I/O mapped 8000 
pci0: <display, VGA> at device 8.0 (no driver attached)
pcm0: <NeoMagic 256AV> mem 0xfea00000-0xfeafffff,0xfe000000-0xfe3fffff irq 9 at device 8.1 on pci0
pcm0: <Asahi Kasei AK4542 AC97 Codec>
pci0: <serial bus, FireWire> at device 9.0 (no driver attached)
cbb0: <RF5C475 PCI-CardBus Bridge> at device 10.0 on pci0
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pcib0: slot 10 INTA is routed to irq 9
cbb0: [MPSAFE]
pci0: <simple comms> at device 11.0 (no driver attached)
speaker0 port 0x61 on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model GlidePoint, device ID 0
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x140-0x147,0x3e8-0x3ef irq 10 drq 0 on acpi0
sio1: type 16550A
acpi_cmbat0: <Control Method Battery> on acpi0
acpi_acad0: <AC Adapter> on acpi0
pmtimer0 on isa0
orm0: <Option ROMs> at iomem 0xdc000-0xdffff,0xc0000-0xcbfff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 331581287 Hz quality 800
Timecounters tick every 10.000 msec
ipfw2 initialized, divert enabled, rule-based forwarding enabled, default to deny, logging unlimited
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
GEOM: create disk ad0 dp=0xc2337460
ad0: 38154MB <TOSHIBA MK4019GAX> [77520/16/63] at ata0-master UDMA33
ata1-master: FAILURE - SETFEATURES status=51<READY,DSC,ERROR> error=4<ABORTED>
ata1-master: FAILURE - SETFEATURES status=51<READY,DSC,ERROR> error=4<ABORTED>
ad1: FAILURE - SETFEATURES status=51<READY,DSC,ERROR> error=4<ABORTED>
ad1: FAILURE - SETFEATURES status=51<READY,DSC,ERROR> error=4<ABORTED>
GEOM: create disk ad1 dp=0xc236a560
ad1: 3MB <MEMORYSTICK 4M 8K> [247/2/16] at ata1-master BIOSPIO
Mounting root from ufs:/dev/ad0s3a
WARNING: / was not properly dismounted
WARNING: /usr was not properly dismounted
/usr: mount pending error: blocks 2 files 1
WARNING: /usr/local was not properly dismounted
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xfcc0-0xfcff mem 0xfec00000-0xfecfffff,0xfedef000-0xfedeffff irq 9 at device 6.0 on pci0
fxp0: Ethernet address 08:00:46:04:31:b3
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
-------------- next part --------------
/*
  RSD PTR: OEM=SONY, ACPI_Rev=1.0x (0)
	RSDT=0x0bffcb2a, cksum=89
 */
/*
  RSDT: Length=40, Revision=1, Checksum=232,
	OEMID=SONY, OEM Table ID=Z0, OEM Revision=0x20000121,
	Creator ID= LTP, Creator Revision=0x0
	Entries={ 0x0bfff78c }
 */
/*
  FADT:	FACS=0xbffffc0, DSDT=0xbffcb52
	INT_MODEL=PIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0xf2
	PSTATE_CNT=0x0
	PM1a_EVT_BLK=0x8000-0x8003
	PM1a_CNT_BLK=0x8042-0x8043
	PM_TMR_BLK=0x8008-0x800b
	GPE0_BLK=0x800c-0x800f
	P_LVL2_LAT=10 us, P_LVL3_LAT=20 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	IAPC_BOOT_ARCH=
	Flags={WBINVD,SLP_BUTTON}
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=S4BIOS
	Version=0
 */
/*
  DSDT: Length=11322, Revision=1, Checksum=113,
	OEMID=SONY, OEM Table ID=Z0, OEM Revision=0x20000121,
	Creator ID=MSFT, Creator Revision=0x1000007
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20030619
 *
 * Disassembly of /tmp/acpidump.ctT5cC, Thu Dec  4 12:23:46 2003
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "SONY  ", "Z0      ", 536871201)
{
    Scope (_PR)
    {
        Processor (CPU0, 0x00, 0x00008010, 0x06) {}
    }

    Name (_S0, Package (0x02)
    {
        0x05, 
        0x05
    })
    Name (_S1, Package (0x02)
    {
        0x04, 
        0x04
    })
    Name (_S3, Package (0x02)
    {
        0x01, 
        0x01
    })
    Name (_S4, Package (0x02)
    {
        0x00, 
        0x00
    })
    Name (_S5, Package (0x02)
    {
        0x00, 
        0x00
    })
    OperationRegion (GPO, SystemIO, 0x8034, 0x04)
    Field (GPO, DWordAcc, NoLock, Preserve)
    {
        GO00,   1, 
        GO01,   1, 
        GO02,   1, 
        GO03,   1, 
        GO04,   1, 
        GO05,   1, 
        GO06,   1, 
        GO07,   1, 
        GO08,   1, 
        GO09,   1, 
        GO10,   1, 
        GO11,   1, 
        GO12,   1, 
        GO13,   1, 
        GO14,   1, 
        GO15,   1, 
        GO16,   1, 
        GO17,   1, 
        GO18,   1, 
        GO19,   1, 
        GO20,   1, 
        GO21,   1, 
        GO22,   1, 
        GO23,   1, 
        GO24,   1, 
        GO25,   1, 
        GO26,   1, 
        GO27,   1, 
        GO28,   1, 
        GO29,   1, 
        GO30,   1, 
        GO31,   1
    }

    Mutex (MLAT, 0x00)
    Method (GLAT, 0, NotSerialized)
    {
        Acquire (MLAT, 0xFFFF)
        Store (One, GO14)
        Store (Zero, GO14)
        Release (MLAT)
    }

    OperationRegion (GLBL, SystemIO, 0x8028, 0x04)
    Field (GLBL, DWordAcc, NoLock, Preserve)
    {
        Offset (0x03), 
            ,   1, 
        LPOL,   1
    }

    OperationRegion (SMI0, SystemMemory, 0x0BFFFBA7, 0x00000415)
    Field (SMI0, AnyAcc, NoLock, Preserve)
    {
        BCMD,   8, 
        DID,    32, 
        INFO,   4096
    }

    Field (SMI0, AnyAcc, NoLock, Preserve)
    {
        Offset (0x05), 
        INFB,   8
    }

    Field (SMI0, AnyAcc, NoLock, Preserve)
    {
        Offset (0x05), 
        INFD,   32
    }

    Field (SMI0, AnyAcc, NoLock, Preserve)
    {
        Offset (0x05), 
        SXBF,   8320
    }

    OperationRegion (SMI1, SystemIO, 0x00008040, 0x00000002)
    Field (SMI1, AnyAcc, NoLock, Preserve)
    {
        SMIC,   8
    }

    Mutex (MPHS, 0x00)
    Method (PHS0, 1, NotSerialized)
    {
        Store (Arg0, BCMD)
        Store (Zero, SMIC)
        While (LEqual (BCMD, Arg0)) {}
        Store (0x00, BCMD)
    }

    Method (PHS, 1, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (0x00, DID)
        PHS0 (Arg0)
        Store (INFD, Local0)
        Release (MPHS)
        Return (Local0)
    }

    Method (PHSB, 2, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (0x00, DID)
        Store (Arg1, INFB)
        PHS0 (Arg0)
        Store (INFB, Local0)
        Release (MPHS)
        Return (Local0)
    }

    Method (PSCS, 1, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (Arg0, DID)
        PHS0 (0x00)
        Store (INFO, Local0)
        Release (MPHS)
        Return (Local0)
    }

    Method (PSSS, 2, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (Arg0, DID)
        Store (Arg1, INFO)
        PHS0 (0x01)
        Release (MPHS)
    }

    Method (PSPS, 1, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (Arg0, DID)
        PHS0 (0x02)
        Store (INFO, Local0)
        Release (MPHS)
        Return (Local0)
    }

    Method (PSDI, 1, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (Arg0, DID)
        PHS0 (0x03)
        Release (MPHS)
    }

    Method (PSST, 1, Serialized)
    {
        Acquire (MPHS, 0xFFFF)
        Store (Arg0, DID)
        PHS0 (0x04)
        Store (INFB, Local0)
        Release (MPHS)
        Return (Local0)
    }

    Scope (\_GPE)
    {
        Method (_E09, 0, NotSerialized)
        {
            \_SB.PCI0.ISA.EC.SCID ()
        }

        Method (_L0A, 0, NotSerialized)
        {
            Store ("Generated SWI", Debug)
            Notify (\_SB.PCI0, 0x02)
        }

        Name (_PRW, Package (0x02)
        {
            0x0B, 
            0x04
        })
        Method (_L08, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PWRB, 0x02)
        }
    }

    Method (MIN, 2, NotSerialized)
    {
        If (LLess (Arg0, Arg1))
        {
            Return (Arg0)
        }
        Else
        {
            Return (Arg1)
        }
    }

    Method (SLEN, 1, NotSerialized)
    {
        Return (SizeOf (Arg0))
    }

    Method (S2BF, 1, Serialized)
    {
        Add (SLEN (Arg0), One, Local0)
        Name (BUFF, Buffer (Local0) {})
        Store (Arg0, BUFF)
        Return (BUFF)
    }

    Method (SCMP, 2, NotSerialized)
    {
        Store (S2BF (Arg0), Local0)
        Store (S2BF (Arg1), Local1)
        Store (Zero, Local4)
        Store (SLEN (Arg0), Local5)
        Store (SLEN (Arg1), Local6)
        Store (MIN (Local5, Local6), Local7)
        While (LLess (Local4, Local7))
        {
            Store (DerefOf (Index (Local0, Local4)), Local2)
            Store (DerefOf (Index (Local1, Local4)), Local3)
            If (LGreater (Local2, Local3))
            {
                Return (One)
            }
            Else
            {
                If (LLess (Local2, Local3))
                {
                    Return (Ones)
                }
            }

            Increment (Local4)
        }

        If (LLess (Local4, Local5))
        {
            Return (One)
        }
        Else
        {
            If (LLess (Local4, Local6))
            {
                Return (Ones)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_PRW, Package (0x02)
            {
                0x0B, 
                0x04
            })
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            Method (_PS0, 0, NotSerialized)
            {
            }

            Method (_PS3, 0, NotSerialized)
            {
                Store (One, GO11)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_BBN, 0x00)
            Name (_PRT, Package (0x07)
            {
                Package (0x04)
                {
                    0x0007FFFF, 
                    0x03, 
                    LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x00, 
                    LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x00, 
                    LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x00, 
                    LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x00, 
                    LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x01, 
                    LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x00, 
                    LNKA, 
                    0x00
                }
            })
            OperationRegion (REGS, PCI_Config, 0x40, 0xC0)
            Field (REGS, DWordAcc, NoLock, Preserve)
            {
                Offset (0x19), 
                PAM0,   8, 
                PAM1,   8, 
                PAM2,   8, 
                PAM3,   8, 
                PAM4,   8, 
                PAM5,   8, 
                PAM6,   8, 
                DRB0,   8, 
                DRB1,   8, 
                DRB2,   8, 
                DRB3,   8, 
                DRB4,   8, 
                DRB5,   8, 
                DRB6,   8, 
                DRB7,   8, 
                    ,   6, 
                HEN,    2, 
                Offset (0x33), 
                T_EN,   1, 
                T_SZ,   2, 
                Offset (0x3A), 
                CRST,   1
            }

            Name (RSRC, Buffer (0x01D2)
            {
                0x88, 0x0E, 0x00, 0x02, 0x0C, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 
                0x00, 0x87, 0x18, 0x00, 0x00, 0x0C, 0x03, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xFF, 
                0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x02, 0x00, 0x00, 0x87, 0x18, 0x00, 0x00, 
                0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x0C, 0x00, 0xFF, 0x3F, 0x0C, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x87, 
                0x18, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x40, 0x0C, 0x00, 0xFF, 0x7F, 0x0C, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 
                0x00, 0x00, 0x87, 0x18, 0x00, 0x00, 0x0C, 0x03, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0C, 0x00, 
                0xFF, 0xBF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x40, 0x00, 0x00, 0x00, 0x87, 0x18, 0x00, 
                0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0xC0, 0x0C, 0x00, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 
                0x87, 0x18, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0xFF, 0x3F, 
                0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 
                0x00, 0x00, 0x00, 0x87, 0x18, 0x00, 0x00, 0x0C, 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0D, 
                0x00, 0xFF, 0x7F, 0x0D, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x87, 0x18, 
                0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x80, 0x0D, 0x00, 0xFF, 0xBF, 0x0D, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 
                0x00, 0x87, 0x18, 0x00, 0x00, 0x0C, 0x03, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0xC0, 0x0D, 0x00, 0xFF, 
                0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x40, 0x00, 0x00, 0x00, 0x87, 0x18, 0x00, 0x00, 
                0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x0E, 0x00, 0xFF, 0x3F, 0x0E, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x87, 
                0x18, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x40, 0x0E, 0x00, 0xFF, 0x7F, 0x0E, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 
                0x00, 0x00, 0x87, 0x18, 0x00, 0x00, 0x0C, 0x03, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0E, 0x00, 
                0xFF, 0xBF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x40, 0x00, 0x00, 0x00, 0x87, 0x18, 0x00, 
                0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0xC0, 0x0E, 0x00, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 
                0x87, 0x18, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x87, 0x18, 0x00, 0x00, 0x0C, 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x01, 
                0xF8, 0x0C, 0xF8, 0x0C, 0x01, 0x08, 0x88, 0x0E, 
                0x00, 0x01, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 
                0xF7, 0x0C, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x88, 
                0x0E, 0x00, 0x01, 0x0C, 0x03, 0x00, 0x00, 0x00, 
                0x0D, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xF3, 0x00, 
                0x79, 0x00
            })
            Method (_CRS, 0, Serialized)
            {
                Store (Zero, Local1)
                If (T_EN)
                {
                    ShiftLeft (0x01, Add (T_SZ, 0x11), Local1)
                }

                CreateDWordField (RSRC, 0x017A, BTMN)
                CreateDWordField (RSRC, 0x017E, BTMX)
                CreateDWordField (RSRC, 0x0186, BTLN)
                Multiply (DRB7, 0x00800000, Local0)
                If (T_EN)
                {
                    Subtract (Local0, Local1, Local2)
                    Store (Local2, BTMN)
                    Subtract (Add (Local0, 0x10000000), BTMN, BTLN)
                }
                Else
                {
                    Store (Local0, BTMN)
                    Subtract (0xFFE00000, Local0, BTLN)
                    Subtract (Add (BTMN, BTLN), 0x01, BTMX)
                }

                CreateDWordField (RSRC, 0x0195, ATMN)
                CreateDWordField (RSRC, 0x0199, ATMX)
                CreateDWordField (RSRC, 0x01A1, ATLN)
                If (T_EN)
                {
                    Add (Add (BTMN, BTLN), Local1, ATMN)
                    Subtract (0xFFE00000, ATMN, ATLN)
                    Subtract (Add (ATMN, ATLN), 0x01, ATMX)
                }
                Else
                {
                    Store (Zero, ATLN)
                }

                CreateBitField (RSRC, 0x0188, C0RW)
                CreateDWordField (RSRC, 0x36, C0MN)
                CreateDWordField (RSRC, 0x3A, C0MX)
                CreateDWordField (RSRC, 0x42, C0LN)
                Store (One, C0RW)
                If (LEqual (And (PAM1, 0x03), 0x01))
                {
                    Store (Zero, C0RW)
                }

                Store (Zero, C0LN)
                If (LNot (And (PAM1, 0x03)))
                {
                    Store (0x4000, C0LN)
                }

                CreateBitField (RSRC, 0x0260, C4RW)
                CreateDWordField (RSRC, 0x51, C4MN)
                CreateDWordField (RSRC, 0x55, C4MX)
                CreateDWordField (RSRC, 0x5D, C4LN)
                Store (One, C4RW)
                If (LEqual (And (PAM1, 0x30), 0x10))
                {
                    Store (Zero, C4RW)
                }

                Store (Zero, C4LN)
                If (LNot (And (PAM1, 0x30)))
                {
                    Store (0x4000, C4LN)
                }

                CreateBitField (RSRC, 0x0338, C8RW)
                CreateDWordField (RSRC, 0x6C, C8MN)
                CreateDWordField (RSRC, 0x70, C8MX)
                CreateDWordField (RSRC, 0x78, C8LN)
                Store (One, C8RW)
                If (LEqual (And (PAM2, 0x03), 0x01))
                {
                    Store (Zero, C8RW)
                }

                Store (Zero, C8LN)
                If (LNot (And (PAM2, 0x03)))
                {
                    Store (0x4000, C8LN)
                }

                CreateBitField (RSRC, 0x0410, CCRW)
                CreateDWordField (RSRC, 0x87, CCMN)
                CreateDWordField (RSRC, 0x8B, CCMX)
                CreateDWordField (RSRC, 0x93, CCLN)
                Store (One, CCRW)
                If (LEqual (And (PAM2, 0x30), 0x10))
                {
                    Store (Zero, CCRW)
                }

                Store (Zero, CCLN)
                If (LNot (And (PAM2, 0x30)))
                {
                    Store (0x4000, CCLN)
                }

                CreateBitField (RSRC, 0x04E8, D0RW)
                CreateDWordField (RSRC, 0xA2, D0MN)
                CreateDWordField (RSRC, 0xA6, D0MX)
                CreateDWordField (RSRC, 0xAE, D0LN)
                Store (One, D0RW)
                If (LEqual (And (PAM3, 0x03), 0x01))
                {
                    Store (Zero, D0RW)
                }

                Store (Zero, D0LN)
                If (LNot (And (PAM3, 0x03)))
                {
                    Store (0x4000, D0LN)
                }

                CreateBitField (RSRC, 0x05C0, D4RW)
                CreateDWordField (RSRC, 0xBD, D4MN)
                CreateDWordField (RSRC, 0xC1, D4MX)
                CreateDWordField (RSRC, 0xC9, D4LN)
                Store (One, D4RW)
                If (LEqual (And (PAM3, 0x30), 0x10))
                {
                    Store (Zero, D4RW)
                }

                Store (Zero, D4LN)
                If (LNot (And (PAM3, 0x30)))
                {
                    Store (0x4000, D4LN)
                }

                CreateBitField (RSRC, 0x0698, D8RW)
                CreateDWordField (RSRC, 0xD8, D8MN)
                CreateDWordField (RSRC, 0xDC, D8MX)
                CreateDWordField (RSRC, 0xE4, D8LN)
                Store (One, D8RW)
                If (LEqual (And (PAM4, 0x03), 0x01))
                {
                    Store (Zero, D8RW)
                }

                Store (Zero, D8LN)
                If (LNot (And (PAM4, 0x03)))
                {
                    Store (0x4000, D8LN)
                }

                CreateBitField (RSRC, 0x0770, DCRW)
                CreateDWordField (RSRC, 0xF3, DCMN)
                CreateDWordField (RSRC, 0xF7, DCMX)
                CreateDWordField (RSRC, 0xFF, DCLN)
                Store (Zero, DCRW)
                Store (0x4000, DCLN)
                CreateBitField (RSRC, 0x0848, E0RW)
                CreateDWordField (RSRC, 0x010E, E0MN)
                CreateDWordField (RSRC, 0x0112, E0MX)
                CreateDWordField (RSRC, 0x011A, E0LN)
                Store (One, E0RW)
                If (LEqual (And (PAM5, 0x03), 0x01))
                {
                    Store (Zero, E0RW)
                }

                Store (Zero, E0LN)
                If (LNot (And (PAM5, 0x03)))
                {
                    Store (0x4000, E0LN)
                }

                CreateBitField (RSRC, 0x0920, E4RW)
                CreateDWordField (RSRC, 0x0129, E4MN)
                CreateDWordField (RSRC, 0x012D, E4MX)
                CreateDWordField (RSRC, 0x0135, E4LN)
                Store (One, E4RW)
                If (LEqual (And (PAM5, 0x30), 0x10))
                {
                    Store (Zero, E4RW)
                }

                Store (Zero, E4LN)
                If (LNot (And (PAM5, 0x30)))
                {
                    Store (0x4000, E4LN)
                }

                CreateBitField (RSRC, 0x09F8, E8RW)
                CreateDWordField (RSRC, 0x0144, E8MN)
                CreateDWordField (RSRC, 0x0148, E8MX)
                CreateDWordField (RSRC, 0x0150, E8LN)
                Store (One, E8RW)
                If (LEqual (And (PAM6, 0x03), 0x01))
                {
                    Store (Zero, E8RW)
                }

                Store (Zero, E8LN)
                If (LNot (And (PAM6, 0x03)))
                {
                    Store (0x4000, E8LN)
                }

                CreateBitField (RSRC, 0x0AD0, ECRW)
                CreateDWordField (RSRC, 0x015F, ECMN)
                CreateDWordField (RSRC, 0x0163, ECMX)
                CreateDWordField (RSRC, 0x016B, ECLN)
                Store (One, ECRW)
                If (LEqual (And (PAM6, 0x30), 0x10))
                {
                    Store (Zero, ECRW)
                }

                Store (Zero, ECLN)
                If (LNot (And (PAM6, 0x30)))
                {
                    Store (0x4000, ECLN)
                }

                Return (RSRC)
            }

            Device (USB0)
            {
                Name (_ADR, 0x00070002)
                OperationRegion (CFG2, PCI_Config, 0x00, 0x0100)
                Field (CFG2, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x20), 
                    USBB,   16
                }

                Method (_STA, 0, NotSerialized)
                {
                    And (USBB, 0xFFE0, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Name (_PSC, 0x00)
                Method (_PS0, 0, NotSerialized)
                {
                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Noop
                    }
                    Else
                    {
                        If (LEqual (_PSC, 0x03))
                        {
                            PHS (0xF2)
                            Store (0x00, _PSC)
                        }
                    }
                }

                Method (_PS3, 0, NotSerialized)
                {
                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Noop
                    }
                    Else
                    {
                        If (LEqual (_PSC, 0x00))
                        {
                            PHS (0xF1)
                            Store (0x03, _PSC)
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x01
                })
            }

            Device (PWR)
            {
                Name (_ADR, 0x00070003)
                OperationRegion (PCI, PCI_Config, 0x50, 0x28)
                Field (PCI, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x01), 
                        ,   4, 
                    FDCM,   1, 
                        ,   1, 
                    U1M,    1, 
                    Offset (0x02), 
                    U2M,    1, 
                        ,   1, 
                    LPTM,   1, 
                    Offset (0x0C), 
                    MDIE,   1, 
                    MDIA,   2, 
                    SBE,    1, 
                    GME,    1, 
                    SBA,    2, 
                    MSSE,   1, 
                    MSSA,   2, 
                    Offset (0x0F), 
                        ,   1, 
                    AUDM,   1, 
                        ,   2, 
                    KBCM,   1, 
                    G12M,   1, 
                    G13M,   1, 
                    LPTE,   1, 
                    G09A,   16, 
                    G09L,   4, 
                        ,   1, 
                    G09M,   1, 
                    G09E,   1, 
                    Offset (0x13), 
                        ,   1, 
                    LPTA,   2, 
                        ,   1, 
                    FDCA,   1, 
                    FDCE,   1, 
                    KBCE,   1, 
                    GMM,    1, 
                    G10A,   16, 
                    G10L,   4, 
                        ,   1, 
                    G10M,   1, 
                    G10E,   1, 
                    G10C,   1, 
                    U1A,    3, 
                    U1E,    1, 
                    U2A,    3, 
                    U2E,    1, 
                    G12A,   16, 
                    G12L,   4, 
                    G12E,   1, 
                    Offset (0x20), 
                    G13A,   16, 
                    G13L,   4, 
                    G13E,   1
                }
            }

            Device (IDE)
            {
                Name (_ADR, 0x00070001)
                OperationRegion (PCI, PCI_Config, 0x40, 0x10)
                Field (PCI, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x03), 
                        ,   7, 
                    SIDE,   1
                }

                Field (PCI, DWordAcc, NoLock, Preserve)
                {
                    R40,    32, 
                    Offset (0x08), 
                    R48,    32
                }

                Device (PRIM)
                {
                    Name (_ADR, 0x00)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Method (_STM, 2, NotSerialized)
                    {
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (PHSB (0xE3, 0x00))
                        }

                        Name (_PSC, 0x00)
                    }
                }

                Device (SECN)
                {
                    Name (_ADR, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Method (_STM, 2, NotSerialized)
                    {
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                Return (PHSB (0xE3, 0x01))
                            }
                        }

                        Name (_PSC, 0x00)
                    }
                }

                Name (_PSC, 0x00)
                Name (IDET, 0x00)
                Name (UDMA, 0x00)
                Method (_PS0, 0, NotSerialized)
                {
                    If (LEqual (_PSC, 0x03))
                    {
                        Store (IDET, R40)
                        Store (UDMA, R48)
                        PHS (0xF0)
                        If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero)) {}
                        Else
                        {
                            PHS (0xF9)
                        }
                    }

                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Store (\_SB.PCI0.ISA.SIDE, Local0)
                        Or (Local0, 0x1000, \_SB.PCI0.ISA.SIDE)
                    }

                    Store (0x00, _PSC)
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (R40, IDET)
                    Store (R48, UDMA)
                    Store (0x03, _PSC)
                }
            }

            Device (VID0)
            {
                Name (_ADR, 0x00080000)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }
            }

            Device (AUD0)
            {
                Name (_ADR, 0x00080001)
                Name (_STA, 0x0F)
                Name (_PSC, 0x00)
                Method (_PS0, 0, NotSerialized)
                {
                    Store (Zero, GO11)
                    Store (0x00, _PSC)
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (One, GO11)
                    Store (0x03, _PSC)
                }
            }

            Device (SD94)
            {
                Name (_ADR, 0x00090000)
                Name (_STA, 0x0F)
                OperationRegion (SPCI, PCI_Config, 0x00, 0x0100)
                Field (SPCI, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x04), 
                    COMD,   8, 
                    Offset (0x0C), 
                    CALS,   8, 
                    LATI,   8, 
                    Offset (0x10), 
                    MADR,   32, 
                    Offset (0x2C), 
                    SSID,   32, 
                    Offset (0x3C), 
                    IRQN,   8, 
                    Offset (0x4C), 
                    ESID,   8, 
                    Offset (0xE0), 
                    PWST,   8
                }

                Name (SSAV, Package (0x03) {})
                Name (_PSC, 0x00)
                Method (_PS0, 0, NotSerialized)
                {
                    Store (0x01, ESID)
                    Store (0x8054104D, SSID)
                    Store (0x00, ESID)
                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero)) {}
                    Else
                    {
                        Store (0x00, PWST)
                        Sleep (0x01)
                        Store (0x08, CALS)
                        Store (0x40, LATI)
                        If (LEqual (_PSC, 0x03))
                        {
                            Store (DerefOf (Index (SSAV, 0x00)), COMD)
                            Store (DerefOf (Index (SSAV, 0x01)), MADR)
                            Store (DerefOf (Index (SSAV, 0x02)), IRQN)
                        }
                    }

                    Store (0x00, _PSC)
                }

                Method (_PS3, 0, NotSerialized)
                {
                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero)) {}
                    Else
                    {
                        If (LEqual (_PSC, 0x00))
                        {
                            Store (COMD, Index (SSAV, 0x00))
                            Store (MADR, Index (SSAV, 0x01))
                            Store (IRQN, Index (SSAV, 0x02))
                        }
                    }

                    Store (0x03, _PSC)
                }
            }

            Device (CRD0)
            {
                Name (_ADR, 0x000A0000)
                Name (_PRW, Package (0x02)
                {
                    0x0A, 
                    0x03
                })
                OperationRegion (CCRD, PCI_Config, 0x00, 0xE4)
                Field (CCRD, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x04), 
                    CD04,   32, 
                    Offset (0x3E), 
                    CD3E,   32, 
                    Offset (0x44), 
                    CD44,   32, 
                    Offset (0x82), 
                    CD82,   8, 
                    Offset (0xE0), 
                    CDE0,   8, 
                    CDE1,   8
                }

                OperationRegion (EXCA, SystemIO, 0x03E0, 0x02)
                Field (EXCA, ByteAcc, NoLock, Preserve)
                {
                    INDX,   8, 
                    DATA,   8
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x03), 
                        ,   7, 
                    ERIB,   1
                }

                Method (_INI, 0, NotSerialized)
                {
                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Noop
                    }
                    Else
                    {
                        Store (Zero, CDE0)
                        Store (Zero, CD04)
                        Store (Zero, CD3E)
                        Store (One, CD44)
                    }
                }

                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Name (_PSC, 0x00)
                Method (PSX, 1, NotSerialized)
                {
                    Store (0x00, CDE0)
                    Store (0x03E0, CD44)
                    Store (One, ERIB)
                    Store (0x00, CD44)
                    Store (Arg0, CDE0)
                    Store (Arg0, _PSC)
                }

                Method (_PS0, 0, NotSerialized)
                {
                    Store (0x00, _PSC)
                }

                Method (_PS1, 0, NotSerialized)
                {
                    PSX (0x01)
                    Or (CDE1, 0x01, CDE1)
                }

                Method (_PS2, 0, NotSerialized)
                {
                    PSX (0x02)
                    Or (CDE1, 0x01, CDE1)
                }

                Method (_PS3, 0, NotSerialized)
                {
                    PSX (0x03)
                    Or (CDE1, 0x01, CDE1)
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x00, GO03)
                    }
                    Else
                    {
                        Store (0x01, GO03)
                    }

                    GLAT ()
                }
            }

            Device (MODE)
            {
                Name (_ADR, 0x000B0000)
                Name (_STA, 0x0F)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Return (Package (0x02)
                        {
                            0x0A, 
                            0x03
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            0x0A, 
                            0x04
                        })
                    }
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x0A, 
                0x04
            })
            Device (ISA)
            {
                Name (_ADR, 0x00070000)
                OperationRegion (PIRX, PCI_Config, 0x60, 0x04)
                Field (PIRX, ByteAcc, NoLock, Preserve)
                {
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8
                }

                OperationRegion (GCFG, PCI_Config, 0xB0, 0x04)
                Field (GCFG, DWordAcc, NoLock, Preserve)
                {
                    SIDE,   32
                }

                Device (MOTH)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_CRS, Buffer (0x32)
                    {
                        0x47, 0x01, 0x80, 0x00, 0x80, 0x00, 0x01, 0x01, 
                        0x47, 0x01, 0xB2, 0x00, 0xB2, 0x00, 0x01, 0x02, 
                        0x47, 0x01, 0xD0, 0x04, 0xD0, 0x04, 0x01, 0x02, 
                        0x47, 0x01, 0x80, 0x21, 0x80, 0x21, 0x01, 0x10, 
                        0x47, 0x01, 0x00, 0x80, 0x00, 0x80, 0x01, 0x50, 
                        0x47, 0x01, 0x72, 0x00, 0x72, 0x00, 0x01, 0x02, 
                        0x79, 0x00
                    })
                }

                Device (MEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (MSRC, Buffer (0x3E)
                    {
                        0x86, 0x09, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 
                        0x00, 0x00, 0x00, 0x00, 0x86, 0x09, 0x00, 0x01, 
                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 
                        0x86, 0x09, 0x00, 0x00, 0x00, 0xC0, 0x0D, 0x00, 
                        0x00, 0x40, 0x00, 0x00, 0x86, 0x09, 0x00, 0x00, 
                        0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 
                        0x86, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 
                        0x00, 0x00, 0x08, 0x00, 0x79, 0x00
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (MSRC, 0x08, MEMS)
                        If (LNot (MEMS))
                        {
                            Store (PHS (0xEF), MEMS)
                        }

                        Return (MSRC)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, Buffer (0x1D)
                    {
                        0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 
                        0x47, 0x01, 0x81, 0x00, 0x81, 0x00, 0x01, 0x0F, 
                        0x47, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x01, 0x20, 
                        0x2A, 0x10, 0x00, 0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, Buffer (0x0D)
                    {
                        0x47, 0x01, 0x70, 0x00, 0x70, 0x00, 0x01, 0x02, 
                        0x22, 0x00, 0x01, 0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, Buffer (0x15)
                    {
                        0x47, 0x01, 0x20, 0x00, 0x20, 0x00, 0x01, 0x02, 
                        0x47, 0x01, 0xA0, 0x00, 0xA0, 0x00, 0x01, 0x02, 
                        0x22, 0x04, 0x00, 0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (FPU)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, Buffer (0x0D)
                    {
                        0x47, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0x01, 0x10, 
                        0x22, 0x00, 0x20, 0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, Buffer (0x0D)
                    {
                        0x47, 0x01, 0x40, 0x00, 0x40, 0x00, 0x01, 0x04, 
                        0x22, 0x01, 0x00, 0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, Buffer (0x0A)
                    {
                        0x47, 0x01, 0x61, 0x00, 0x61, 0x00, 0x01, 0x01, 
                        0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (KBC)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, Buffer (0x15)
                    {
                        0x47, 0x01, 0x60, 0x00, 0x60, 0x00, 0x01, 0x01, 
                        0x47, 0x01, 0x64, 0x00, 0x64, 0x00, 0x01, 0x01, 
                        0x22, 0x02, 0x00, 0x79, 0x00
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (MOUE)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Name (_CRS, Buffer (0x05)
                    {
                        0x22, 0x00, 0x10, 0x79, 0x00
                    })
                }

                Device (EC)
                {
                    Name (_HID, EisaId ("PNP0A05"))
                    OperationRegion (SMC1, SystemIO, 0x0370, 0x02)
                    Field (SMC1, ByteAcc, NoLock, Preserve)
                    {
                        INDX,   8, 
                        DATA,   8
                    }

                    IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x02), 
                        CFG,    8, 
                        Offset (0x07), 
                        LDN,    8, 
                        Offset (0x22), 
                        PCFD,   1, 
                            ,   2, 
                        PCPP,   1, 
                        PCU1,   1, 
                        PCU2,   1, 
                        Offset (0x23), 
                        Offset (0x30), 
                        ACTR,   8, 
                        Offset (0x60), 
                        IOAH,   8, 
                        IOAL,   8, 
                        FIRH,   8, 
                        FIRL,   8, 
                        Offset (0x70), 
                        INTR,   8, 
                        INT1,   8, 
                        Offset (0x74), 
                        DMCH,   8, 
                        Offset (0xC0), 
                        GP40,   8, 
                        Offset (0xF0), 
                        OPT1,   8, 
                        OPT2,   8, 
                        OPT3,   8
                    }

                    Mutex (MUIO, 0x00)
                    Method (ENFG, 0, NotSerialized)
                    {
                        Acquire (MUIO, 0xFFFF)
                        Store (0x55, INDX)
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        Store (0xAA, INDX)
                        Release (MUIO)
                    }

                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x04
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        OperationRegion (GPO, SystemIO, 0x800E, 0x02)
                        Field (GPO, ByteAcc, NoLock, Preserve)
                        {
                                ,   10, 
                            RIEN,   1
                        }

                        Store (Arg0, RIEN)
                    }

                    Method (RDMB, 1, NotSerialized)
                    {
                        ENFG ()
                        Store (0x07, LDN)
                        Store (Arg0, INDX)
                        Store (DATA, Local0)
                        EXFG ()
                        Return (Local0)
                    }

                    Method (WRMB, 2, NotSerialized)
                    {
                        ENFG ()
                        Store (0x07, LDN)
                        Store (Arg0, INDX)
                        Store (Arg1, DATA)
                        EXFG ()
                    }

                    Method (WIBE, 0, NotSerialized)
                    {
                        While (RDMB (0x82)) {}
                    }

                    Method (WOBF, 0, NotSerialized)
                    {
                        Store (Zero, Local0)
                        While (LNot (Local0))
                        {
                            And (RDMB (0x86), 0x02, Local0)
                        }
                    }

                    Mutex (MSCI, 0x00)
                    Method (SCID, 0, NotSerialized)
                    {
                        Store ("SCI generated", Debug)
                        Store (Ones, Local7)
                        While (Local7)
                        {
                            And (RDMB (0x86), 0x01, Local0)
                            If (Local0)
                            {
                                Acquire (MSCI, 0xFFFF)
                                WIBE ()
                                WRMB (0x82, 0x84)
                                WOBF ()
                                Store (RDMB (0x83), Local0)
                                Store (RDMB (0x86), Local1)
                                And (Local1, 0xFD, Local1)
                                WRMB (0x86, Local1)
                                Release (MSCI)
                                Store (Local0, Debug)
                                QREC (Local0)
                            }
                            Else
                            {
                                Store (Zero, Local7)
                            }
                        }
                    }

                    Name (LCDT, Ones)
                    Name (LID, One)
                    Method (QREC, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x51))
                        {
                            Notify (\_SB.PCI0.ISA.SNC, 0xA0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x53))
                            {
                                Notify (\_SB.PCI0.ISA.SNC, 0xAC)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x54))
                                {
                                    EXCD (0x20)
                                    Notify (\_SB.PCI0.ISA.SNC, 0xA2)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x55))
                                    {
                                        EXCD (0x1F)
                                        Notify (\_SB.PCI0.ISA.SNC, 0xA3)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x56))
                                        {
                                            Notify (\_SB.PCI0.ISA.SNC, 0xB3)
                                        }
                                        Else
                                        {
                                            If (LEqual (Arg0, 0x57))
                                            {
                                                Store (RDMB (0x8E), Local0)
                                                Store (RDMB (0x8F), Local1)
                                                WRMB (0x8F, Local0)
                                                XOr (Local0, Local1, Local2)
                                                If (And (Local2, 0x01))
                                                {
                                                    Notify (BAT1, 0x81)
                                                }

                                                If (And (Local2, 0x20))
                                                {
                                                    Notify (ACAD, 0x80)
                                                    Notify (\_SB.PCI0.ISA.SNC, 0xBA)
                                                }

                                                If (And (Local2, 0x80))
                                                {
                                                    If (And (Local0, 0x80))
                                                    {
                                                        Notify (\_SB.PCI0.ISA.SNC, 0xB7)
                                                        Store (Zero, LID)
                                                    }
                                                    Else
                                                    {
                                                        Notify (\_SB.PCI0.ISA.SNC, 0xB9)
                                                        Store (One, LID)
                                                    }
                                                }
                                            }
                                            Else
                                            {
                                                If (LEqual (Arg0, 0x58))
                                                {
                                                    EXCD (0x1F)
                                                    Notify (\_SB.PCI0.ISA.SNC, 0xA4)
                                                }
                                                Else
                                                {
                                                    If (LEqual (Arg0, 0x59))
                                                    {
                                                        EXCD (0x1F)
                                                        Notify (\_SB.PCI0.ISA.SNC, 0xA5)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (Arg0, 0x5A))
                                                        {
                                                            If (LEqual (LCDT, Ones))
                                                            {
                                                                Store (PHSB (0xEE, 0x00), LCDT)
                                                            }

                                                            If (LEqual (LCDT, 0x00))
                                                            {
                                                                EXCD (0x1F)
                                                                Notify (\_SB.PCI0.ISA.SNC, 0xA6)
                                                            }
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (Arg0, 0x5B))
                                                            {
                                                                Notify (\_SB.PCI0.ISA.SNC, 0xB6)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (Arg0, 0x5F))
                                                                {
                                                                    Notify (\_SB.PCI0.ISA.SNC, 0xAD)
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (Arg0, 0x61))
                                                                    {
                                                                        Notify (\_SB.PCI0.ISA.SNC, 0xB1)
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (Arg0, 0x64))
                                                                        {
                                                                            Notify (\_SB.PCI0.ISA.SNC, 0xB0)
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (Arg0, 0x65))
                                                                            {
                                                                                EXCD (0x21)
                                                                                Notify (\_SB.PCI0.ISA.SNC, 0xB4)
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (Arg0, 0x66))
                                                                                {
                                                                                    EXCD (0x21)
                                                                                    Notify (\_SB.PCI0.ISA.SNC, 0xB5)
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (Arg0, 0x67)) {}
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (Arg0, 0x68))
                                                                                        {
                                                                                            Notify (\_SB.PCI0.ISA.SNC, 0xB8)
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (Arg0, 0x76))
                                                                                            {
                                                                                                Store (Zero, \_SB.PCI0.ISA.SNC.PPST)
                                                                                                Notify (\_SB.PWRB, 0x80)
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (Arg0, 0x78))
                                                                                                {
                                                                                                    Notify (\_SB.PCI0.ISA.SNC, 0x90)
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (Arg0, 0x79))
                                                                                                    {
                                                                                                        EXCD (0x20)
                                                                                                        Notify (\_SB.PCI0.ISA.SNC, 0xBB)
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        If (LEqual (Arg0, 0x80))
                                                                                                        {
                                                                                                            Notify (\_TZ.ATF0, 0x80)
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (Arg0, 0x81))
                                                                                                            {
                                                                                                                Notify (\_TZ.ATF0, 0x81)
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                Add (Arg0, 0x30, Local0)
                                                                                                                PHS (Local0)
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    Mutex (MEEC, 0x00)
                    Method (EXCD, 1, NotSerialized)
                    {
                        Store ("Notify State to EC", Debug)
                        Acquire (MEEC, 0xFFFF)
                        WIBE ()
                        WRMB (0x84, Arg0)
                        WRMB (0x82, 0x87)
                        WOBF ()
                        And (RDMB (0x86), 0xFD, Local0)
                        WRMB (0x86, Local0)
                        Release (MEEC)
                    }

                    Method (EXRD, 1, NotSerialized)
                    {
                        Store ("extended command to EC", Debug)
                        Acquire (MEEC, 0xFFFF)
                        WIBE ()
                        WRMB (0x84, Arg0)
                        WRMB (0x82, 0x87)
                        WOBF ()
                        Add (Multiply (RDMB (0x84), 0x0100, Local0), Store (RDMB (0x83), Local1), Local2)
                        And (RDMB (0x86), 0xFD, Local0)
                        WRMB (0x86, Local0)
                        Release (MEEC)
                        Return (Local2)
                    }

                    Method (EXWT, 2, NotSerialized)
                    {
                        Store ("extended write command to EC", Debug)
                        Acquire (MEEC, 0xFFFF)
                        WIBE ()
                        WRMB (0x84, Arg0)
                        WRMB (0x85, Arg1)
                        WRMB (0x82, 0x87)
                        WOBF ()
                        And (RDMB (0x86), 0xFD, Local0)
                        WRMB (0x86, Local0)
                        Release (MEEC)
                    }

                    Method (PPK, 0, NotSerialized)
                    {
                        Store ("PPK_STATUS", Debug)
                        Store (RDMB (0x8C), Local1)
                        If (LEqual (And (Local1, 0x02, Local0), 0x02))
                        {
                            Store (One, Local0)
                        }
                        Else
                        {
                            If (LEqual (And (Local1, 0x04, Local0), 0x04))
                            {
                                Store (0x02, Local0)
                            }
                            Else
                            {
                                If (LEqual (And (Local1, 0x08, Local0), 0x08))
                                {
                                    Store (0x03, Local0)
                                }
                                Else
                                {
                                    If (LEqual (And (Local1, 0x20, Local0), 0x20))
                                    {
                                        Store (0x10, Local0)
                                    }
                                    Else
                                    {
                                        Store (Zero, Local0)
                                    }
                                }
                            }
                        }

                        Return (Local0)
                    }

                    Device (BAT1)
                    {
                        Name (_HID, EisaId ("PNP0C0A"))
                        Name (_UID, 0x01)
                        Name (_PCL, Package (0x01)
                        {
                            \_SB
                        })
                        Name (BATI, Package (0x0D)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x00, 
                            0x39D0, 
                            0x00, 
                            0x78, 
                            0x00, 
                            0x0A, 
                            "", 
                            "", 
                            "LION", 
                            "Sony Corp."
                        })
                        Name (BATS, Package (0x04)
                        {
                            0x02, 
                            0xFFFFFFFF, 
                            0x0D7A, 
                            0x3840
                        })
                        Method (_STA, 0, NotSerialized)
                        {
                            Store ("BAT1 _STA", Debug)
                            If (And (RDMB (0x8F), 0x01))
                            {
                                Store (0x0F, Local0)
                            }
                            Else
                            {
                                Store (0x1F, Local0)
                            }

                            Store (Local0, Debug)
                            Return (Local0)
                        }

                        Method (_BIF, 0, NotSerialized)
                        {
                            Store ("BAT1 _BIF", Debug)
                            If (And (RDMB (0x8F), 0x01)) {}
                            Else
                            {
                                Multiply (EXRD (0x31), 0x0A, Local0)
                                Store (Local0, Index (BATI, 0x01))
                                Store (Local0, Index (BATI, 0x02))
                            }

                            Return (BATI)
                        }

                        Method (_BST, 0, NotSerialized)
                        {
                            Store ("BAT1 _BST", Debug)
                            Store (EXRD (0x0C), Index (BATS, 0x00))
                            Store (EXRD (0x0D), Index (BATS, 0x01))
                            Multiply (EXRD (0x0E), 0x0A, Index (BATS, 0x02))
                            Store (EXRD (0x0F), Index (BATS, 0x03))
                            Return (BATS)
                        }
                    }

                    Device (ACAD)
                    {
                        Name (_HID, "ACPI0003")
                        Name (_PCL, Package (0x01)
                        {
                            \_SB
                        })
                        Method (_PSR, 0, NotSerialized)
                        {
                            Store (RDMB (0x8F), Local0)
                            If (And (Local0, 0x20))
                            {
                                Return (0x00)
                            }

                            Return (0x01)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }
                    }
                }

                Device (COMA)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, 0x01)
                    Name (MCD, 0x10)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PSCS (0x10))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSSS (0x10, Arg0)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PSPS (0x10))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        PSDI (0x10)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (PSST (0x10))
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (One, GO30)
                        Store (0x00, _PSC)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x03, _PSC)
                    }

                    Name (_PSC, 0x00)
                }

                Device (FIR)
                {
                    Name (_HID, EisaId ("SMCF010"))
                    Name (_CID, 0x1005D041)
                    Name (_UID, 0x02)
                    Name (MCD, 0x13)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PSCS (0x13))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSSS (0x13, Arg0)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PSPS (0x13))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        PSDI (0x13)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (PSST (0x13))
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        \_SB.PCI0.ISA.EC.EXWT (0x2A, One)
                        Store (0x00, _PSC)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        \_SB.PCI0.ISA.EC.EXWT (0x2A, Zero)
                        Store (0x03, _PSC)
                    }

                    Name (_PSC, 0x00)
                }

                Device (LPTA)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Name (_UID, 0x01)
                    Name (MCD, 0x0D)
                    Method (B_CR, 0, NotSerialized)
                    {
                        Return (PSCS (0x0D))
                    }

                    Method (B_SR, 1, NotSerialized)
                    {
                        PSSS (0x0D, Arg0)
                    }

                    Method (B_PR, 0, NotSerialized)
                    {
                        Return (PSPS (0x0D))
                    }

                    Method (B_DI, 0, NotSerialized)
                    {
                        PSDI (0x0D)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (PSST (0x0D))
                    }

                    Name (_PSC, 0x00)
                }

                Device (LPTB)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Name (_UID, 0x02)
                    Name (MCD, 0x0E)
                    Method (B_CR, 0, NotSerialized)
                    {
                        Return (PSCS (0x0E))
                    }

                    Method (B_SR, 1, NotSerialized)
                    {
                        PSSS (0x0E, Arg0)
                    }

                    Method (B_PR, 0, NotSerialized)
                    {
                        Return (PSPS (0x0E))
                    }

                    Method (B_DI, 0, NotSerialized)
                    {
                        PSDI (0x0E)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (PSST (0x0E))
                    }

                    Name (_PSC, 0x00)
                }

                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Name (MCD, 0x0F)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PSCS (0x0F))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSSS (0x0F, Arg0)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PSPS (0x0F))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        PSDI (0x0F)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (PSST (0x0F))
                    }

                    Name (_PSC, 0x00)
                }

                Device (FDC)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Name (MCD, 0x0C)
                    Method (B_CR, 0, NotSerialized)
                    {
                        Return (PSCS (0x0C))
                    }

                    Method (B_SR, 1, NotSerialized)
                    {
                        PSSS (0x0C, Arg0)
                    }

                    Method (B_PR, 0, NotSerialized)
                    {
                        Return (PSPS (0x0C))
                    }

                    Method (B_DI, 0, NotSerialized)
                    {
                        PSDI (0x0C)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (PSST (0x0C))
                    }

                    Name (_PSC, 0x00)
                }

                Device (SNC)
                {
                    Name (_HID, EisaId ("SNY5001"))
                    Name (PPST, 0x00)
                    Method (PWAK, 0, NotSerialized)
                    {
                        Store (\_SB.PCI0.ISA.EC.PPK (), Local0)
                        Store (Local0, PPST)
                        \_SB.PCI0.ISA.EC.EXCD (0x1C)
                        Return (PPST)
                    }

                    Method (STCS, 1, NotSerialized)
                    {
                        \_SB.PCI0.ISA.EC.EXWT (0x0B, Arg0)
                        Notify (\_TZ.ATF0, 0x81)
                    }

                    Method (GBRT, 0, NotSerialized)
                    {
                        Return (PHSB (0xE6, 0x00))
                    }

                    Method (SBRT, 1, NotSerialized)
                    {
                        Store (PHSB (0xE7, Arg0), Local0)
                        \_SB.PCI0.ISA.EC.EXWT (0x24, Local0)
                    }

                    Method (SPBR, 1, NotSerialized)
                    {
                        PHSB (0xE8, Arg0)
                    }

                    Method (GCTR, 0, NotSerialized)
                    {
                        Return (PHSB (0xE9, 0x00))
                    }

                    Method (SCTR, 1, NotSerialized)
                    {
                        Store (PHSB (0xEA, Arg0), Local0)
                        \_SB.PCI0.ISA.EC.EXWT (0x23, Local0)
                    }

                    Method (SPCR, 1, NotSerialized)
                    {
                        PHSB (0xEB, Arg0)
                    }

                    Method (GMGB, 0, NotSerialized)
                    {
                        PHS (0xF3)
                        Return (INFB)
                    }

                    Method (CMGB, 1, NotSerialized)
                    {
                        If (Arg0)
                        {
                            Store (Zero, GO23)
                        }
                        Else
                        {
                            Store (One, GO23)
                        }
                    }

                    Method (SMGB, 1, NotSerialized)
                    {
                        Store (Arg0, INFB)
                        PHS (0xF4)
                    }

                    Method (GPKC, 0, NotSerialized)
                    {
                        PHS (0xF5)
                        Return (INFB)
                    }

                    Method (SPKC, 1, NotSerialized)
                    {
                        Store (Arg0, INFB)
                        PHS (0xF6)
                        \_SB.PCI0.ISA.EC.EXWT (0x25, Arg0)
                        \_SB.PCI0.ISA.EC.EXCD (0x1C)
                    }

                    Method (GPLR, 0, NotSerialized)
                    {
                        PHS (0xF7)
                        Return (INFB)
                    }

                    Method (SPLR, 1, NotSerialized)
                    {
                        Store (Arg0, INFB)
                        PHS (0xF8)
                        \_SB.PCI0.ISA.EC.EXWT (0x26, Arg0)
                        \_SB.PCI0.ISA.EC.EXCD (0x1C)
                    }

                    Method (GILS, 0, NotSerialized)
                    {
                        Return (\_SB.PCI0.ISA.EC.EXRD (0x28))
                    }

                    Method (SILS, 1, NotSerialized)
                    {
                        \_SB.PCI0.ISA.EC.EXWT (0x27, Arg0)
                    }

                    Method (GLID, 0, NotSerialized)
                    {
                        Return (\_SB.PCI0.ISA.EC.LID)
                    }

                    Method (SLBH, 1, NotSerialized)
                    {
                        \_SB.PCI0.ISA.EC.EXWT (0x2B, Arg0)
                    }

                    Method (PWRN, 0, NotSerialized)
                    {
                        Notify (\_SB.PWRB, 0x80)
                    }

                    Method (CSXB, 1, NotSerialized)
                    {
                        Acquire (MPHS, 0xFFFF)
                        Store (Arg0, SXBF)
                        PHS0 (0xFA)
                        Store (SXBF, Local0)
                        Release (MPHS)
                        Return (Local0)
                    }
                }
            }
        }
    }

    Scope (\_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00)) {}
            If (LEqual (Arg0, 0x01)) {}
            If (LEqual (Arg0, 0x02)) {}
            If (LEqual (Arg0, 0x03)) {}
            If (LEqual (Arg0, 0x04)) {}
            If (LEqual (Arg0, 0x05)) {}
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        If (LEqual (SCMP (\_OS, "Microsoft Windows"), Zero))
        {
            Notify (\_SB.PWRB, 0x02)
        }

        Return (Zero)
    }

    Scope (\_TZ)
    {
        Method (KELV, 1, NotSerialized)
        {
            Store ("Converted Kelvin", Debug)
            Store (Arg0, Local0)
            Multiply (Local0, 0x0A, Local0)
            Add (Local0, 0x0AAB, Local0)
            Return (Local0)
        }

        ThermalZone (ATF0)
        {
            Method (_TMP, 0, NotSerialized)
            {
                Store ("Get ATF0 Tempareture", Debug)
                Return (KELV (\_SB.PCI0.ISA.EC.EXRD (0x02)))
            }

            Method (_PSV, 0, NotSerialized)
            {
                Store ("Get ATF0 Passive Trip point", Debug)
                Return (KELV (\_SB.PCI0.ISA.EC.EXRD (0x18)))
            }

            Name (_PSL, Package (0x01)
            {
                \_PR.CPU0
            })
            Method (_CRT, 0, NotSerialized)
            {
                Store ("Get ATF0 Critical Trip point", Debug)
                Return (KELV (\_SB.PCI0.ISA.EC.EXRD (0x19)))
            }

            Method (_SCP, 1, NotSerialized)
            {
                \_SB.PCI0.ISA.EC.EXWT (0x0B, Arg0)
            }

            Name (_TC1, 0x01)
            Name (_TC2, 0x01)
            Name (_TSP, 0x64)
        }
    }

    Scope (_SB)
    {
        Name (IRQP, Package (0x10)
        {
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x0200, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00, 
            0x00
        })
        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x01)
            Name (_PRS, Buffer (0x06)
            {
                0x23, 0x00, 0x02, 0x18, 0x79, 0x00
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.ISA.PIRA, 0x80, \_SB.PCI0.ISA.PIRA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUFA, Buffer (0x06)
                {
                    0x23, 0x00, 0x00, 0x18, 0x79, 0x00
                })
                CreateWordField (BUFA, 0x01, IRA1)
                And (\_SB.PCI0.ISA.PIRA, 0x8F, Local0)
                If (LLess (Local0, 0x80))
                {
                    And (Local0, 0x0F, Local0)
                    Store (DerefOf (Index (IRQP, Local0)), Local4)
                    Store (Local4, IRA1)
                }

                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRA1)
                Store (IRA1, Local0)
                Store (Match (IRQP, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                And (\_SB.PCI0.ISA.PIRA, 0x70, Local0)
                Or (Local1, Local0, \_SB.PCI0.ISA.PIRA)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (LEqual (\_SB.PCI0.ISA.PIRA, 0x80))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Name (_PRS, Buffer (0x06)
            {
                0x23, 0x00, 0x02, 0x18, 0x79, 0x00
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.ISA.PIRB, 0x80, \_SB.PCI0.ISA.PIRB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUFA, Buffer (0x06)
                {
                    0x23, 0x00, 0x00, 0x18, 0x79, 0x00
                })
                CreateWordField (BUFA, 0x01, IRA1)
                And (\_SB.PCI0.ISA.PIRB, 0x8F, Local0)
                If (LLess (Local0, 0x80))
                {
                    And (Local0, 0x0F, Local0)
                    Store (DerefOf (Index (IRQP, Local0)), Local4)
                    Store (Local4, IRA1)
                }

                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRA1)
                Store (IRA1, Local0)
                Store (Match (IRQP, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                And (\_SB.PCI0.ISA.PIRB, 0x70, Local0)
                Or (Local1, Local0, \_SB.PCI0.ISA.PIRB)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (LEqual (\_SB.PCI0.ISA.PIRB, 0x80))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Name (_PRS, Buffer (0x06)
            {
                0x23, 0x00, 0x02, 0x18, 0x79, 0x00
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.ISA.PIRC, 0x80, \_SB.PCI0.ISA.PIRC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUFA, Buffer (0x06)
                {
                    0x23, 0x00, 0x00, 0x18, 0x79, 0x00
                })
                CreateWordField (BUFA, 0x01, IRA1)
                And (\_SB.PCI0.ISA.PIRC, 0x8F, Local0)
                If (LLess (Local0, 0x80))
                {
                    And (Local0, 0x0F, Local0)
                    Store (DerefOf (Index (IRQP, Local0)), Local4)
                    Store (Local4, IRA1)
                }

                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRA1)
                Store (IRA1, Local0)
                Store (Match (IRQP, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                And (\_SB.PCI0.ISA.PIRC, 0x70, Local0)
                Or (Local1, Local0, \_SB.PCI0.ISA.PIRC)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (LEqual (\_SB.PCI0.ISA.PIRC, 0x80))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Name (_PRS, Buffer (0x06)
            {
                0x23, 0x00, 0x02, 0x18, 0x79, 0x00
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.ISA.PIRD, 0x80, \_SB.PCI0.ISA.PIRD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUFA, Buffer (0x06)
                {
                    0x23, 0x00, 0x00, 0x18, 0x79, 0x00
                })
                CreateWordField (BUFA, 0x01, IRA1)
                And (\_SB.PCI0.ISA.PIRD, 0x8F, Local0)
                If (LLess (Local0, 0x80))
                {
                    And (Local0, 0x0F, Local0)
                    Store (DerefOf (Index (IRQP, Local0)), Local4)
                    Store (Local4, IRA1)
                }

                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRA1)
                Store (IRA1, Local0)
                Store (Match (IRQP, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                And (\_SB.PCI0.ISA.PIRD, 0x70, Local0)
                Or (Local1, Local0, \_SB.PCI0.ISA.PIRD)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (LEqual (\_SB.PCI0.ISA.PIRD, 0x80))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }
        }
    }
}



More information about the freebsd-mobile mailing list