public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* AE_BAD_HEX_CONSTANT
@ 2004-11-09 19:33 Paulo da Silva
       [not found] ` <20041109193331.930.qmail-0Htg24VVpk2A/QwVtaZbd3CJp6faPEW9@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Paulo da Silva @ 2004-11-09 19:33 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

[-- Attachment #1: Type: text/plain, Size: 752 bytes --]

Hello,

 I am having a few problems with the battery
information with my Acer Aspire 1613Lmi.
 I get the following error :
kernel:  psparse-1133: *** Error: Method execution
failed [\_SB_.PCI0.LPC0.EC__.GBIF] (Node dfe6e480),
AE_BAD_HEX_CONSTANT
kernel:  psparse-1133: *** Error: Method execution
failed [\_SB_.PCI0.LPC0.EC__.BAT0._BIF] (Node
dfe6de00), AE_BAD_HEX_CONSTANT

I tracked down to the lines in the ASL code. I've
attached part of the DSDT containing this lines. The
part that gives the problem is pointed out. 

The whole DSDT can be seen at :
http://cern.ch/paulo/dsdt.dsl.orig

Thanks in advance for any help.

Regards,
Paulo


		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: battery.dsl --]
[-- Type: text/x-dsl; name="battery.dsl", Size: 8152 bytes --]

                    Mutex (BATM, 0x07)
                    Method (GBIF, 2, NotSerialized)
                    {
                        Acquire (BATM, 0xFFFF)
/* Problems start here - If commented out the error goes away, but I can't get no information from the battery*/
                        Store (0x0FA0, Index (Arg1, 0x01))
                        Store (0x0FA0, Index (Arg1, 0x02))
                        Store (0x39D0, Index (Arg1, 0x04))
                        Store (0x0190, Index (Arg1, 0x05))
                        Store (0x78, Index (Arg1, 0x06))
                        Store (0x0118, Index (Arg1, 0x07))
                        Store (0x0E10, Index (Arg1, 0x08))
                        Store ("Bat 8Cell", Index (Arg1, 0x09))
                        Store ("236", Index (Arg1, 0x0A))
                        Store ("Lion", Index (Arg1, 0x0B))
                        Store ("Acer", Index (Arg1, 0x0C))
/* Problems ends here */
                        Release (BATM)
                        Return (Arg1)
                    }

                    Method (GBST, 4, NotSerialized)
                    {
                        Acquire (BATM, 0xFFFF)
                        If (Arg1)
                        {
                            Store (GBPI (Arg0, 0x01), Local0)
                        }

                        If (\_SB.PCI0.LPC0.EC.AC.ACST)
                        {
                            If (Arg1)
                            {
                                If (And (Local0, 0x20))
                                {
                                    Store (0x00, Index (Arg2, 0x00))
                                }
                                Else
                                {
                                    If (CLED)
                                    {
                                        Store (0x00, Index (Arg2, 0x00))
                                    }
                                    Else
                                    {
                                        Store (0x02, Index (Arg2, 0x00))
                                    }
                                }
                            }
                            Else
                            {
                                Store (0x00, Index (Arg2, 0x00))
                                Store (0xFFFFFFFF, Index (Arg2, 0x01))
                                Store (0xFFFFFFFF, Index (Arg2, 0x02))
                                Store (0xFFFFFFFF, Index (Arg2, 0x03))
                                Return (Arg2)
                            }
                        }
                        Else
                        {
                            Store (0x01, Local5)
                            If (LEqual (And (\RBEC (0x43), 0x20), 0x00))
                            {
                                Or (Local5, 0x04, Local5)
                            }

                            Store (Local5, Index (Arg2, 0x00))
                        }

                        If (Arg1)
                        {
                            Store (GBPI (Arg0, 0x04), Local3)
                        }

                        If (BLLW)
                        {
                            Store (0x00, BLLW)
                            Store (0x06, Local4)
                        }
                        Else
                        {
                            If (LEqual (Local3, 0x64))
                            {
                                Store (Arg3, Local4)
                            }
                            Else
                            {
                                If (LLess (Local3, 0x03))
                                {
                                    Store (0x00, Local4)
                                }
                                Else
                                {
                                    Multiply (Arg3, Local3, Local5)
                                    Divide (Local5, 0x64, Local6, Local4)
                                    If (Local6)
                                    {
                                        Increment (Local4)
                                    }
                                }
                            }
                        }

                        Store (Local4, Index (Arg2, 0x02))
                        Store (0xFFFFFFFF, Local5)
                        Store (Local5, Index (Arg2, 0x01))
                        If (Arg0)
                        {
                            Store (0x2EE0, Index (Arg2, 0x03))
                        }
                        Else
                        {
                            Store (0x3E80, Index (Arg2, 0x03))
                        }

                        Release (BATM)
                        Return (Arg2)
                    }

                    Device (BAT0)
                    {
                        Name (_HID, EisaId ("PNP0C0A"))
                        Name (_PCL, Package (0x01)
                        {
                            \_SB
                        })
                        Name (B0ST, 0x00)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (\_SB.PCI0.AGP.EVGA.SWIH)
                            {
                                If (And (\RBEC (0x78), 0x04))
                                {
                                    Store (0x00, B0ST)
                                }
                                Else
                                {
                                    Store (0x01, B0ST)
                                }
                            }
                            Else
                            {
                                Store (0x01, B0ST)
                            }

                            If (B0ST)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Name (BT0I, Package (0x0D)
                        {
                            0x01, 
                            0x19C8, 
                            0x19C8, 
                            0x01, 
                            0x39D0, 
                            0x014A, 
                            0xDC, 
                            0x012C, 
                            0x0294, 
                            "ANA", 
                            "110", 
                            "Lion", 
                            0x00
                        })
                        Method (_BIF, 0, NotSerialized)
                        {
                            If (And (\RBEC (0x78), 0x04))
                            {
                                Store (0xFFFFFFFF, Index (BT0I, 0x01))
                                Store (0xFFFFFFFF, Index (BT0I, 0x02))
                                Store (0xFFFFFFFF, Index (BT0I, 0x04))
                                Store ("Bad", Index (BT0I, 0x09))
                                Store ("Bad", Index (BT0I, 0x0A))
                                Store ("Bad", Index (BT0I, 0x0B))
                                Store ("Bad", Index (BT0I, 0x0C))
                                Return (BT0I)
                            }
                            Else
                            {
                                Return (GBIF (0x00, BT0I))
                            }
                        }

                        Name (BT0P, Package (0x04)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0x0BB8, 
                            0xFFFFFFFF
                        })
                        Method (_BST, 0, NotSerialized)
                        {
                            Store (DerefOf (Index (BT0I, 0x02)), Local0)
                            Return (GBST (0x00, B0ST, BT0P, Local0))
                        }
                    }

^ permalink raw reply	[flat|nested] 8+ messages in thread
* RE: AE_BAD_HEX_CONSTANT
@ 2004-11-12 23:08 Moore, Robert
  0 siblings, 0 replies; 8+ messages in thread
From: Moore, Robert @ 2004-11-12 23:08 UTC (permalink / raw)
  To: Nate Lawson, Bruno Ducrot
  Cc: Paulo da Silva, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

I'm looking at this.
Bob


> -----Original Message-----
> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Nate Lawson
> Sent: Friday, November 12, 2004 2:57 PM
> To: Bruno Ducrot
> Cc: Paulo da Silva; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: Re: [ACPI] AE_BAD_HEX_CONSTANT
> 
> Bruno Ducrot wrote:
> > On Tue, Nov 09, 2004 at 11:49:44AM -0800, Nate Lawson wrote:
> >
> >>                        Name (BT0I, Package (0x0D)
> >>                        {
> >>                            0x01,
> >>                            0x19C8,
> >>                            0x19C8,
> >>                            0x01,
> >>                            0x39D0,
> >>                            0x014A,
> >>                            0xDC,
> >>                            0x012C,
> >>                            0x0294,
> >>                            "ANA",
> >>                            "110",
> >>                            "Lion",
> >>                            0x00
> >>                        })
> >>
> >>Looking more carefully, it looks like commenting out just the last
line
> >>("Acer") would suffice.  Index 0xC is actually an integer (0x00) so
this
> >>is what triggers the Integer conversion.  I'm not sure how the
> >>conversion rules should be modified to take this into account.
> >>
> >
> >
> > I suggest to replace the last integer with a string like "Acer".
Since
> > anyway BT0I is expected to be a package returned by a _BIF method,
it
> > must be compatible with ACPI spec (look at 11.2.2.1).
> >
> 
> I agree to test this, but I'd also like to see acpi-ca improved to
> handle this case with the stock ASL.
> 
> --
> Nate
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: InterSystems CACHE
> FREE OODBMS DOWNLOAD - A multidimensional database that combines
> robust object and relational technologies, making it a perfect match
> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel


-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8

^ permalink raw reply	[flat|nested] 8+ messages in thread
* RE: AE_BAD_HEX_CONSTANT
@ 2004-11-16 22:26 Moore, Robert
       [not found] ` <37F890616C995246BE76B3E6B2DBE05502A86F8F-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Moore, Robert @ 2004-11-16 22:26 UTC (permalink / raw)
  To: Moore, Robert, Nate Lawson, Bruno Ducrot
  Cc: Paulo da Silva, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

It's not really clear from the ACPI spec, but it would appear that a
store to an index on a package should just overwrite any existing
object.

If nothing else, the defacto standard interpreter seems to do this.....

I've changed this behavior for the next release, probably this week.

Bob


> -----Original Message-----
> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Moore, Robert
> Sent: Friday, November 12, 2004 3:09 PM
> To: Nate Lawson; Bruno Ducrot
> Cc: Paulo da Silva; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: RE: [ACPI] AE_BAD_HEX_CONSTANT
> 
> I'm looking at this.
> Bob
> 
> 
> > -----Original Message-----
> > From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> > admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Nate Lawson
> > Sent: Friday, November 12, 2004 2:57 PM
> > To: Bruno Ducrot
> > Cc: Paulo da Silva; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > Subject: Re: [ACPI] AE_BAD_HEX_CONSTANT
> >
> > Bruno Ducrot wrote:
> > > On Tue, Nov 09, 2004 at 11:49:44AM -0800, Nate Lawson wrote:
> > >
> > >>                        Name (BT0I, Package (0x0D)
> > >>                        {
> > >>                            0x01,
> > >>                            0x19C8,
> > >>                            0x19C8,
> > >>                            0x01,
> > >>                            0x39D0,
> > >>                            0x014A,
> > >>                            0xDC,
> > >>                            0x012C,
> > >>                            0x0294,
> > >>                            "ANA",
> > >>                            "110",
> > >>                            "Lion",
> > >>                            0x00
> > >>                        })
> > >>
> > >>Looking more carefully, it looks like commenting out just the last
> line
> > >>("Acer") would suffice.  Index 0xC is actually an integer (0x00)
so
> this
> > >>is what triggers the Integer conversion.  I'm not sure how the
> > >>conversion rules should be modified to take this into account.
> > >>
> > >
> > >
> > > I suggest to replace the last integer with a string like "Acer".
> Since
> > > anyway BT0I is expected to be a package returned by a _BIF method,
> it
> > > must be compatible with ACPI spec (look at 11.2.2.1).
> > >
> >
> > I agree to test this, but I'd also like to see acpi-ca improved to
> > handle this case with the stock ASL.
> >
> > --
> > Nate
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by: InterSystems CACHE
> > FREE OODBMS DOWNLOAD - A multidimensional database that combines
> > robust object and relational technologies, making it a perfect match
> > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> > _______________________________________________
> > Acpi-devel mailing list
> > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: InterSystems CACHE
> FREE OODBMS DOWNLOAD - A multidimensional database that combines
> robust object and relational technologies, making it a perfect match
> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel


-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8

^ permalink raw reply	[flat|nested] 8+ messages in thread
* RE: AE_BAD_HEX_CONSTANT
@ 2004-11-17  0:53 Li, Shaohua
  0 siblings, 0 replies; 8+ messages in thread
From: Li, Shaohua @ 2004-11-17  0:53 UTC (permalink / raw)
  To: Moore, Robert, Nate Lawson, Bruno Ducrot
  Cc: Paulo da Silva, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	Peter.Fruehberger-zqRNUXuvxA0b1SvskN2V4Q

[-- Attachment #1: Type: text/plain, Size: 4915 bytes --]

Hi Bob,
There is another case, looks like the 'AE_BAD_HEX_CONSTANT' issue. I
also attached his DSDT.

Shaohua
>-----Original Message-----
>From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
>admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Moore, Robert
>Sent: Wednesday, November 17, 2004 6:26 AM
>To: Moore, Robert; Nate Lawson; Bruno Ducrot
>Cc: Paulo da Silva; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>Subject: RE: [ACPI] AE_BAD_HEX_CONSTANT
>
>It's not really clear from the ACPI spec, but it would appear that a
>store to an index on a package should just overwrite any existing
>object.
>
>If nothing else, the defacto standard interpreter seems to do this.....
>
>I've changed this behavior for the next release, probably this week.
>
>Bob
>
>
>> -----Original Message-----
>> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
>> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Moore, Robert
>> Sent: Friday, November 12, 2004 3:09 PM
>> To: Nate Lawson; Bruno Ducrot
>> Cc: Paulo da Silva; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>> Subject: RE: [ACPI] AE_BAD_HEX_CONSTANT
>>
>> I'm looking at this.
>> Bob
>>
>>
>> > -----Original Message-----
>> > From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
>> > admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Nate Lawson
>> > Sent: Friday, November 12, 2004 2:57 PM
>> > To: Bruno Ducrot
>> > Cc: Paulo da Silva; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>> > Subject: Re: [ACPI] AE_BAD_HEX_CONSTANT
>> >
>> > Bruno Ducrot wrote:
>> > > On Tue, Nov 09, 2004 at 11:49:44AM -0800, Nate Lawson wrote:
>> > >
>> > >>                        Name (BT0I, Package (0x0D)
>> > >>                        {
>> > >>                            0x01,
>> > >>                            0x19C8,
>> > >>                            0x19C8,
>> > >>                            0x01,
>> > >>                            0x39D0,
>> > >>                            0x014A,
>> > >>                            0xDC,
>> > >>                            0x012C,
>> > >>                            0x0294,
>> > >>                            "ANA",
>> > >>                            "110",
>> > >>                            "Lion",
>> > >>                            0x00
>> > >>                        })
>> > >>
>> > >>Looking more carefully, it looks like commenting out just the
last
>> line
>> > >>("Acer") would suffice.  Index 0xC is actually an integer (0x00)
>so
>> this
>> > >>is what triggers the Integer conversion.  I'm not sure how the
>> > >>conversion rules should be modified to take this into account.
>> > >>
>> > >
>> > >
>> > > I suggest to replace the last integer with a string like "Acer".
>> Since
>> > > anyway BT0I is expected to be a package returned by a _BIF
method,
>> it
>> > > must be compatible with ACPI spec (look at 11.2.2.1).
>> > >
>> >
>> > I agree to test this, but I'd also like to see acpi-ca improved to
>> > handle this case with the stock ASL.
>> >
>> > --
>> > Nate
>> >
>> >
>> > -------------------------------------------------------
>> > This SF.Net email is sponsored by: InterSystems CACHE
>> > FREE OODBMS DOWNLOAD - A multidimensional database that combines
>> > robust object and relational technologies, making it a perfect
match
>> > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
>> > _______________________________________________
>> > Acpi-devel mailing list
>> > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>> > https://lists.sourceforge.net/lists/listinfo/acpi-devel
>>
>>
>> -------------------------------------------------------
>> This SF.Net email is sponsored by: InterSystems CACHE
>> FREE OODBMS DOWNLOAD - A multidimensional database that combines
>> robust object and relational technologies, making it a perfect match
>> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
>> _______________________________________________
>> Acpi-devel mailing list
>> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>> https://lists.sourceforge.net/lists/listinfo/acpi-devel
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: InterSystems CACHE
>FREE OODBMS DOWNLOAD - A multidimensional database that combines
>robust object and relational technologies, making it a perfect match
>for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
>_______________________________________________
>Acpi-devel mailing list
>Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>https://lists.sourceforge.net/lists/listinfo/acpi-devel

[-- Attachment #2: Type: message/rfc822, Size: 5949 bytes --]

From: <Peter.Fruehberger-zqRNUXuvxA0b1SvskN2V4Q@public.gmane.org>
To: <acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: [ACPI] Battery Information in 20041105
Date: Tue, 16 Nov 2004 16:51:54 +0800
Message-ID: <1CTz46-0kQn0i0-nqvcoVbcLNpKfprwEfnGEwRnqbZeu18gs0AfqQuZ5sE@public.gmane.org>

Hi,
just want to report, that acpi version 20041105 does not show my battery
info correct:

#latest acpi version
version:                 20041105
alarm:                   2689 mWh
present:                 yes
design capacity:         57600 mWh
last full capacity:      53790 mWh
battery technology:      rechargeable
design voltage:          14400 mV
design capacity warning: 2689 mWh
design capacity low:     200 mWh
capacity granularity 1:  1 mWh
capacity granularity 2:  1 mWh
model number:            49 42 4D 2D 30 32 4B 36 39 32 38 00 00 00 00 00
serial number:           20 31 35 32 36 00
battery type:            4C 49 4F 4E 00
OEM info:                50 61 6E 61 73 6F 6E 69 63 00 30 32 00 00 00 00
present:                 yes
capacity state:          ok
charging state:          charged
present rate:            0 mW
remaining capacity:      53790 mWh
present voltage:         16629 mV


#here the vanilla 2.6.9 version:
version:                 20040816
alarm:                   2689 mWh
present:                 yes
design capacity:         57600 mWh
last full capacity:      53790 mWh
battery technology:      rechargeable
design voltage:          14400 mV
design capacity warning: 2689 mWh
design capacity low:     200 mWh
capacity granularity 1:  1 mWh
capacity granularity 2:  1 mWh
model number:            IBM-02K6928
serial number:            1526
battery type:            LION
OEM info:                Panasonic
present:                 yes
capacity state:          ok
charging state:          charged
present rate:            0 mW
remaining capacity:      53790 mWh
present voltage:         16629 mV

Model Number, serial number, battery type and OEM info are not displayed
correct I think

kernel version: 2.6.9 vanilla
Hardware: IBM Thinkpad R40 2722-B3G

Peter




-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
Acpi-devel mailing list
Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/acpi-devel

[-- Attachment #3: dsdt.dsl --]
[-- Type: application/octet-stream, Size: 301787 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20030522
 *
 * Disassembly of dsdt, Wed Nov 17 08:39:56 2004
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "IBM   ", "TP-1P   ", 4624)
{
    Scope (\_PR)
    {
        Processor (CPU, 0x01, 0x00001010, 0x06)
        {
            Name (PDC0, 0x00)
            Method (_PDC, 1, NotSerialized)
            {
                CreateDWordField (Arg0, 0x08, CAP0)
                Store (CAP0, PDC0)
                If (LEqual (And (PDC0, 0x01), 0x01))
                {
                    PINI ()
                }
            }

            Method (INI1, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
            }

            Method (INI2, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
                Store (\P1FQ, Index (DerefOf (Index (_PSS, 0x01)), 0x00))
                Store (\P1PW, Index (DerefOf (Index (_PSS, 0x01)), 0x01))
            }

            Method (INI3, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
                Store (\P1FQ, Index (DerefOf (Index (_PSS, 0x01)), 0x00))
                Store (\P1PW, Index (DerefOf (Index (_PSS, 0x01)), 0x01))
                Store (\P2FQ, Index (DerefOf (Index (_PSS, 0x02)), 0x00))
                Store (\P2PW, Index (DerefOf (Index (_PSS, 0x02)), 0x01))
            }

            Method (INI4, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1FQ, Index (DerefOf (Index (_PSS, 0x01)), 0x00))
                Store (\P1PW, Index (DerefOf (Index (_PSS, 0x01)), 0x01))
                Store (\P2FQ, Index (DerefOf (Index (_PSS, 0x02)), 0x00))
                Store (\P2PW, Index (DerefOf (Index (_PSS, 0x02)), 0x01))
                Store (\P3FQ, Index (DerefOf (Index (_PSS, 0x03)), 0x00))
                Store (\P3PW, Index (DerefOf (Index (_PSS, 0x03)), 0x01))
            }

            Method (_INI, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
                Store (\P1FQ, Index (DerefOf (Index (_PSS, 0x01)), 0x00))
                Store (\P1PW, Index (DerefOf (Index (_PSS, 0x01)), 0x01))
                Store (\P2FQ, Index (DerefOf (Index (_PSS, 0x02)), 0x00))
                Store (\P2PW, Index (DerefOf (Index (_PSS, 0x02)), 0x01))
                Store (\P3FQ, Index (DerefOf (Index (_PSS, 0x03)), 0x00))
                Store (\P3PW, Index (DerefOf (Index (_PSS, 0x03)), 0x01))
                Store (\P4FQ, Index (DerefOf (Index (_PSS, 0x04)), 0x00))
                Store (\P4PW, Index (DerefOf (Index (_PSS, 0x04)), 0x01))
            }

            Method (INI6, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
                Store (\P1FQ, Index (DerefOf (Index (_PSS, 0x01)), 0x00))
                Store (\P1PW, Index (DerefOf (Index (_PSS, 0x01)), 0x01))
                Store (\P2FQ, Index (DerefOf (Index (_PSS, 0x02)), 0x00))
                Store (\P2PW, Index (DerefOf (Index (_PSS, 0x02)), 0x01))
                Store (\P3FQ, Index (DerefOf (Index (_PSS, 0x03)), 0x00))
                Store (\P3PW, Index (DerefOf (Index (_PSS, 0x03)), 0x01))
                Store (\P4FQ, Index (DerefOf (Index (_PSS, 0x04)), 0x00))
                Store (\P4PW, Index (DerefOf (Index (_PSS, 0x04)), 0x01))
                Store (\P5FQ, Index (DerefOf (Index (_PSS, 0x05)), 0x00))
                Store (\P5PW, Index (DerefOf (Index (_PSS, 0x05)), 0x01))
            }

            Method (INI7, 0, NotSerialized)
            {
                Store (\P0FQ, Index (DerefOf (Index (_PSS, 0x00)), 0x00))
                Store (\P0PW, Index (DerefOf (Index (_PSS, 0x00)), 0x01))
                Store (\P1FQ, Index (DerefOf (Index (_PSS, 0x01)), 0x00))
                Store (\P1PW, Index (DerefOf (Index (_PSS, 0x01)), 0x01))
                Store (\P2FQ, Index (DerefOf (Index (_PSS, 0x02)), 0x00))
                Store (\P2PW, Index (DerefOf (Index (_PSS, 0x02)), 0x01))
                Store (\P3FQ, Index (DerefOf (Index (_PSS, 0x03)), 0x00))
                Store (\P3PW, Index (DerefOf (Index (_PSS, 0x03)), 0x01))
                Store (\P4FQ, Index (DerefOf (Index (_PSS, 0x04)), 0x00))
                Store (\P4PW, Index (DerefOf (Index (_PSS, 0x04)), 0x01))
                Store (\P5FQ, Index (DerefOf (Index (_PSS, 0x05)), 0x00))
                Store (\P5PW, Index (DerefOf (Index (_PSS, 0x05)), 0x01))
                Store (\P6FQ, Index (DerefOf (Index (_PSS, 0x06)), 0x00))
                Store (\P6PW, Index (DerefOf (Index (_PSS, 0x06)), 0x01))
            }

            Method (PIN1, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
            }

            Method (PIN2, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x04))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x05))
            }

            Method (PIN3, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x04))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x05))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x04))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x05))
            }

            Method (PIN4, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x04))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x05))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x04))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x05))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x04))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x05))
            }

            Method (PINI, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x04))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x05))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x04))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x05))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x04))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x05))
                Store (\P4CT, Index (DerefOf (Index (_PSS, 0x04)), 0x04))
                Store (\P4CT, Index (DerefOf (Index (_PSS, 0x04)), 0x05))
            }

            Method (PIN6, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x04))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x05))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x04))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x05))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x04))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x05))
                Store (\P4CT, Index (DerefOf (Index (_PSS, 0x04)), 0x04))
                Store (\P4CT, Index (DerefOf (Index (_PSS, 0x04)), 0x05))
                Store (\P5CT, Index (DerefOf (Index (_PSS, 0x05)), 0x04))
                Store (\P5CT, Index (DerefOf (Index (_PSS, 0x05)), 0x05))
            }

            Method (PIN7, 0, NotSerialized)
            {
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x04))
                Store (\P0CT, Index (DerefOf (Index (_PSS, 0x00)), 0x05))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x04))
                Store (\P1CT, Index (DerefOf (Index (_PSS, 0x01)), 0x05))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x04))
                Store (\P2CT, Index (DerefOf (Index (_PSS, 0x02)), 0x05))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x04))
                Store (\P3CT, Index (DerefOf (Index (_PSS, 0x03)), 0x05))
                Store (\P4CT, Index (DerefOf (Index (_PSS, 0x04)), 0x04))
                Store (\P4CT, Index (DerefOf (Index (_PSS, 0x04)), 0x05))
                Store (\P5CT, Index (DerefOf (Index (_PSS, 0x05)), 0x04))
                Store (\P5CT, Index (DerefOf (Index (_PSS, 0x05)), 0x05))
                Store (\P6CT, Index (DerefOf (Index (_PSS, 0x06)), 0x04))
                Store (\P6CT, Index (DerefOf (Index (_PSS, 0x06)), 0x05))
            }

            Method (_PCT, 0, NotSerialized)
            {
                If (LEqual (And (PDC0, 0x01), 0x01))
                {
                    Return (Package (0x02)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x40, 0x00, 0x0000000000000199)
                        }, 

                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x10, 0x00, 0x0000000000000198)
                        }
                    })
                }
                Else
                {
                    Return (Package (0x02)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x00000000000000B2)
                        }, 

                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x00000000000000B3)
                        }
                    })
                }
            }

            Name (PSS1, Package (0x01)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }
            })
            Name (PSS2, Package (0x02)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF7, 
                    0x01
                }
            })
            Name (PSS3, Package (0x03)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF7, 
                    0x01
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF8, 
                    0x02
                }
            })
            Name (PSS4, Package (0x04)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF7, 
                    0x01
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF8, 
                    0x02
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF9, 
                    0x03
                }
            })
            Name (_PSS, Package (0x05)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF7, 
                    0x01
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF8, 
                    0x02
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF9, 
                    0x03
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xFA, 
                    0x04
                }
            })
            Name (PSS6, Package (0x06)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF7, 
                    0x01
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF8, 
                    0x02
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF9, 
                    0x03
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xFA, 
                    0x04
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xFB, 
                    0x05
                }
            })
            Name (PSS7, Package (0x07)
            {
                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF6, 
                    0x00
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF7, 
                    0x01
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF8, 
                    0x02
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xF9, 
                    0x03
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xFA, 
                    0x04
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xFB, 
                    0x05
                }, 

                Package (0x06)
                {
                    0x00, 
                    0x00, 
                    0x01F4, 
                    0x00, 
                    0xFC, 
                    0x06
                }
            })
            Method (_PPC, 0, NotSerialized)
            {
                If (LNot (\SPEN))
                {
                    Return (\LWST)
                }

                If (\_SB.PCI0.LPC.EC.HPLO)
                {
                    Return (0x00)
                }
                Else
                {
                    If (LOr (\_SB.PCI0.LPC.EC.HT00, \_SB.PCI0.LPC.EC.HT10))
                    {
                        Return (\LWST)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
            }

            Name (CST1, Package (0x02)
            {
                0x01, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x08, 0x00, 0x0000000000000000)
                    }, 

                    0x01, 
                    0x01, 
                    0x03E8
                }
            })
            Name (CST2, Package (0x03)
            {
                0x02, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x08, 0x00, 0x0000000000000000)
                    }, 

                    0x01, 
                    0x01, 
                    0x03E8
                }, 

                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                    }, 

                    0x02, 
                    0x01, 
                    0x01F4
                }
            })
            Name (CST3, Package (0x04)
            {
                0x03, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x08, 0x00, 0x0000000000000000)
                    }, 

                    0x01, 
                    0x01, 
                    0x03E8
                }, 

                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                    }, 

                    0x02, 
                    0x01, 
                    0x01F4
                }, 

                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000001015)
                    }, 

                    0x03, 
                    0x55, 
                    0xFA
                }
            })
            Name (CST4, Package (0x05)
            {
                0x04, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x08, 0x00, 0x0000000000000000)
                    }, 

                    0x01, 
                    0x01, 
                    0x03E8
                }, 

                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                    }, 

                    0x02, 
                    0x01, 
                    0x01F4
                }, 

                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000001015)
                    }, 

                    0x03, 
                    0x55, 
                    0xFA
                }, 

                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000001016)
                    }, 

                    0x03, 
                    0xB9, 
                    0x64
                }
            })
            Method (_CST, 0, NotSerialized)
            {
                If (\C2NA)
                {
                    Return (CST1)
                }

                If (\C3NA)
                {
                    Return (CST2)
                }

                If (\_SB.PCI0.LPC.EC.AC._PSR ())
                {
                    Return (CST3)
                }

                If (\C4NA)
                {
                    Return (CST3)
                }

                Return (CST4)
            }
        }
    }

    Scope (\_SB)
    {
        Method (_INI, 0, NotSerialized)
        {
            If (LEqual (\SCMP (\_OS, "Microsoft Windows"), Zero))
            {
                Store (0x01, \W98F)
            }
            Else
            {
                If (CondRefOf (_OSI, Local0))
                {
                    If (\_OSI ("Windows 2001"))
                    {
                        Store (0x02, \WNTF)
                    }
                }
                Else
                {
                    If (LEqual (\SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Store (0x01, \WNTF)
                    }
                    Else
                    {
                        If (LEqual (\SCMP (\_OS, "Microsoft WindowsME: Millennium Edition"), Zero))
                        {
                            Store (0x01, \WMEF)
                            Store (0x01, \W98F)
                        }
                    }
                }
            }

            If (LNot (LLess (\_REV, 0x02)))
            {
                Store (0x01, \H8DR)
            }

            Store (0x01, \OSIF)
            \_SB.PCI0.LPC.MOU.MHID ()
            Store (\SRP0, \_SB.PCI0.RID)
            Store (\SRAG, \_SB.PCI0.AGP.RID)
        }

        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x01)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRA)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA)
            }

            Name (BUFA, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFA, 0x01, IRA1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRA, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRA1)
                }
                Else
                {
                    Store (0x00, IRA1)
                }

                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRA2)
                FindSetRightBit (IRA2, Local0)
                And (\_SB.PCI0.LPC.PIRA, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRA)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRB)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRB, 0x80, \_SB.PCI0.LPC.PIRB)
            }

            Name (BUFB, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFB, 0x01, IRB1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRB, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRB1)
                }
                Else
                {
                    Store (0x00, IRB1)
                }

                Return (BUFB)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRB2)
                FindSetRightBit (IRB2, Local0)
                And (\_SB.PCI0.LPC.PIRB, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRB)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRC)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRC, 0x80, \_SB.PCI0.LPC.PIRC)
            }

            Name (BUFC, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFC, 0x01, IRC1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRC, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRC1)
                }
                Else
                {
                    Store (0x00, IRC1)
                }

                Return (BUFC)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRC2)
                FindSetRightBit (IRC2, Local0)
                And (\_SB.PCI0.LPC.PIRC, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRC)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRD)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRD, 0x80, \_SB.PCI0.LPC.PIRD)
            }

            Name (BUFD, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFD, 0x01, IRD1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRD, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRD1)
                }
                Else
                {
                    Store (0x00, IRD1)
                }

                Return (BUFD)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRD2)
                FindSetRightBit (IRD2, Local0)
                And (\_SB.PCI0.LPC.PIRD, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRD)
            }
        }

        Device (LNKE)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRE)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRE, 0x80, \_SB.PCI0.LPC.PIRE)
            }

            Name (BUFE, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFE, 0x01, IRE1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRE, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRE1)
                }
                Else
                {
                    Store (0x00, IRE1)
                }

                Return (BUFE)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRE2)
                FindSetRightBit (IRE2, Local0)
                And (\_SB.PCI0.LPC.PIRE, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRE)
            }
        }

        Device (LNKF)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x06)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRF)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRF, 0x80, \_SB.PCI0.LPC.PIRF)
            }

            Name (BUFF, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFF, 0x01, IRF1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRF, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRF1)
                }
                Else
                {
                    Store (0x00, IRF1)
                }

                Return (BUFF)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRF2)
                FindSetRightBit (IRF2, Local0)
                And (\_SB.PCI0.LPC.PIRF, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRF)
            }
        }

        Device (LNKG)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRG)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRG, 0x80, \_SB.PCI0.LPC.PIRG)
            }

            Name (BUFG, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFG, 0x01, IRG1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRG, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRG1)
                }
                Else
                {
                    Store (0x00, IRG1)
                }

                Return (BUFG)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRG2)
                FindSetRightBit (IRG2, Local0)
                And (\_SB.PCI0.LPC.PIRG, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRG)
            }
        }

        Device (LNKH)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                If (LNot (VPIR (\_SB.PCI0.LPC.PIRH)))
                {
                    Return (0x09)
                }
                Else
                {
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
            })
            Method (_DIS, 0, NotSerialized)
            {
                Or (\_SB.PCI0.LPC.PIRH, 0x80, \_SB.PCI0.LPC.PIRH)
            }

            Name (BUFH, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared) {}
            })
            CreateWordField (BUFH, 0x01, IRH1)
            Method (_CRS, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPC.PIRH, 0x8F, Local0)
                If (VPIR (Local0))
                {
                    ShiftLeft (0x01, Local0, IRH1)
                }
                Else
                {
                    Store (0x00, IRH1)
                }

                Return (BUFH)
            }

            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRH2)
                FindSetRightBit (IRH2, Local0)
                And (\_SB.PCI0.LPC.PIRH, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.LPC.PIRH)
            }
        }

        Method (VPIR, 1, NotSerialized)
        {
            Store (0x01, Local0)
            If (And (Arg0, 0x80))
            {
                Store (0x00, Local0)
            }
            Else
            {
                And (Arg0, 0x0F, Local1)
                If (LLess (Local1, 0x03))
                {
                    Store (0x00, Local0)
                }
                Else
                {
                    If (LOr (LEqual (Local1, 0x08), LEqual (Local1, 0x0D)))
                    {
                        Store (0x00, Local0)
                    }
                }
            }

            Return (Local0)
        }

        Device (MEM)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Name (ME98, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
                Memory32Fixed (ReadWrite, 0x00100000, 0x01EE0000)
                Memory32Fixed (ReadOnly, 0xFEC00000, 0x01400000)
            })
            CreateDWordField (ME98, 0x1C, MEB0)
            CreateDWordField (ME98, 0x20, MEL0)
            Name (MGAP, ResourceTemplate ()
            {
                Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
            })
            CreateDWordField (MGAP, 0x04, MGPB)
            CreateDWordField (MGAP, 0x08, MGPL)
            Name (MEMS, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                Memory32Fixed (ReadOnly, 0x000C0000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000C4000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000C8000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000CC000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000D0000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000D4000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000D8000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000DC000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000E0000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000E4000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000E8000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000EC000, 0x00000000)
                Memory32Fixed (ReadOnly, 0x000F0000, 0x00010000)
                Memory32Fixed (ReadWrite, 0x00100000, 0x01EE0000)
                Memory32Fixed (ReadOnly, 0xFEC00000, 0x01400000)
            })
            CreateDWordField (MEMS, 0x14, MC0L)
            CreateDWordField (MEMS, 0x20, MC4L)
            CreateDWordField (MEMS, 0x2C, MC8L)
            CreateDWordField (MEMS, 0x38, MCCL)
            CreateDWordField (MEMS, 0x44, MD0L)
            CreateDWordField (MEMS, 0x50, MD4L)
            CreateDWordField (MEMS, 0x5C, MD8L)
            CreateDWordField (MEMS, 0x68, MDCL)
            CreateDWordField (MEMS, 0x74, ME0L)
            CreateDWordField (MEMS, 0x80, ME4L)
            CreateDWordField (MEMS, 0x8C, ME8L)
            CreateDWordField (MEMS, 0x98, MECL)
            CreateBitField (MEMS, 0x78, MC0W)
            CreateBitField (MEMS, 0xD8, MC4W)
            CreateBitField (MEMS, 0x0138, MC8W)
            CreateBitField (MEMS, 0x0198, MCCW)
            CreateBitField (MEMS, 0x01F8, MD0W)
            CreateBitField (MEMS, 0x0258, MD4W)
            CreateBitField (MEMS, 0x02B8, MD8W)
            CreateBitField (MEMS, 0x0318, MDCW)
            CreateBitField (MEMS, 0x0378, ME0W)
            CreateBitField (MEMS, 0x03D8, ME4W)
            CreateBitField (MEMS, 0x0438, ME8W)
            CreateBitField (MEMS, 0x0498, MECW)
            CreateDWordField (MEMS, 0xAC, MEB1)
            CreateDWordField (MEMS, 0xB0, MEL1)
            Method (_CRS, 0, NotSerialized)
            {
                If (\W98F)
                {
                    Subtract (\MEMX, MEB0, MEL0)
                    Store (\GAPA, MGPB)
                    Store (\GAPL, MGPL)
                    If (LAnd (MGPB, MGPL))
                    {
                        Subtract (SizeOf (ME98), 0x02, Local0)
                        Name (MBF0, Buffer (Local0) {})
                        Add (Local0, SizeOf (MGAP), Local0)
                        Name (MBF1, Buffer (Local0) {})
                        Store (ME98, MBF0)
                        Concatenate (MBF0, MGAP, MBF1)
                        Return (MBF1)
                    }
                    Else
                    {
                        Return (ME98)
                    }
                }

                And (\_SB.PCI0.PAM1, 0x03, Local0)
                If (Local0)
                {
                    Store (0x4000, MC0L)
                    If (And (Local0, 0x02))
                    {
                        Store (0x01, MC0W)
                    }
                }

                And (\_SB.PCI0.PAM1, 0x30, Local0)
                If (Local0)
                {
                    Store (0x4000, MC4L)
                    If (And (Local0, 0x20))
                    {
                        Store (0x01, MC4W)
                    }
                }

                And (\_SB.PCI0.PAM2, 0x03, Local0)
                If (Local0)
                {
                    Store (0x4000, MC8L)
                    If (And (Local0, 0x02))
                    {
                        Store (0x01, MC8W)
                    }
                }

                And (\_SB.PCI0.PAM2, 0x30, Local0)
                If (Local0)
                {
                    Store (0x4000, MCCL)
                    If (And (Local0, 0x20))
                    {
                        Store (0x01, MCCW)
                    }
                }

                And (\_SB.PCI0.PAM3, 0x03, Local0)
                If (Local0)
                {
                    Store (0x4000, MD0L)
                    If (And (Local0, 0x02))
                    {
                        Store (0x01, MD0W)
                    }
                }

                And (\_SB.PCI0.PAM3, 0x30, Local0)
                If (Local0)
                {
                    Store (0x4000, MD4L)
                    If (And (Local0, 0x20))
                    {
                        Store (0x01, MD4W)
                    }
                }

                And (\_SB.PCI0.PAM4, 0x03, Local0)
                If (Local0)
                {
                    Store (0x4000, MD8L)
                    If (And (Local0, 0x02))
                    {
                        Store (0x01, MD8W)
                    }
                }

                And (\_SB.PCI0.PAM4, 0x30, Local0)
                If (Local0)
                {
                    Store (0x4000, MDCL)
                    If (And (Local0, 0x20))
                    {
                        Store (0x01, MDCW)
                    }
                }

                And (\_SB.PCI0.PAM5, 0x03, Local0)
                If (Local0)
                {
                    Store (0x4000, ME0L)
                    If (And (Local0, 0x02))
                    {
                        Store (0x01, ME0W)
                    }
                }

                And (\_SB.PCI0.PAM5, 0x30, Local0)
                If (Local0)
                {
                    Store (0x4000, ME4L)
                    If (And (Local0, 0x20))
                    {
                        Store (0x01, ME4W)
                    }
                }

                And (\_SB.PCI0.PAM6, 0x03, Local0)
                If (Local0)
                {
                    Store (0x4000, ME8L)
                    If (And (Local0, 0x02))
                    {
                        Store (0x01, ME8W)
                    }
                }

                And (\_SB.PCI0.PAM6, 0x30, Local0)
                If (Local0)
                {
                    Store (0x4000, MECL)
                    If (And (Local0, 0x20))
                    {
                        Store (0x01, MECW)
                    }
                }

                Subtract (\MEMX, MEB1, MEL1)
                Return (MEMS)
            }
        }

        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Return (\_SB.PCI0.LPC.EC.HPLD)
                }
                Else
                {
                    If (And (\RBEC (0x46), 0x04))
                    {
                        Return (0x01)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
            }

            Method (_PRW, 0, NotSerialized)
            {
                If (LAnd (\W98F, LNot (\WMEF)))
                {
                    Return (Package (0x02)
                    {
                        0x18, 
                        0x04
                    })
                }
                Else
                {
                    Return (Package (0x02)
                    {
                        0x18, 
                        0x03
                    })
                }
            }

            Method (_PSW, 1, NotSerialized)
            {
                Sleep (0x19)
                If (\H8DR)
                {
                    If (Arg0)
                    {
                        Store (0x01, \_SB.PCI0.LPC.EC.HWLO)
                    }
                    Else
                    {
                        Store (0x00, \_SB.PCI0.LPC.EC.HWLO)
                    }
                }
                Else
                {
                    If (Arg0)
                    {
                        \MBEC (0x32, 0xFF, 0x04)
                    }
                    Else
                    {
                        \MBEC (0x32, 0xFB, 0x00)
                    }
                }
            }
        }

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Method (_PRW, 0, NotSerialized)
            {
                If (LAnd (\W98F, LNot (\WMEF)))
                {
                    Return (Package (0x02)
                    {
                        0x18, 
                        0x04
                    })
                }
                Else
                {
                    Return (Package (0x02)
                    {
                        0x18, 
                        0x03
                    })
                }
            }

            Method (_PSW, 1, NotSerialized)
            {
                If (\H8DR)
                {
                    If (Arg0)
                    {
                        Store (0x01, \_SB.PCI0.LPC.EC.HWFN)
                    }
                    Else
                    {
                        Store (0x00, \_SB.PCI0.LPC.EC.HWFN)
                    }
                }
                Else
                {
                    If (Arg0)
                    {
                        \MBEC (0x32, 0xFF, 0x10)
                    }
                    Else
                    {
                        \MBEC (0x32, 0xEF, 0x00)
                    }
                }
            }
        }

        Device (PCI0)
        {
            Device (LPC)
            {
                Name (_ADR, 0x001F0000)
                Name (_S3D, 0x03)
                Name (RID, 0x00)
                Device (SIO)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x00)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0010, 0x0010, 0x01, 0x10)
                        IO (Decode16, 0x0090, 0x0090, 0x01, 0x10)
                        IO (Decode16, 0x0024, 0x0024, 0x01, 0x02)
                        IO (Decode16, 0x0028, 0x0028, 0x01, 0x02)
                        IO (Decode16, 0x002C, 0x002C, 0x01, 0x02)
                        IO (Decode16, 0x0030, 0x0030, 0x01, 0x02)
                        IO (Decode16, 0x0034, 0x0034, 0x01, 0x02)
                        IO (Decode16, 0x0038, 0x0038, 0x01, 0x02)
                        IO (Decode16, 0x003C, 0x003C, 0x01, 0x02)
                        IO (Decode16, 0x00A4, 0x00A4, 0x01, 0x02)
                        IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
                        IO (Decode16, 0x00AC, 0x00AC, 0x01, 0x02)
                        IO (Decode16, 0x00B0, 0x00B0, 0x01, 0x06)
                        IO (Decode16, 0x00B8, 0x00B8, 0x01, 0x02)
                        IO (Decode16, 0x00BC, 0x00BC, 0x01, 0x02)
                        IO (Decode16, 0x004E, 0x004E, 0x01, 0x02)
                        IO (Decode16, 0x0050, 0x0050, 0x01, 0x04)
                        IO (Decode16, 0x0072, 0x0072, 0x01, 0x06)
                        IO (Decode16, 0x002E, 0x002E, 0x01, 0x02)
                        IO (Decode16, 0x1000, 0x1000, 0x01, 0x80)
                        IO (Decode16, 0x1180, 0x1180, 0x01, 0x40)
                        IO (Decode16, 0x1600, 0x1600, 0x01, 0x80)
                    })
                }

                OperationRegion (LPCS, PCI_Config, 0x00, 0x0100)
                Field (LPCS, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x60), 
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8, 
                    SERQ,   8, 
                    Offset (0x68), 
                    PIRE,   8, 
                    PIRF,   8, 
                    PIRG,   8, 
                    PIRH,   8, 
                    Offset (0xA0), 
                        ,   2, 
                    CLKR,   1, 
                    GYEN,   1, 
                    Offset (0xA2), 
                    Offset (0xE0), 
                    XU1A,   3, 
                        ,   1, 
                    XU2A,   3, 
                    Offset (0xE1), 
                    XPA,    2, 
                        ,   2, 
                    XFA,    1, 
                    Offset (0xE2), 
                    Offset (0xE4), 
                    XG1E,   1, 
                        ,   6, 
                    XG1A,   9, 
                    XU1E,   1, 
                    XU2E,   1, 
                    XPE,    1, 
                    XFE,    1, 
                    Offset (0xE8), 
                    Offset (0xEC), 
                    XG2E,   1, 
                        ,   3, 
                    XG2A,   12
                }

                OperationRegion (LPIO, SystemIO, 0x1180, 0x40)
                Field (LPIO, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x0C), 
                    Offset (0x0E), 
                    GL16,   1, 
                    GL17,   1, 
                        ,   3, 
                    GL21,   1, 
                        ,   3, 
                    GL25,   1, 
                        ,   1, 
                    GL27,   1, 
                    GL28,   1, 
                    Offset (0x10), 
                    Offset (0x38), 
                    GL32,   1, 
                    GL33,   1, 
                    GL34,   1, 
                    GL35,   1, 
                    GL36,   1, 
                    GL37,   1, 
                    GL38,   1, 
                    GL39,   1, 
                    GL40,   1, 
                    GL41,   1, 
                    GL42,   1, 
                    GL43,   1, 
                    Offset (0x3C)
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
                        IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
                        IRQNoFlags () {2}
                    })
                }

                Device (TIMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IRQNoFlags () {0}
                    })
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)
                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
                        DMA (Compatibility, BusMaster, Transfer8_16) {4}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
                    })
                }

                Device (FPU)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x01)
                        IRQNoFlags () {13}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x02)
                        IRQNoFlags () {8}
                    })
                }

                Device (KBD)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                        IRQNoFlags () {1}
                    })
                }

                Device (MOU)
                {
                    Name (_HID, EisaId ("IBM3780"))
                    Name (_CID, 0x130FD041)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Method (MHID, 0, NotSerialized)
                    {
                        If (\_SB.PCI0.LPC.DPAD)
                        {
                            Store (0x80374D24, _HID)
                        }
                        Else
                        {
                            Store (0x57004D24, _HID)
                        }
                    }
                }

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

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x07), 
                    LDN,    8, 
                    Offset (0x20), 
                    Offset (0x21), 
                    Offset (0x22), 
                    Offset (0x23), 
                    Offset (0x24), 
                    Offset (0x25), 
                        ,   2, 
                    PPSE,   1, 
                        ,   4, 
                    PNF,    1, 
                    FDCD,   1, 
                    PPD,    1, 
                    SP2D,   1, 
                    SP1D,   1, 
                        ,   1, 
                    GPSR,   2, 
                    Offset (0x27), 
                    SRID,   8, 
                    Offset (0x29), 
                    SCCS,   2, 
                    SCCE,   1, 
                    VMCS,   1, 
                    AMES,   1, 
                    Offset (0x2A), 
                    Offset (0x2B), 
                    Offset (0x30), 
                    LDA,    1, 
                    Offset (0x31), 
                    Offset (0x60), 
                    IOHI,   8, 
                    IOLW,   8, 
                    Offset (0x70), 
                    IRQN,   4, 
                    IRQW,   1, 
                    Offset (0x71), 
                    IRQT,   1, 
                    IRQL,   1, 
                    Offset (0x72), 
                    Offset (0x74), 
                    DMA0,   3, 
                    Offset (0x75), 
                    DMA1,   3, 
                    Offset (0x76)
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0xF0), 
                    PTRS,   1, 
                    PPMC,   1, 
                        ,   2, 
                    PERA,   1, 
                    PMDS,   3
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0xF0), 
                    STRS,   1, 
                    SPMC,   1, 
                    SBSY,   1, 
                        ,   4, 
                    SBSE,   1
                }

                OperationRegion (NSIO, SystemIO, 0x1620, 0x0C)
                Field (NSIO, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x01), 
                    LCDI,   4, 
                    DKID,   4, 
                    Offset (0x05), 
                    PLID,   4, 
                    C0BI,   1, 
                    C0EI,   1, 
                    C1BI,   1, 
                    C1EI,   1, 
                    Offset (0x08), 
                    DKIE,   1, 
                    DBIE,   1, 
                        ,   5, 
                    CS1F,   1, 
                        ,   4, 
                    DPAD,   1, 
                    Offset (0x0A), 
                    SMS1,   1, 
                        ,   6, 
                    SMS0,   1, 
                    Offset (0x0C)
                }

                Device (FDC)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (\LFDC)
                        {
                            If (XFE)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, XFE)
                        Store (0x00, LDN)
                        Store (0x00, IRQN)
                        Store (0x00, LDA)
                        Store (0x01, FDCD)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                        IRQNoFlags () {6}
                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                        IRQNoFlags () {6}
                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        Store (0x00, LDN)
                        Store (0x00, LDA)
                        Store (0x03, IOHI)
                        Store (0xF0, IOLW)
                        Store (0x06, IRQN)
                        Store (0x02, DMA0)
                        Store (0x00, FDCD)
                        Store (0x01, LDA)
                        Store (0x00, XFA)
                        Store (0x01, XFE)
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        Store (0x00, LDN)
                        If (LDA)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0x00, LDN)
                        Store (0x01, LDA)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x00, LDN)
                        Store (0x00, LDA)
                    }

                    Device (FDD0)
                    {
                        Name (_ADR, 0x00)
                        Name (_FDI, Package (0x10)
                        {
                            0x00, 
                            0x04, 
                            0x4F, 
                            0x12, 
                            0x01, 
                            0xDF, 
                            0x02, 
                            0x25, 
                            0x02, 
                            0x12, 
                            0x1B, 
                            0xFF, 
                            0x6C, 
                            0xF6, 
                            0x0F, 
                            0x05
                        })
                    }
                }

                Device (UART)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_PRW, Package (0x02)
                    {
                        0x18, 
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        If (\H8DR)
                        {
                            If (Arg0)
                            {
                                Store (0x01, \_SB.PCI0.LPC.EC.HWRI)
                            }
                            Else
                            {
                                Store (0x00, \_SB.PCI0.LPC.EC.HWRI)
                            }
                        }
                        Else
                        {
                            If (Arg0)
                            {
                                \MBEC (0x32, 0xFF, 0x40)
                            }
                            Else
                            {
                                \MBEC (0x32, 0xBF, 0x00)
                            }
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (XU1E)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x0D)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, XU1E)
                        Store (0x03, LDN)
                        Store (0x00, IRQN)
                        Store (0x00, LDA)
                        Store (0x01, SP1D)
                    }

                    Name (U1BF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                        IRQNoFlags () {}
                    })
                    CreateWordField (U1BF, 0x02, U1MN)
                    CreateWordField (U1BF, 0x04, U1MX)
                    CreateWordField (U1BF, 0x09, U1IQ)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Store (0x03, LDN)
                        Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
                        Store (Local0, U1MN)
                        Store (Local0, U1MX)
                        Store (IRQN, Local0)
                        If (Local0)
                        {
                            ShiftLeft (0x01, IRQN, U1IQ)
                        }
                        Else
                        {
                            Store (0x00, U1IQ)
                        }

                        Return (U1BF)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {4}
                        }
                        StartDependentFn (0x01, 0x00)
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {3}
                        }
                        StartDependentFn (0x01, 0x00)
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {4}
                        }
                        StartDependentFn (0x01, 0x00)
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {3}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {3,5,7}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {4,5,7}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {3,5,7}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {4,5,7}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, RUIL)
                        CreateByteField (Arg0, 0x03, RUIH)
                        CreateWordField (Arg0, 0x02, RUIO)
                        CreateWordField (Arg0, 0x09, RUIQ)
                        Store (0x03, LDN)
                        Store (0x00, LDA)
                        Store (RUIL, IOLW)
                        Store (RUIH, IOHI)
                        If (RUIQ)
                        {
                            FindSetRightBit (RUIQ, Local0)
                            Store (Decrement (Local0), IRQN)
                        }
                        Else
                        {
                            Store (0x00, IRQN)
                        }

                        Store (0x00, SP1D)
                        Store (0x01, LDA)
                        If (LEqual (RUIO, 0x03F8))
                        {
                            Store (0x00, XU1A)
                        }
                        Else
                        {
                            If (LEqual (RUIO, 0x02F8))
                            {
                                Store (0x01, XU1A)
                            }
                            Else
                            {
                                If (LEqual (RUIO, 0x03E8))
                                {
                                    Store (0x07, XU1A)
                                }
                                Else
                                {
                                    If (LEqual (RUIO, 0x02E8))
                                    {
                                        Store (0x05, XU1A)
                                    }
                                    Else
                                    {
                                        Fatal (0x02, 0x90020000, 0x019B)
                                    }
                                }
                            }
                        }

                        Store (0x01, XU1E)
                        If (\H8DR)
                        {
                            Store (0x01, \_SB.PCI0.LPC.EC.COMP)
                        }
                        Else
                        {
                            \MBEC (0x3A, 0xF7, 0x08)
                        }
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        Store (0x03, LDN)
                        If (LDA)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0x03, LDN)
                        Store (0x01, LDA)
                        If (\H8DR)
                        {
                            Store (0x01, \_SB.PCI0.LPC.EC.COMP)
                        }
                        Else
                        {
                            \MBEC (0x3A, 0xF7, 0x08)
                        }
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x03, LDN)
                        Store (0x00, LDA)
                        If (\H8DR)
                        {
                            Store (0x00, \_SB.PCI0.LPC.EC.COMP)
                        }
                        Else
                        {
                            \MBEC (0x3A, 0xF7, 0x00)
                        }
                    }
                }

                Device (LPT)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LNot (LEqual (\PMOD, 0x03)))
                        {
                            If (XPE)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, XPE)
                        Store (0x01, LDN)
                        Store (0x00, IRQN)
                        Store (0x00, LDA)
                        Store (0x01, PPD)
                    }

                    Name (PPBF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                        IRQNoFlags () {}
                    })
                    CreateWordField (PPBF, 0x02, LPN0)
                    CreateWordField (PPBF, 0x04, LPX0)
                    CreateByteField (PPBF, 0x07, LPL0)
                    CreateWordField (PPBF, 0x09, LPIQ)
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (\PMOD, 0x03))
                        {
                            Return (PPBF)
                        }

                        Store (0x01, LDN)
                        Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
                        Store (Local0, LPN0)
                        Store (Local0, LPX0)
                        If (LEqual (Local0, 0x03BC))
                        {
                            Store (0x03, LPL0)
                        }
                        Else
                        {
                            Store (0x08, LPL0)
                        }

                        Store (IRQN, Local0)
                        If (Local0)
                        {
                            ShiftLeft (0x01, IRQN, LPIQ)
                        }
                        Else
                        {
                            Store (0x00, LPIQ)
                        }

                        Return (PPBF)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        If (\PMOD)
                        {
                            Return (PEPP)
                        }
                        Else
                        {
                            Return (PLPT)
                        }
                    }

                    Name (PLPT, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x03)
                            IRQNoFlags () {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IRQNoFlags () {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x03)
                            IRQNoFlags () {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IRQNoFlags () {7}
                        }
                        EndDependentFn ()
                    })
                    Name (PEPP, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IRQNoFlags () {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IRQNoFlags () {7}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, RLIL)
                        CreateByteField (Arg0, 0x03, RLIH)
                        CreateWordField (Arg0, 0x02, RLIO)
                        CreateWordField (Arg0, 0x09, RLIQ)
                        Store (0x01, LDN)
                        Store (0x00, LDA)
                        Store (RLIL, IOLW)
                        Store (RLIH, IOHI)
                        If (RLIQ)
                        {
                            FindSetRightBit (RLIQ, Local0)
                            Store (Decrement (Local0), IRQN)
                        }
                        Else
                        {
                            Store (0x00, IRQN)
                        }

                        If (LEqual (\PMOD, 0x00))
                        {
                            If (\PDIR)
                            {
                                Store (0x01, PMDS)
                            }
                            Else
                            {
                                Store (0x00, PMDS)
                            }
                        }
                        Else
                        {
                            If (LEqual (\PMOD, 0x01))
                            {
                                Store (0x02, PMDS)
                            }
                            Else
                            {
                                Store (0x03, PMDS)
                            }
                        }

                        Store (0x00, PPD)
                        Store (0x01, LDA)
                        If (LEqual (RLIO, 0x0378))
                        {
                            Store (0x00, XPA)
                        }
                        Else
                        {
                            If (LEqual (RLIO, 0x0278))
                            {
                                Store (0x01, XPA)
                            }
                            Else
                            {
                                If (LEqual (RLIO, 0x03BC))
                                {
                                    Store (0x02, XPA)
                                }
                                Else
                                {
                                    Fatal (0x02, 0x90020000, 0x01CA)
                                }
                            }
                        }

                        Store (0x01, XPE)
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        If (LDA)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        Store (0x01, LDA)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        Store (0x00, LDA)
                    }
                }

                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (\PMOD, 0x03))
                        {
                            If (XPE)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, XPE)
                        Store (0x01, LDN)
                        Store (0x00, IRQN)
                        Store (0x00, LDA)
                        Store (0x01, PPD)
                    }

                    Name (EPBF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                        IRQNoFlags () {}
                        DMA (Compatibility, NotBusMaster, Transfer8) {}
                    })
                    CreateWordField (EPBF, 0x02, ECN0)
                    CreateWordField (EPBF, 0x04, ECX0)
                    CreateByteField (EPBF, 0x07, ECL0)
                    CreateWordField (EPBF, 0x0A, ECN1)
                    CreateWordField (EPBF, 0x0C, ECX1)
                    CreateByteField (EPBF, 0x0F, ECL1)
                    CreateWordField (EPBF, 0x11, ECIQ)
                    CreateWordField (EPBF, 0x14, ECDQ)
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LNot (LEqual (\PMOD, 0x03)))
                        {
                            Return (EPBF)
                        }

                        Store (0x01, LDN)
                        Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
                        Store (Local0, ECN0)
                        Store (Local0, ECX0)
                        Add (Local0, 0x0400, ECN1)
                        Add (Local0, 0x0400, ECX1)
                        If (LEqual (Local0, 0x03BC))
                        {
                            Store (0x03, ECL0)
                            Store (0x03, ECL1)
                        }
                        Else
                        {
                            Store (0x08, ECL0)
                            Store (0x08, ECL1)
                        }

                        Store (IRQN, Local0)
                        If (Local0)
                        {
                            ShiftLeft (0x01, IRQN, ECIQ)
                        }
                        Else
                        {
                            Store (0x00, ECIQ)
                        }

                        Store (DMA0, Local0)
                        If (LLess (Local0, 0x04))
                        {
                            ShiftLeft (0x01, Local0, ECDQ)
                        }
                        Else
                        {
                            Store (0x00, ECDQ)
                        }

                        Return (EPBF)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                            IRQNoFlags () {7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                            IRQNoFlags () {5}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x03)
                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x03)
                            IRQNoFlags () {7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                            IRQNoFlags () {5}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                            IRQNoFlags () {7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x03)
                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x03)
                            IRQNoFlags () {5}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, RLIL)
                        CreateByteField (Arg0, 0x03, RLIH)
                        CreateWordField (Arg0, 0x02, RLIO)
                        CreateWordField (Arg0, 0x11, RLIQ)
                        CreateByteField (Arg0, 0x14, RLDQ)
                        Store (0x01, LDN)
                        Store (0x00, LDA)
                        Store (0x07, PMDS)
                        Store (0x01, PERA)
                        Store (RLIL, IOLW)
                        Store (RLIH, IOHI)
                        If (RLIQ)
                        {
                            FindSetRightBit (RLIQ, Local0)
                            Store (Decrement (Local0), IRQN)
                        }
                        Else
                        {
                            Store (0x00, IRQN)
                        }

                        If (And (RLDQ, 0x0F))
                        {
                            FindSetRightBit (RLDQ, Local0)
                            Store (Decrement (Local0), DMA0)
                        }
                        Else
                        {
                            Store (0x04, DMA0)
                        }

                        Store (0x00, PPD)
                        Store (0x01, LDA)
                        If (LEqual (RLIO, 0x0378))
                        {
                            Store (0x00, XPA)
                        }
                        Else
                        {
                            If (LEqual (RLIO, 0x0278))
                            {
                                Store (0x01, XPA)
                            }
                            Else
                            {
                                If (LEqual (RLIO, 0x03BC))
                                {
                                    Store (0x02, XPA)
                                }
                                Else
                                {
                                    Fatal (0x02, 0x90020000, 0x039D)
                                }
                            }
                        }

                        Store (0x01, XPE)
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        If (LDA)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        Store (0x01, LDA)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        Store (0x00, LDA)
                    }
                }

                Device (FIR)
                {
                    Name (_HID, EisaId ("IBM0071"))
                    Name (_CID, 0x1105D041)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (XU2E)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x0D)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, XU2E)
                        Store (0x02, LDN)
                        Store (0x00, IRQN)
                        Store (0x00, LDA)
                        Store (0x01, SP2D)
                    }

                    Name (U2BF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                        IRQNoFlags () {}
                        DMA (Compatibility, NotBusMaster, Transfer8) {}
                    })
                    CreateWordField (U2BF, 0x02, IRMN)
                    CreateWordField (U2BF, 0x04, IRMX)
                    CreateWordField (U2BF, 0x09, IRIQ)
                    CreateByteField (U2BF, 0x0C, IRDQ)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Store (0x02, LDN)
                        Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
                        Store (Local0, IRMN)
                        Store (Local0, IRMX)
                        Store (IRQN, Local0)
                        If (Local0)
                        {
                            ShiftLeft (0x01, IRQN, IRIQ)
                        }
                        Else
                        {
                            Store (0x00, IRIQ)
                        }

                        Store (DMA0, Local0)
                        If (LLess (Local0, 0x04))
                        {
                            ShiftLeft (0x01, Local0, IRDQ)
                        }
                        Else
                        {
                            Store (0x00, IRDQ)
                        }

                        Return (U2BF)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {3}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x01, 0x00)
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {4}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x01, 0x00)
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {3}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x01, 0x00)
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {4}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {4,5,7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {3,5,7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {4,5,7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFn (0x02, 0x00)
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {3,5,7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, RIIL)
                        CreateByteField (Arg0, 0x03, RIIH)
                        CreateWordField (Arg0, 0x02, RIIO)
                        CreateWordField (Arg0, 0x09, RIIQ)
                        CreateByteField (Arg0, 0x0C, RIDQ)
                        Store (0x02, LDN)
                        Store (0x00, LDA)
                        Store (RIIL, IOLW)
                        Store (RIIH, IOHI)
                        If (RIIQ)
                        {
                            FindSetRightBit (RIIQ, Local0)
                            Store (Decrement (Local0), IRQN)
                        }
                        Else
                        {
                            Store (0x00, IRQN)
                        }

                        If (And (RIDQ, 0x0F))
                        {
                            FindSetRightBit (RIDQ, Local0)
                            Store (Decrement (Local0), DMA0)
                        }
                        Else
                        {
                            Store (0x04, DMA0)
                        }

                        Store (0x04, DMA1)
                        Store (0x01, SBSE)
                        Store (0x00, SP2D)
                        Store (0x01, LDA)
                        If (LEqual (RIIO, 0x03F8))
                        {
                            Store (0x00, XU2A)
                        }
                        Else
                        {
                            If (LEqual (RIIO, 0x02F8))
                            {
                                Store (0x01, XU2A)
                            }
                            Else
                            {
                                If (LEqual (RIIO, 0x03E8))
                                {
                                    Store (0x07, XU2A)
                                }
                                Else
                                {
                                    If (LEqual (RIIO, 0x02E8))
                                    {
                                        Store (0x05, XU2A)
                                    }
                                    Else
                                    {
                                        Fatal (0x02, 0x90020000, 0x01AA)
                                    }
                                }
                            }
                        }

                        Store (0x01, XU2E)
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        Store (0x02, LDN)
                        If (LDA)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0x02, LDN)
                        Store (0x01, LDA)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x02, LDN)
                        Store (0x00, LDA)
                    }
                }

                Device (EC)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_UID, 0x00)
                    Name (_GPE, 0x1C)
                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, \H8DR)
                        }
                    }

                    OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        HDBM,   1, 
                            ,   1, 
                            ,   1, 
                        HFNE,   1, 
                            ,   1, 
                            ,   1, 
                        HLDM,   1, 
                        Offset (0x01), 
                            ,   1, 
                        BTCM,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        HBPR,   1, 
                        BTPC,   1, 
                        Offset (0x02), 
                        HDUE,   1, 
                        Offset (0x05), 
                        HSPA,   1, 
                        Offset (0x06), 
                        HSUN,   8, 
                        HSRP,   8, 
                        Offset (0x0C), 
                        HLCL,   8, 
                        Offset (0x0E), 
                        HFNS,   2, 
                        Offset (0x10), 
                        HAM0,   8, 
                        HAM1,   8, 
                        HAM2,   8, 
                        HAM3,   8, 
                        HAM4,   8, 
                        HAM5,   8, 
                        HAM6,   8, 
                        HAM7,   8, 
                        HAM8,   8, 
                        HAM9,   8, 
                        HAMA,   8, 
                        HAMB,   8, 
                        HAMC,   8, 
                        HAMD,   8, 
                        HAME,   8, 
                        HAMF,   8, 
                        HT00,   1, 
                        HT01,   1, 
                        HT02,   1, 
                            ,   1, 
                        HT10,   1, 
                        HT11,   1, 
                        HT12,   1, 
                        Offset (0x2A), 
                        HATR,   8, 
                        HT0H,   8, 
                        HT0L,   8, 
                        HT1H,   8, 
                        HT1L,   8, 
                        HFSP,   8, 
                            ,   6, 
                        HMUT,   1, 
                        Offset (0x32), 
                        HWPM,   1, 
                        HWLB,   1, 
                        HWLO,   1, 
                        HWDK,   1, 
                        HWFN,   1, 
                        HWBT,   1, 
                        HWRI,   1, 
                        HWBU,   1, 
                        HWLU,   1, 
                        Offset (0x34), 
                            ,   7, 
                        HPLO,   1, 
                        Offset (0x36), 
                        Offset (0x38), 
                        HB0S,   7, 
                        HB0A,   1, 
                        HB1S,   7, 
                        HB1A,   1, 
                        HCMU,   1, 
                        EDCP,   1, 
                            ,   1, 
                        COMP,   1, 
                        BTDS,   1, 
                        BDTC,   1, 
                        CBPW,   1, 
                        HB1I,   1, 
                            ,   1, 
                        KBLT,   1, 
                        BTPW,   1, 
                        BTDT,   1, 
                        HUBS,   1, 
                        BDPW,   1, 
                        BDDT,   1, 
                        HUBB,   1, 
                        Offset (0x46), 
                            ,   1, 
                        BTWK,   1, 
                        HPLD,   1, 
                            ,   1, 
                        HPAC,   1, 
                        BTST,   1, 
                            ,   1, 
                        BDST,   1, 
                        HPBU,   1, 
                            ,   1, 
                        HBID,   4, 
                        HBCS,   1, 
                        HPNF,   1, 
                        BID1,   4, 
                        CLID,   1, 
                        CBID,   1, 
                        CMID,   1, 
                        BDWK,   1, 
                        Offset (0x4E), 
                        HWAK,   16, 
                        Offset (0x78), 
                        TMP0,   8, 
                        TMP1,   8, 
                        TMP2,   8, 
                        TMP3,   8, 
                        TMP4,   8, 
                        TMP5,   8, 
                        TMP6,   8, 
                        TMP7,   8, 
                        Offset (0x81), 
                        HIID,   8, 
                        Offset (0x83), 
                        HFNI,   8, 
                        Offset (0x88), 
                        HDEC,   8, 
                        HDEO,   8, 
                        Offset (0x90), 
                        SSTA,   3, 
                            ,   2, 
                        Offset (0x91), 
                        Offset (0xB0), 
                        HDEN,   32, 
                        HDEP,   32, 
                        HDEM,   8, 
                        HDES,   8
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (\H8DR)
                        {
                            Store (0x00, HSPA)
                        }
                        Else
                        {
                            \MBEC (0x05, 0xFE, 0x00)
                        }

                        BINI ()
                        \_SB.PCI0.LPC.EC.HKEY.BTIN ()
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0062, 0x0062, 0x01, 0x01)
                        IO (Decode16, 0x0066, 0x0066, 0x01, 0x01)
                    })
                    Method (LED, 2, NotSerialized)
                    {
                        Or (Arg0, Arg1, Local0)
                        If (\H8DR)
                        {
                            Store (Local0, HLCL)
                        }
                        Else
                        {
                            \WBEC (0x0C, Local0)
                        }
                    }

                    Name (BAON, 0x00)
                    Name (WBON, 0x00)
                    Method (BEEP, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x05))
                        {
                            Store (0x00, WBON)
                        }

                        Store (WBON, Local2)
                        If (BAON)
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x00, BAON)
                                If (WBON)
                                {
                                    Store (0x03, Local0)
                                    Store (0x08, Local1)
                                }
                                Else
                                {
                                    Store (0x00, Local0)
                                    Store (0x00, Local1)
                                }
                            }
                            Else
                            {
                                Store (0xFF, Local0)
                                Store (0xFF, Local1)
                                If (LEqual (Arg0, 0x11))
                                {
                                    Store (0x00, WBON)
                                }

                                If (LEqual (Arg0, 0x10))
                                {
                                    Store (0x01, WBON)
                                }
                            }
                        }
                        Else
                        {
                            Store (Arg0, Local0)
                            Store (0xFF, Local1)
                            If (LEqual (Arg0, 0x0F))
                            {
                                Store (Arg0, Local0)
                                Store (0x08, Local1)
                                Store (0x01, BAON)
                            }

                            If (LEqual (Arg0, 0x11))
                            {
                                Store (0x00, Local0)
                                Store (0x00, Local1)
                                Store (0x00, WBON)
                            }

                            If (LEqual (Arg0, 0x10))
                            {
                                Store (0x03, Local0)
                                Store (0x08, Local1)
                                Store (0x01, WBON)
                            }
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            Store (0x00, WBON)
                            If (Local2)
                            {
                                Store (0x07, Local0)
                                If (LEqual (\SPS, 0x04))
                                {
                                    Store (0x00, Local2)
                                    Store (0xFF, Local0)
                                    Store (0xFF, Local1)
                                }
                            }
                        }

                        If (LEqual (Arg0, 0x07))
                        {
                            If (Local2)
                            {
                                Store (0x00, Local2)
                                Store (0xFF, Local0)
                                Store (0xFF, Local1)
                            }
                        }

                        If (LAnd (\H8DR, LNot (\W98F)))
                        {
                            If (LAnd (Local2, LNot (WBON)))
                            {
                                Store (0x00, HSRP)
                                Store (0x00, HSUN)
                                Sleep (0x64)
                            }

                            If (LNot (LEqual (Local1, 0xFF)))
                            {
                                Store (Local1, HSRP)
                            }

                            If (LNot (LEqual (Local0, 0xFF)))
                            {
                                Store (Local0, HSUN)
                            }
                        }
                        Else
                        {
                            If (LAnd (Local2, LNot (WBON)))
                            {
                                \WBEC (0x07, 0x00)
                                \WBEC (0x06, 0x00)
                                Sleep (0x64)
                            }

                            If (LNot (LEqual (Local1, 0xFF)))
                            {
                                \WBEC (0x07, Local1)
                            }

                            If (LNot (LEqual (Local0, 0xFF)))
                            {
                                \WBEC (0x06, Local0)
                            }
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            Sleep (0x012C)
                        }

                        If (LEqual (Arg0, 0x07))
                        {
                            Sleep (0x01F4)
                        }
                    }

                    Method (EVNT, 1, NotSerialized)
                    {
                        If (\H8DR)
                        {
                            If (Arg0)
                            {
                                Or (HAM7, 0x01, HAM7)
                                Or (HAM5, 0x04, HAM5)
                            }
                            Else
                            {
                                And (HAM7, 0xFE, HAM7)
                                And (HAM5, 0xFB, HAM5)
                            }
                        }
                        Else
                        {
                            If (Arg0)
                            {
                                \MBEC (0x17, 0xFF, 0x01)
                                \MBEC (0x15, 0xFF, 0x04)
                                If (\W98F)
                                {
                                    \WBEC (0x18, 0xFF)
                                }
                            }
                            Else
                            {
                                \MBEC (0x17, 0xFE, 0x00)
                                \MBEC (0x15, 0xFB, 0x00)
                                If (\W98F)
                                {
                                    \WBEC (0x18, 0x00)
                                }
                            }
                        }
                    }

                    Method (PNST, 1, NotSerialized)
                    {
                        If (LAnd (Arg0, BSTA (0x02)))
                        {
                            If (LAnd (\H8DR, LNot (\W98F)))
                            {
                                Store (0x01, HBPR)
                                Store (0x01, HUBB)
                            }
                            Else
                            {
                                \MBEC (0x01, 0xFF, 0x20)
                                \MBEC (0x3B, 0xFF, 0x80)
                            }
                        }
                        Else
                        {
                            If (LAnd (\H8DR, LNot (\W98F)))
                            {
                                Store (0x00, HBPR)
                                Store (0x00, HUBB)
                            }
                            Else
                            {
                                \MBEC (0x01, 0xDF, 0x00)
                                \MBEC (0x3B, 0x7F, 0x00)
                            }
                        }
                    }

                    PowerResource (PUBS, 0x03, 0x0000)
                    {
                        Method (_STA, 0, NotSerialized)
                        {
                            If (\H8DR)
                            {
                                Store (HUBS, Local0)
                            }
                            Else
                            {
                                And (\RBEC (0x3B), 0x10, Local0)
                            }

                            If (Local0)
                            {
                                Return (0x01)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }

                        Method (_ON, 0, NotSerialized)
                        {
                            If (\H8DR)
                            {
                                Store (0x01, HUBS)
                            }
                            Else
                            {
                                \MBEC (0x3B, 0xFF, 0x10)
                            }
                        }

                        Method (_OFF, 0, NotSerialized)
                        {
                            If (\H8DR)
                            {
                                Store (0x00, HUBS)
                            }
                            Else
                            {
                                \MBEC (0x3B, 0xEF, 0x00)
                            }
                        }
                    }

                    Mutex (MCPU, 0x07)
                    Method (_Q12, 0, NotSerialized)
                    {
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1003)
                    }

                    Method (_Q13, 0, NotSerialized)
                    {
                        If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
                        {
                            \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1004)
                        }
                        Else
                        {
                            Notify (\_SB.SLPB, 0x80)
                        }
                    }

                    Method (_Q64, 0, NotSerialized)
                    {
                        If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x10))
                        {
                            \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1005)
                        }
                        Else
                        {
                            \_SB.PCI0.LPC.EC.HKEY.DTGL ()
                        }
                    }

                    Method (_Q16, 0, NotSerialized)
                    {
                        If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x40))
                        {
                            \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1007)
                        }
                        Else
                        {
                            \_SB.PCI0.AGP.VID.VSWT ()
                        }
                    }

                    Method (_Q17, 0, NotSerialized)
                    {
                        If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x80))
                        {
                            \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1008)
                        }
                        Else
                        {
                            If (LNot (\WNTF))
                            {
                                VEXP ()
                            }
                        }
                    }

                    Method (_Q18, 0, NotSerialized)
                    {
                        If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0100))
                        {
                            \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1009)
                        }

                        Noop
                    }

                    Method (_Q1B, 0, NotSerialized)
                    {
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100C)
                    }

                    Method (_Q1F, 0, NotSerialized)
                    {
                        \CMS (0x0E)
                    }

                    Method (_Q26, 0, NotSerialized)
                    {
                        Sleep (0x01F4)
                        Notify (AC, 0x80)
                        Notify (\_TZ.THM0, 0x80)
                        If (LEqual (\WNTF, 0x02))
                        {
                            Acquire (MCPU, 0xFFFF)
                        }

                        If (\SPEN)
                        {
                            If (\OSPX)
                            {
                                Notify (\_PR.CPU, 0x80)
                            }
                            Else
                            {
                                \STEP (0x00)
                            }
                        }

                        If (LEqual (\WNTF, 0x02))
                        {
                            Sleep (0x64)
                        }

                        If (\OSC4)
                        {
                            Notify (\_PR.CPU, 0x81)
                        }

                        If (LEqual (\WNTF, 0x02))
                        {
                            Release (MCPU)
                        }
                    }

                    Method (_Q27, 0, NotSerialized)
                    {
                        Sleep (0x01F4)
                        Notify (AC, 0x80)
                        Notify (\_TZ.THM0, 0x80)
                        If (LEqual (\WNTF, 0x02))
                        {
                            Acquire (MCPU, 0xFFFF)
                        }

                        If (\SPEN)
                        {
                            If (\OSPX)
                            {
                                Notify (\_PR.CPU, 0x80)
                            }
                            Else
                            {
                                \STEP (0x01)
                            }
                        }

                        If (LEqual (\WNTF, 0x02))
                        {
                            Sleep (0x64)
                        }

                        If (\OSC4)
                        {
                            Notify (\_PR.CPU, 0x81)
                        }

                        If (LEqual (\WNTF, 0x02))
                        {
                            Release (MCPU)
                        }
                    }

                    Method (_Q2A, 0, NotSerialized)
                    {
                        \_SB.PCI0.AGP.VID.VLOC (0x01)
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5002)
                        Notify (\_SB.LID, 0x80)
                    }

                    Method (_Q2B, 0, NotSerialized)
                    {
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5001)
                        \CMS (0x0D)
                        Notify (\_SB.LID, 0x80)
                    }

                    Method (_Q3D, 0, NotSerialized)
                    {
                    }

                    Method (_Q48, 0, NotSerialized)
                    {
                        If (\SPEN)
                        {
                            If (\OSPX)
                            {
                                Notify (\_PR.CPU, 0x80)
                            }
                            Else
                            {
                                \STEP (0x04)
                            }
                        }
                    }

                    Method (_Q49, 0, NotSerialized)
                    {
                        If (\SPEN)
                        {
                            If (\OSPX)
                            {
                                Notify (\_PR.CPU, 0x80)
                            }
                            Else
                            {
                                \STEP (0x05)
                            }
                        }
                    }

                    Method (_Q7F, 0, NotSerialized)
                    {
                        Fatal (0x01, 0x80010000, 0x01C9)
                    }

                    Method (_Q4E, 0, NotSerialized)
                    {
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6011)
                    }

                    Method (_Q4F, 0, NotSerialized)
                    {
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6012)
                    }

                    Method (_Q22, 0, NotSerialized)
                    {
                        If (HB0A)
                        {
                            Notify (BAT0, 0x80)
                        }

                        If (HB1A)
                        {
                            Notify (BAT1, 0x80)
                        }
                    }

                    Method (_Q4A, 0, NotSerialized)
                    {
                        Notify (BAT0, 0x81)
                    }

                    Method (_Q4B, 0, NotSerialized)
                    {
                        Notify (BAT0, 0x80)
                    }

                    Method (_Q4C, 0, NotSerialized)
                    {
                        _Q38 ()
                    }

                    Method (_Q4D, 0, NotSerialized)
                    {
                        If (And (^BAT1.B1ST, ^BAT1.XB1S))
                        {
                            Notify (BAT1, 0x80)
                        }
                    }

                    Method (_Q24, 0, NotSerialized)
                    {
                        Notify (BAT0, 0x80)
                    }

                    Method (_Q25, 0, NotSerialized)
                    {
                        If (And (^BAT1.B1ST, ^BAT1.XB1S))
                        {
                            Notify (BAT1, 0x80)
                        }
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBRC,   16, 
                        SBFC,   16, 
                        SBAE,   16, 
                        SBRS,   16, 
                        SBAC,   16, 
                        SBVO,   16, 
                        SBAF,   16, 
                        SBBS,   16
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                            ,   15, 
                        SBCM,   1, 
                        SBMD,   16, 
                        SBCC,   16
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBDC,   16, 
                        SBDV,   16, 
                        SBOM,   16, 
                        SBSI,   16, 
                        SBDT,   16, 
                        SBSN,   16
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBCH,   32
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBMN,   128
                    }

                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0), 
                        SBDN,   128
                    }

                    Mutex (BATM, 0x07)
                    Method (GBIF, 3, NotSerialized)
                    {
                        Acquire (BATM, 0xFFFF)
                        If (Arg2)
                        {
                            Or (Arg0, 0x01, HIID)
                            Store (SBCM, Local7)
                            XOr (Local7, 0x01, Index (Arg1, 0x00))
                            Store (Arg0, HIID)
                            If (Local7)
                            {
                                Multiply (SBFC, 0x0A, Local1)
                            }
                            Else
                            {
                                Store (SBFC, Local1)
                            }

                            Store (Local1, Index (Arg1, 0x02))
                            Or (Arg0, 0x02, HIID)
                            If (Local7)
                            {
                                Multiply (SBDC, 0x0A, Local0)
                            }
                            Else
                            {
                                Store (SBDC, Local0)
                            }

                            Store (Local0, Index (Arg1, 0x01))
                            Divide (Local1, 0x14, Local2, Index (Arg1, 0x05))
                            If (Local7)
                            {
                                Store (0xC8, Index (Arg1, 0x06))
                            }
                            Else
                            {
                                If (SBDV)
                                {
                                    Divide (0x00030D40, SBDV, Local2, Index (Arg1, 0x06))
                                }
                                Else
                                {
                                    Store (0x00, Index (Arg1, 0x06))
                                }
                            }

                            Store (SBDV, Index (Arg1, 0x04))
                            Store (SBSN, Local0)
                            Name (SERN, Buffer (0x06)
                            {
                                "     "
                            })
                            Store (0x04, Local2)
                            While (Local0)
                            {
                                Divide (Local0, 0x0A, Local1, Local0)
                                Add (Local1, 0x30, Index (SERN, Local2))
                                Decrement (Local2)
                            }

                            Store (SERN, Index (Arg1, 0x0A))
                            Or (Arg0, 0x06, HIID)
                            Store (SBDN, Index (Arg1, 0x09))
                            Or (Arg0, 0x04, HIID)
                            Name (BTYP, Buffer (0x05)
                            {
                                0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            Store (SBCH, BTYP)
                            Store (BTYP, Index (Arg1, 0x0B))
                            Or (Arg0, 0x05, HIID)
                            Store (SBMN, Index (Arg1, 0x0C))
                        }
                        Else
                        {
                            Store (0xFFFFFFFF, Index (Arg1, 0x01))
                            Store (0x00, Index (Arg1, 0x05))
                            Store (0x00, Index (Arg1, 0x06))
                            Store (0xFFFFFFFF, Index (Arg1, 0x02))
                        }

                        Release (BATM)
                        Return (Arg1)
                    }

                    Method (GBST, 4, NotSerialized)
                    {
                        Acquire (BATM, 0xFFFF)
                        If (And (Arg1, 0x20))
                        {
                            Store (0x02, Local0)
                        }
                        Else
                        {
                            If (And (Arg1, 0x40))
                            {
                                Store (0x01, Local0)
                            }
                            Else
                            {
                                Store (0x00, Local0)
                            }
                        }

                        If (And (Arg1, 0x0F)) {}
                        Else
                        {
                            Or (Local0, 0x04, Local0)
                        }

                        If (LEqual (And (Arg1, 0x0F), 0x0F))
                        {
                            Store (0x04, Local0)
                            Store (0x00, Local1)
                            Store (0x00, Local2)
                            Store (0x00, Local3)
                        }
                        Else
                        {
                            Store (Arg0, HIID)
                            Store (SBVO, Local3)
                            If (Arg2)
                            {
                                Multiply (SBRC, 0x0A, Local2)
                            }
                            Else
                            {
                                Store (SBRC, Local2)
                            }

                            Store (SBAC, Local1)
                            If (LNot (LLess (Local1, 0x8000)))
                            {
                                If (And (Local0, 0x01))
                                {
                                    Subtract (0x00010000, Local1, Local1)
                                }
                                Else
                                {
                                    Store (0x00, Local1)
                                }
                            }
                            Else
                            {
                                If (LNot (And (Local0, 0x02)))
                                {
                                    Store (0x00, Local1)
                                }
                            }

                            If (Arg2)
                            {
                                Multiply (Local3, Local1, Local1)
                                Divide (Local1, 0x03E8, Local7, Local1)
                            }
                        }

                        Store (Local0, Index (Arg3, 0x00))
                        Store (Local1, Index (Arg3, 0x01))
                        Store (Local2, Index (Arg3, 0x02))
                        Store (Local3, Index (Arg3, 0x03))
                        Release (BATM)
                        Return (Arg3)
                    }

                    Device (BAT0)
                    {
                        Name (_HID, EisaId ("PNP0C0A"))
                        Name (_UID, 0x00)
                        Name (_PCL, Package (0x01)
                        {
                            \_SB
                        })
                        Name (B0ST, 0x00)
                        Name (BT0I, Package (0x0D)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x01, 
                            0x2A30, 
                            0x00, 
                            0x00, 
                            0x01, 
                            0x01, 
                            "", 
                            "", 
                            "", 
                            ""
                        })
                        Name (BT0P, Package (0x04) {})
                        Method (_STA, 0, NotSerialized)
                        {
                            If (\H8DR)
                            {
                                Store (HB0A, B0ST)
                            }
                            Else
                            {
                                If (And (\RBEC (0x38), 0x80))
                                {
                                    Store (0x01, B0ST)
                                }
                                Else
                                {
                                    Store (0x00, B0ST)
                                }
                            }

                            If (B0ST)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (_BIF, 0, NotSerialized)
                        {
                            Store (0x00, Local7)
                            Store (0x0A, Local6)
                            While (LAnd (LNot (Local7), Local6))
                            {
                                If (HB0A)
                                {
                                    If (LEqual (And (HB0S, 0x0F), 0x0F))
                                    {
                                        Sleep (0x03E8)
                                        Decrement (Local6)
                                    }
                                    Else
                                    {
                                        Store (0x01, Local7)
                                    }
                                }
                                Else
                                {
                                    Store (0x00, Local6)
                                }
                            }

                            Return (GBIF (0x00, BT0I, Local7))
                        }

                        Method (_BST, 0, NotSerialized)
                        {
                            XOr (DerefOf (Index (BT0I, 0x00)), 0x01, Local0)
                            Return (GBST (0x00, HB0S, Local0, BT0P))
                        }

                        Method (_BTP, 1, NotSerialized)
                        {
                            And (HAM4, 0xEF, HAM4)
                            If (Arg0)
                            {
                                Store (Arg0, Local1)
                                If (LNot (DerefOf (Index (BT0I, 0x00))))
                                {
                                    Divide (Local1, 0x0A, Local0, Local1)
                                }

                                And (Local1, 0xFF, HT0L)
                                And (ShiftRight (Local1, 0x08), 0xFF, HT0H)
                                Or (HAM4, 0x10, HAM4)
                            }
                        }
                    }

                    Device (BAT1)
                    {
                        Name (_HID, EisaId ("PNP0C0A"))
                        Name (_UID, 0x01)
                        Name (_PCL, Package (0x01)
                        {
                            \_SB
                        })
                        Name (B1ST, 0x00)
                        Name (XB1S, 0x01)
                        Name (BT1I, Package (0x0D)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x01, 
                            0x2A30, 
                            0x00, 
                            0x00, 
                            0x01, 
                            0x01, 
                            "", 
                            "", 
                            "", 
                            ""
                        })
                        Name (BT1P, Package (0x04) {})
                        Method (_STA, 0, NotSerialized)
                        {
                            If (\H8DR)
                            {
                                Store (HB1A, B1ST)
                            }
                            Else
                            {
                                If (And (\RBEC (0x39), 0x80))
                                {
                                    Store (0x01, B1ST)
                                }
                                Else
                                {
                                    Store (0x00, B1ST)
                                }
                            }

                            If (B1ST)
                            {
                                If (XB1S)
                                {
                                    Return (0x1F)
                                }
                                Else
                                {
                                    If (\WNTF)
                                    {
                                        Return (0x00)
                                    }
                                    Else
                                    {
                                        Return (0x1F)
                                    }
                                }
                            }
                            Else
                            {
                                If (\WNTF)
                                {
                                    Return (0x00)
                                }
                                Else
                                {
                                    Return (0x0F)
                                }
                            }
                        }

                        Method (_BIF, 0, NotSerialized)
                        {
                            Store (0x00, Local7)
                            Store (0x0A, Local6)
                            While (LAnd (LNot (Local7), Local6))
                            {
                                If (HB1A)
                                {
                                    If (LEqual (And (HB1S, 0x0F), 0x0F))
                                    {
                                        Sleep (0x03E8)
                                        Decrement (Local6)
                                    }
                                    Else
                                    {
                                        Store (0x01, Local7)
                                    }
                                }
                                Else
                                {
                                    Store (0x00, Local6)
                                }
                            }

                            Return (GBIF (0x10, BT1I, Local7))
                        }

                        Method (_BST, 0, NotSerialized)
                        {
                            XOr (DerefOf (Index (BT1I, 0x00)), 0x01, Local0)
                            Return (GBST (0x10, HB1S, Local0, BT1P))
                        }

                        Method (_BTP, 1, NotSerialized)
                        {
                            And (HAM4, 0xDF, HAM4)
                            If (Arg0)
                            {
                                Store (Arg0, Local1)
                                If (LNot (DerefOf (Index (BT1I, 0x00))))
                                {
                                    Divide (Local1, 0x0A, Local0, Local1)
                                }

                                And (Local1, 0xFF, HT1L)
                                And (ShiftRight (Local1, 0x08), 0xFF, HT1H)
                                Or (HAM4, 0x20, HAM4)
                            }
                        }
                    }

                    Device (AC)
                    {
                        Name (_HID, "ACPI0003")
                        Name (_UID, 0x00)
                        Name (_PCL, Package (0x01)
                        {
                            \_SB
                        })
                        Method (_PSR, 0, NotSerialized)
                        {
                            Return (HPAC)
                        }

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

                    Device (HKEY)
                    {
                        Name (_HID, EisaId ("IBM0068"))
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Method (MHKV, 0, NotSerialized)
                        {
                            Return (0x0100)
                        }

                        Name (DHKC, 0x00)
                        Name (DHKB, 0x01)
                        Mutex (XDHK, 0x07)
                        Name (DHKH, 0x00)
                        Name (DHKW, 0x00)
                        Name (DHKS, 0x00)
                        Name (DHKD, 0x00)
                        Name (DHKN, 0x080C)
                        Name (DHKT, 0x00)
                        Method (MHKA, 0, NotSerialized)
                        {
                            Return (0x09DC)
                        }

                        Method (MHKN, 0, NotSerialized)
                        {
                            Return (DHKN)
                        }

                        Method (MHKK, 1, NotSerialized)
                        {
                            If (DHKC)
                            {
                                Return (And (DHKN, Arg0))
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (MHKM, 2, NotSerialized)
                        {
                            Acquire (XDHK, 0xFFFF)
                            If (LGreater (Arg0, 0x20))
                            {
                                Noop
                            }
                            Else
                            {
                                ShiftLeft (One, Decrement (Arg0), Local0)
                                If (And (Local0, 0x09DC))
                                {
                                    If (Arg1)
                                    {
                                        Or (Local0, DHKN, DHKN)
                                    }
                                    Else
                                    {
                                        And (DHKN, XOr (Local0, 0xFFFFFFFF), DHKN)
                                    }
                                }
                                Else
                                {
                                    Noop
                                }
                            }

                            Release (XDHK)
                        }

                        Method (MHKS, 0, NotSerialized)
                        {
                            Notify (\_SB.SLPB, 0x80)
                        }

                        Method (MHKC, 1, NotSerialized)
                        {
                            Store (Arg0, DHKC)
                        }

                        Method (MHKP, 0, NotSerialized)
                        {
                            Acquire (XDHK, 0xFFFF)
                            If (DHKW)
                            {
                                Store (DHKW, Local1)
                                Store (Zero, DHKW)
                            }
                            Else
                            {
                                If (DHKD)
                                {
                                    Store (DHKD, Local1)
                                    Store (Zero, DHKD)
                                }
                                Else
                                {
                                    If (DHKS)
                                    {
                                        Store (DHKS, Local1)
                                        Store (Zero, DHKS)
                                    }
                                    Else
                                    {
                                        If (DHKT)
                                        {
                                            Store (DHKT, Local1)
                                            Store (Zero, DHKT)
                                        }
                                        Else
                                        {
                                            Store (DHKH, Local1)
                                            Store (Zero, DHKH)
                                        }
                                    }
                                }
                            }

                            Release (XDHK)
                            Return (Local1)
                        }

                        Method (MHKE, 1, NotSerialized)
                        {
                            Store (Arg0, DHKB)
                            Acquire (XDHK, 0xFFFF)
                            Store (Zero, DHKH)
                            Store (Zero, DHKW)
                            Store (Zero, DHKS)
                            Store (Zero, DHKD)
                            Store (Zero, DHKT)
                            Release (XDHK)
                        }

                        Method (MHKQ, 1, NotSerialized)
                        {
                            If (DHKB)
                            {
                                If (DHKC)
                                {
                                    Acquire (XDHK, 0xFFFF)
                                    If (LLess (Arg0, 0x1000)) {}
                                    Else
                                    {
                                        If (LLess (Arg0, 0x2000))
                                        {
                                            Store (Arg0, DHKH)
                                        }
                                        Else
                                        {
                                            If (LLess (Arg0, 0x3000))
                                            {
                                                Store (Arg0, DHKW)
                                            }
                                            Else
                                            {
                                                If (LLess (Arg0, 0x4000))
                                                {
                                                    Store (Arg0, DHKS)
                                                }
                                                Else
                                                {
                                                    If (LLess (Arg0, 0x5000))
                                                    {
                                                        Store (Arg0, DHKD)
                                                    }
                                                    Else
                                                    {
                                                        If (LLess (Arg0, 0x6000))
                                                        {
                                                            Store (Arg0, DHKH)
                                                        }
                                                        Else
                                                        {
                                                            If (LLess (Arg0, 0x7000))
                                                            {
                                                                Store (Arg0, DHKT)
                                                            }
                                                            Else
                                                            {
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    Release (XDHK)
                                    If (LEqual (DHKH, 0x1003))
                                    {
                                        \CMS (0x0D)
                                    }

                                    Notify (HKEY, 0x80)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x1004))
                                    {
                                        Notify (\_SB.SLPB, 0x80)
                                    }
                                }
                            }
                        }

                        Method (MHKB, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                \_SB.PCI0.LPC.EC.BEEP (0x11)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x01))
                                {
                                    \_SB.PCI0.LPC.EC.BEEP (0x10)
                                }
                                Else
                                {
                                }
                            }
                        }

                        Method (MHKD, 0, NotSerialized)
                        {
                            \_SB.PCI0.AGP.VID.VLOC (0x00)
                        }
                    }
                }
            }

            Name (_ADR, 0x00)
            Name (_S3D, 0x02)
            Name (RID, 0x00)
            Name (_PRT, Package (0x06)
            {
                Package (0x04)
                {
                    0x001DFFFF, 
                    0x00, 
                    \_SB.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x01, 
                    \_SB.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x02, 
                    \_SB.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x03, 
                    \_SB.LNKH, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x00, 
                    \_SB.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x01, 
                    \_SB.LNKB, 
                    0x00
                }
            })
            Name (_HID, EisaId ("PNP0A03"))
            Name (_BBN, 0x00)
            OperationRegion (MHCS, PCI_Config, 0x00, 0x0100)
            Field (MHCS, DWordAcc, NoLock, Preserve)
            {
                Offset (0x60), 
                DRB0,   8, 
                DRB1,   8, 
                DRB2,   8, 
                DRB3,   8, 
                DRB4,   8, 
                DRB5,   8, 
                DRB6,   8, 
                DRB7,   8, 
                Offset (0x90), 
                PAM0,   8, 
                PAM1,   8, 
                PAM2,   8, 
                PAM3,   8, 
                PAM4,   8, 
                PAM5,   8, 
                PAM6,   8
            }

            Name (_CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0000,
                    0x0CF7,
                    0x0000,
                    0x0CF8)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0D00,
                    0xFFFF,
                    0x0000,
                    0xF300)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C0000,
                    0x000C3FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C4000,
                    0x000C7FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C8000,
                    0x000CBFFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000CC000,
                    0x000CFFFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D0000,
                    0x000D3FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D4000,
                    0x000D7FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D8000,
                    0x000DBFFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000DC000,
                    0x000DFFFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E0000,
                    0x000E3FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E4000,
                    0x000E7FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E8000,
                    0x000EBFFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000EC000,
                    0x000EFFFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00100000,
                    0xFEBFFFFF,
                    0x00000000,
                    0xFEB00000)
            })
            CreateDWordField (_CRS, 0x68, C0LN)
            CreateDWordField (_CRS, 0x82, C4LN)
            CreateDWordField (_CRS, 0x9C, C8LN)
            CreateDWordField (_CRS, 0xB6, CCLN)
            CreateDWordField (_CRS, 0xD0, D0LN)
            CreateDWordField (_CRS, 0xEA, D4LN)
            CreateDWordField (_CRS, 0x0104, D8LN)
            CreateDWordField (_CRS, 0x011E, DCLN)
            CreateDWordField (_CRS, 0x0138, E0LN)
            CreateDWordField (_CRS, 0x0152, E4LN)
            CreateDWordField (_CRS, 0x016C, E8LN)
            CreateDWordField (_CRS, 0x0186, ECLN)
            CreateDWordField (_CRS, 0x0194, XXMN)
            CreateDWordField (_CRS, 0x0198, XXMX)
            CreateDWordField (_CRS, 0x01A0, XXLN)
            Method (_INI, 0, Serialized)
            {
                If (LNot (\OSIF))
                {
                    \_SB._INI ()
                }

                Multiply (0x02000000, DRB3, Local0)
                Store (Local0, \MEMX)
                Store (Local0, XXMN)
                Add (Subtract (XXMX, XXMN), 0x01, XXLN)
                If (And (PAM1, 0x03))
                {
                    Store (0x00, C0LN)
                }

                If (And (PAM1, 0x30))
                {
                    Store (0x00, C4LN)
                }

                If (And (PAM2, 0x03))
                {
                    Store (0x00, C8LN)
                }

                If (And (PAM2, 0x30))
                {
                    Store (0x00, CCLN)
                }

                If (And (PAM3, 0x03))
                {
                    Store (0x00, D0LN)
                }

                If (And (PAM3, 0x30))
                {
                    Store (0x00, D4LN)
                }

                If (And (PAM4, 0x03))
                {
                    Store (0x00, D8LN)
                }

                If (And (PAM4, 0x30))
                {
                    Store (0x00, DCLN)
                }

                If (And (PAM5, 0x03))
                {
                    Store (0x00, E0LN)
                }

                If (And (PAM5, 0x30))
                {
                    Store (0x00, E4LN)
                }

                If (And (PAM6, 0x03))
                {
                    Store (0x00, E8LN)
                }

                If (And (PAM6, 0x30))
                {
                    Store (0x00, ECLN)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x0D, 
                0x03
            })
            Device (AGP)
            {
                Name (_ADR, 0x00010000)
                Name (_S3D, 0x03)
                Name (RID, 0x00)
                Name (_PRT, Package (0x02)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x01, 
                        \_SB.LNKB, 
                        0x00
                    }
                })
                Name (EDX1, Buffer (0x80)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x55, 0x0A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x19, 
                    0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, 
                    0x36, 0x00, 0x0E, 0xCB, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x20, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33
                })
                Name (EDX2, Buffer (0x0100)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x55, 0x0A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x19, 
                    0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, 
                    0x36, 0x00, 0x0E, 0xCB, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x20, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (EDL1, Buffer (0x80)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x4D, 0x25, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0x90, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x2A, 
                    0x78, 0x20, 0x51, 0x1A, 0x10, 0x40, 0x30, 0x70, 
                    0x13, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x34, 0x30, 0x30, 0x78, 0x31, 0x30, 0x35, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF
                })
                Name (EDL2, Buffer (0x0100)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x4D, 0x25, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0x90, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x2A, 
                    0x78, 0x20, 0x51, 0x1A, 0x10, 0x40, 0x30, 0x70, 
                    0x13, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x34, 0x30, 0x30, 0x78, 0x31, 0x30, 0x35, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (EDL3, Buffer (0x80)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x5E, 0x1A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0x90, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x2A, 
                    0x78, 0x20, 0x51, 0x1A, 0x10, 0x40, 0x30, 0x70, 
                    0x13, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x34, 0x30, 0x30, 0x78, 0x31, 0x30, 0x35, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9
                })
                Name (EDL4, Buffer (0x0100)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x5E, 0x1A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0x90, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x2A, 
                    0x78, 0x20, 0x51, 0x1A, 0x10, 0x40, 0x30, 0x70, 
                    0x13, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x34, 0x30, 0x30, 0x78, 0x31, 0x30, 0x35, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (EDU1, Buffer (0x80)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x54, 0x0A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x1E, 0x16, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0xA9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x3F, 
                    0x40, 0x30, 0x62, 0xB0, 0x32, 0x40, 0x40, 0xC0, 
                    0x14, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x36, 0x30, 0x30, 0x78, 0x31, 0x32, 0x30, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1
                })
                Name (EDU2, Buffer (0x0100)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x54, 0x0A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x1E, 0x16, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0xA9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x3F, 
                    0x40, 0x30, 0x62, 0xB0, 0x32, 0x40, 0x40, 0xC0, 
                    0x14, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x36, 0x30, 0x30, 0x78, 0x31, 0x32, 0x30, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (EDU3, Buffer (0x80)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x5D, 0x1A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x1E, 0x16, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0xA9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x3F, 
                    0x40, 0x30, 0x62, 0xB0, 0x32, 0x40, 0x40, 0xC0, 
                    0x14, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x36, 0x30, 0x30, 0x78, 0x31, 0x32, 0x30, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98
                })
                Name (EDU4, Buffer (0x0100)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0x24, 0x4D, 0x5D, 0x1A, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x80, 0x1E, 0x16, 0x00, 
                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27, 
                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x81, 0x80, 
                    0xA9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x3F, 
                    0x40, 0x30, 0x62, 0xB0, 0x32, 0x40, 0x40, 0xC0, 
                    0x14, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, 
                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, 
                    0x36, 0x30, 0x30, 0x78, 0x31, 0x32, 0x30, 0x30, 
                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (EDT1, Buffer (0x80)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0xC1, 0xD0, 0xFE, 0x09, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 
                    0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0xA1, 0x08, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x31, 0x58, 0x1C, 0x20, 0x28, 0x80, 
                    0x01, 0x00, 0xF6, 0xB8, 0x00, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x54, 0x56, 
                    0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59
                })
                Name (EDT2, Buffer (0x0100)
                {
                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
                    0xC1, 0xD0, 0xFE, 0x09, 0x01, 0x01, 0x01, 0x01, 
                    0x23, 0x09, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 
                    0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0xA1, 0x08, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x31, 0x58, 0x1C, 0x20, 0x28, 0x80, 
                    0x01, 0x00, 0xF6, 0xB8, 0x00, 0x00, 0x00, 0x1A, 
                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, 
                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x54, 0x56, 
                    0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Mutex (MDGS, 0x07)
                Name (VDEE, 0x01)
                Name (VDDA, Buffer (0x02) {})
                CreateBitField (VDDA, 0x00, VUPC)
                CreateBitField (VDDA, 0x01, VQDL)
                CreateBitField (VDDA, 0x02, VQDC)
                CreateBitField (VDDA, 0x03, VQDT)
                CreateBitField (VDDA, 0x04, VQDD)
                CreateBitField (VDDA, 0x05, VSDL)
                CreateBitField (VDDA, 0x06, VSDC)
                CreateBitField (VDDA, 0x07, VSDT)
                CreateBitField (VDDA, 0x08, VSDD)
                CreateBitField (VDDA, 0x0A, MSWT)
                CreateBitField (VDDA, 0x0B, VWST)
                Device (VID)
                {
                    Name (_ADR, 0x00)
                    OperationRegion (VPCG, PCI_Config, 0x00, 0x0100)
                    Field (VPCG, DWordAcc, NoLock, Preserve)
                    {
                        Offset (0x54), 
                        VPWR,   32
                    }

                    Name (_S3D, 0x03)
                    Method (_INI, 0, NotSerialized)
                    {
                        \VUPS (0x02)
                        Store (\VCDL, VQDL)
                        Store (\VCDC, VQDC)
                        Store (\VCDT, VQDT)
                        Store (\VCDD, VQDD)
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                    }

                    Method (_PS1, 0, NotSerialized)
                    {
                    }

                    Method (_PS2, 0, NotSerialized)
                    {
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                    }

                    Method (VSWT, 0, NotSerialized)
                    {
                        Store (\VEVT (0x05), Local0)
                        And (0x0F, Local0, Local1)
                        If (Local1)
                        {
                            ASWT (Local1, 0x01)
                        }
                    }

                    Method (VLOC, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, \_SB.LID._LID ()))
                        {
                            \VSLD (Arg0)
                            If (LEqual (VPWR, 0x00))
                            {
                                If (Arg0)
                                {
                                    Store (\VEVT (0x01), Local0)
                                }
                                Else
                                {
                                    Store (\VEVT (0x02), Local0)
                                }

                                And (0x0F, Local0, Local1)
                                If (Local1)
                                {
                                    ASWT (Local1, 0x00)
                                }
                            }
                        }
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            Store (0x14, Local0)
                            While (Local0)
                            {
                                Decrement (Local0)
                                Acquire (MDGS, 0xFFFF)
                                If (LEqual (0x00, MSWT))
                                {
                                    Store (0x01, MSWT)
                                    Store (0x00, Local0)
                                    Store (Arg0, VDEE)
                                }

                                Release (MDGS)
                                Sleep (0xC8)
                            }
                        }
                        Else
                        {
                            Acquire (MDGS, 0xFFFF)
                            If (LEqual (VDEE, 0x02))
                            {
                                Store (0x00, MSWT)
                            }

                            If (LGreater (Arg0, 0x02))
                            {
                                Store (0x01, VDEE)
                            }
                            Else
                            {
                                Store (Arg0, VDEE)
                            }

                            Release (MDGS)
                        }
                    }

                    Method (_DOD, 0, NotSerialized)
                    {
                        Return (Package (0x04)
                        {
                            0x0110, 
                            0x0100, 
                            0x0200, 
                            0x0210
                        })
                    }

                    Method (ASWT, 2, NotSerialized)
                    {
                        If (LEqual (0x01, VDEE))
                        {
                            And (0x01, Arg1, Local1)
                            \VSDS (Arg0, Local1)
                        }
                        Else
                        {
                            Store (0x14, Local0)
                            While (Local0)
                            {
                                Decrement (Local0)
                                Acquire (MDGS, 0xFFFF)
                                If (LEqual (0x00, MSWT))
                                {
                                    Store (0x00, Local0)
                                    If (And (0x01, Arg1))
                                    {
                                        Store (0x01, VUPC)
                                    }
                                    Else
                                    {
                                        Store (0x00, VUPC)
                                    }

                                    If (And (0x01, Arg0))
                                    {
                                        Store (0x01, VQDL)
                                    }
                                    Else
                                    {
                                        Store (0x00, VQDL)
                                    }

                                    If (And (0x02, Arg0))
                                    {
                                        Store (0x01, VQDC)
                                    }
                                    Else
                                    {
                                        Store (0x00, VQDC)
                                    }

                                    If (And (0x04, Arg0))
                                    {
                                        Store (0x01, VQDT)
                                    }
                                    Else
                                    {
                                        Store (0x00, VQDT)
                                    }

                                    If (And (0x08, Arg0))
                                    {
                                        Store (0x01, VQDD)
                                    }
                                    Else
                                    {
                                        Store (0x00, VQDD)
                                    }
                                }

                                Release (MDGS)
                                Sleep (0xC8)
                            }

                            If (And (0x02, Arg1))
                            {
                                Notify (VID, 0x81)
                            }
                            Else
                            {
                                Notify (VID, 0x80)
                            }
                        }
                    }

                    Method (VDSW, 1, NotSerialized)
                    {
                        If (LEqual (VPWR, 0x00))
                        {
                            If (Arg0)
                            {
                                Store (\VEVT (0x03), Local0)
                            }
                            Else
                            {
                                Store (\VEVT (0x04), Local0)
                            }

                            And (0x0F, Local0, Local1)
                            If (Local1)
                            {
                                ASWT (Local1, 0x00)
                            }
                        }
                    }

                    Device (LCD0)
                    {
                        Name (_ADR, 0x0110)
                        Method (_DCS, 0, NotSerialized)
                        {
                            \VUPS (0x00)
                            If (\VCDL)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x1D)
                            }
                        }

                        Method (_DDC, 1, NotSerialized)
                        {
                            If (LEqual (\VLID, 0x02))
                            {
                                If (LEqual (Arg0, 0x01))
                                {
                                    Return (EDX1)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x02))
                                    {
                                        Return (EDX2)
                                    }
                                }
                            }

                            If (LEqual (\VLID, 0x04))
                            {
                                If (LEqual (Arg0, 0x01))
                                {
                                    Return (EDL1)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x02))
                                    {
                                        Return (EDL2)
                                    }
                                }
                            }

                            If (LEqual (\VLID, 0x0C))
                            {
                                If (LEqual (Arg0, 0x01))
                                {
                                    Return (EDL3)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x02))
                                    {
                                        Return (EDL4)
                                    }
                                }
                            }

                            If (LEqual (\VLID, 0x05))
                            {
                                If (LEqual (Arg0, 0x01))
                                {
                                    Return (EDU1)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x02))
                                    {
                                        Return (EDU2)
                                    }
                                }
                            }

                            If (LEqual (\VLID, 0x0D))
                            {
                                If (LEqual (Arg0, 0x01))
                                {
                                    Return (EDU3)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x02))
                                    {
                                        Return (EDU4)
                                    }
                                }
                            }

                            Return (0x00)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (VQDL)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            And (Arg0, 0x01, VSDL)
                            If (And (Arg0, 0x80000000))
                            {
                                If (And (Arg0, 0x40000000))
                                {
                                    DSWT (0x02)
                                }
                                Else
                                {
                                    DSWT (0x01)
                                }
                            }
                        }
                    }

                    Device (CRT0)
                    {
                        Name (_ADR, 0x0100)
                        Method (_DCS, 0, NotSerialized)
                        {
                            \VUPS (0x01)
                            If (\VCSS)
                            {
                                If (\VCDC)
                                {
                                    Return (0x1F)
                                }
                                Else
                                {
                                    Return (0x1D)
                                }
                            }
                            Else
                            {
                                If (\VCDC)
                                {
                                    Return (0x0F)
                                }
                                Else
                                {
                                    Return (0x0D)
                                }
                            }
                        }

                        Method (_DDC, 1, NotSerialized)
                        {
                            \VDDC ()
                            If (LEqual (Arg0, 0x01))
                            {
                                Return (\DDC1)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Return (\DDC2)
                                }
                                Else
                                {
                                    Return (0x00)
                                }
                            }
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (VQDC)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            And (Arg0, 0x01, VSDC)
                            If (And (Arg0, 0x80000000))
                            {
                                If (And (Arg0, 0x40000000))
                                {
                                    DSWT (0x02)
                                }
                                Else
                                {
                                    DSWT (0x01)
                                }
                            }
                        }
                    }

                    Device (TV0)
                    {
                        Name (_ADR, 0x0200)
                        Method (_DCS, 0, NotSerialized)
                        {
                            \VUPS (0x00)
                            If (\VCDT)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x1D)
                            }
                        }

                        Method (_DDC, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Return (EDT1)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Return (EDT2)
                                }
                            }

                            Return (0x00)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (VQDT)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            And (Arg0, 0x01, VSDT)
                            If (And (Arg0, 0x80000000))
                            {
                                If (And (Arg0, 0x40000000))
                                {
                                    DSWT (0x02)
                                }
                                Else
                                {
                                    DSWT (0x01)
                                }
                            }
                        }
                    }

                    Device (DVI0)
                    {
                        Name (_ADR, 0x0210)
                        Method (_DCS, 0, NotSerialized)
                        {
                            \VUPS (0x00)
                            If (\VCDD)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x1D)
                            }
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (VQDD)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            And (Arg0, 0x01, VSDD)
                            If (And (Arg0, 0x80000000))
                            {
                                If (And (Arg0, 0x40000000))
                                {
                                    DSWT (0x02)
                                }
                                Else
                                {
                                    DSWT (0x01)
                                }
                            }
                        }
                    }

                    Method (DSWT, 1, NotSerialized)
                    {
                        If (VSDL)
                        {
                            Store (0x01, Local0)
                        }
                        Else
                        {
                            Store (0x00, Local0)
                        }

                        If (VSDC)
                        {
                            Or (0x02, Local0, Local0)
                        }

                        If (Local0)
                        {
                            If (VUPC)
                            {
                                \VSDS (Local0, Arg0)
                            }
                        }
                        Else
                        {
                            Noop
                        }
                    }
                }
            }

            Device (PCI1)
            {
                Name (_ADR, 0x001E0000)
                Name (_S3D, 0x02)
                Name (_PRT, Package (0x08)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        \_SB.LNKD, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x00, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x01, 
                        \_SB.LNKD, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x02, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x03, 
                        \_SB.LNKB, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0007FFFF, 
                        0x00, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0008FFFF, 
                        0x00, 
                        \_SB.LNKE, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0006FFFF, 
                        0x00, 
                        \_SB.LNKA, 
                        0x00
                    }
                })
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x04
                })
                Device (CBS0)
                {
                    Name (_ADR, 0x00)
                    Method (_S3D, 0, NotSerialized)
                    {
                        If (\WMEF)
                        {
                            Return (0x02)
                        }

                        Return (0x03)
                    }

                    Name (_SUN, 0x01)
                    OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
                    Field (CBUS, DWordAcc, NoLock, Preserve)
                    {
                        Offset (0x44), 
                        LGDC,   32, 
                        Offset (0x80), 
                        SYSC,   32, 
                        Offset (0x8C), 
                        MULR,   32, 
                        RSTS,   8, 
                        CCTL,   8, 
                        DCTL,   8, 
                        DIAG,   8
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        Or (And (LGDC, 0x00), 0x00, LGDC)
                        Or (And (SYSC, 0x00FFFFFE), 0x08000001, SYSC)
                        Or (And (CCTL, 0x7B), 0x02, CCTL)
                    }
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x001F0001)
                Name (_S3D, 0x03)
                OperationRegion (IDCS, PCI_Config, 0x00, 0x0100)
                Field (IDCS, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x40), 
                    PFT0,   1, 
                    PIE0,   1, 
                    PPE0,   1, 
                    PDT0,   1, 
                    PFT1,   1, 
                    PIE1,   1, 
                    PPE1,   1, 
                    PDT1,   1, 
                    PRC0,   2, 
                        ,   2, 
                    PIS0,   2, 
                    PSIE,   1, 
                    PIDE,   1, 
                    SFT0,   1, 
                    SIE0,   1, 
                    SPE0,   1, 
                    SDT0,   1, 
                    SFT1,   1, 
                    SIE1,   1, 
                    SPE1,   1, 
                    SDT1,   1, 
                    SRC0,   2, 
                        ,   2, 
                    SIS0,   2, 
                    SSIE,   1, 
                    SIDE,   1, 
                    PRC1,   2, 
                    PIS1,   2, 
                    SRC1,   2, 
                    SIS1,   2, 
                    Offset (0x48), 
                    PSD0,   1, 
                    PSD1,   1, 
                    SSD0,   1, 
                    SSD1,   1, 
                    Offset (0x4A), 
                    PCT0,   2, 
                        ,   2, 
                    PCT1,   2, 
                    Offset (0x4B), 
                    SCT0,   2, 
                        ,   2, 
                    SCT1,   2, 
                    Offset (0x4C), 
                    Offset (0x54), 
                    PCB0,   1, 
                    PCB1,   1, 
                    SCB0,   1, 
                    SCB1,   1, 
                    PCR0,   1, 
                    PCR1,   1, 
                    SCR0,   1, 
                    SCR1,   1, 
                        ,   2, 
                    WRPP,   1, 
                        ,   1, 
                    FPB0,   1, 
                    FPB1,   1, 
                    FSB0,   1, 
                    FSB1,   1, 
                    PSIG,   2, 
                    SSIG,   2
                }

                Field (IDCS, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x40), 
                    PTI0,   4, 
                    PTI1,   4, 
                    Offset (0x42), 
                    STI0,   4, 
                    STI1,   4
                }

                Method (GPCT, 4, NotSerialized)
                {
                    If (LNot (Or (Arg0, Arg1)))
                    {
                        Return (0x00)
                    }

                    If (LAnd (LNot (Arg0), Arg1))
                    {
                        Return (0x0384)
                    }

                    Return (Multiply (Subtract (0x09, Add (Arg2, Arg3)), 0x1E))
                }

                Method (GDCT, 4, NotSerialized)
                {
                    If (LNot (Arg0))
                    {
                        Return (0x00)
                    }

                    If (Arg1)
                    {
                        Return (0x14)
                    }

                    If (Arg2)
                    {
                        Return (Multiply (Subtract (0x04, Arg3), 0x0F))
                    }

                    Return (Multiply (Subtract (0x04, Arg3), 0x1E))
                }

                Method (MTIM, 2, NotSerialized)
                {
                    Store (0x00, Local0)
                    If (Arg0)
                    {
                        Or (Local0, 0x01, Local0)
                    }

                    If (LNot (LLess (Arg0, 0x02)))
                    {
                        Or (Local0, 0x02, Local0)
                    }

                    If (LNot (Arg1))
                    {
                        Or (Local0, 0x04, Local0)
                    }

                    If (LNot (Arg0))
                    {
                        Or (Local0, 0x08, Local0)
                    }

                    Return (Local0)
                }

                Method (MISP, 1, NotSerialized)
                {
                    If (LNot (Arg0))
                    {
                        Return (0x00)
                    }

                    If (LNot (LGreater (Arg0, 0x02)))
                    {
                        Return (0x01)
                    }

                    Return (0x02)
                }

                Method (MRCT, 1, NotSerialized)
                {
                    If (LNot (LGreater (Arg0, 0x02)))
                    {
                        Return (0x00)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Return (0x01)
                    }

                    Return (0x03)
                }

                Device (PRIM)
                {
                    Name (_ADR, 0x00)
                    Name (BGTM, Buffer (0x14) {})
                    CreateDWordField (BGTM, 0x00, GTP0)
                    CreateDWordField (BGTM, 0x04, GTD0)
                    CreateDWordField (BGTM, 0x08, GTP1)
                    CreateDWordField (BGTM, 0x0C, GTD1)
                    CreateDWordField (BGTM, 0x10, GTMF)
                    Name (BPI0, 0x00)
                    Name (BDM0, 0x00)
                    Name (BPI1, 0x00)
                    Name (BDM1, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (GPCT (PFT0, PDT0, PIS0, PRC0), GTP0)
                        Store (GDCT (PSD0, FPB0, PCB0, PCT0), GTD0)
                        If (LNot (GTD0))
                        {
                            Store (GTP0, GTD0)
                        }

                        If (PSIE)
                        {
                            Store (GPCT (PFT1, PDT1, PIS1, PRC1), GTP1)
                            Store (GDCT (PSD1, FPB1, PCB1, PCT1), GTD1)
                            If (LNot (GTD1))
                            {
                                Store (GTP1, GTD1)
                            }
                        }
                        Else
                        {
                            Store (0x00, GTP1)
                            Store (0x00, GTD1)
                        }

                        Store (0x00, GTMF)
                        If (PSD0)
                        {
                            Or (GTMF, 0x01, GTMF)
                        }

                        If (PIE0)
                        {
                            Or (GTMF, 0x02, GTMF)
                        }

                        If (PSD1)
                        {
                            Or (GTMF, 0x04, GTMF)
                        }

                        If (PIE1)
                        {
                            Or (GTMF, 0x08, GTMF)
                        }

                        Or (GTMF, 0x10, GTMF)
                        Return (BGTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        CreateDWordField (Arg0, 0x00, STP0)
                        CreateDWordField (Arg0, 0x04, STD0)
                        CreateDWordField (Arg0, 0x08, STP1)
                        CreateDWordField (Arg0, 0x0C, STD1)
                        CreateDWordField (Arg0, 0x10, STMF)
                        If (LEqual (SizeOf (Arg1), 0x0200))
                        {
                            CreateWordField (Arg1, 0x00, M000)
                            CreateWordField (Arg1, 0x62, M049)
                            CreateWordField (Arg1, 0x66, M051)
                            CreateWordField (Arg1, 0x6A, M053)
                            CreateWordField (Arg1, 0x7C, M062)
                            CreateWordField (Arg1, 0x7E, M063)
                            CreateWordField (Arg1, 0x80, M064)
                            CreateWordField (Arg1, 0x82, M065)
                            CreateWordField (Arg1, 0x88, M068)
                            CreateWordField (Arg1, 0xB0, M088)
                            If (\W98F)
                            {
                                Store (\UUDM (M053, M088), STD0)
                                If (STD0)
                                {
                                    Or (STMF, 0x01, STMF)
                                }
                                Else
                                {
                                    And (STMF, 0xFE, STMF)
                                }

                                Store (\UMDM (M053, M063, M062, M065), STP0)
                                If (LNot (STP0))
                                {
                                    Store (\UPIO (M053, M064, M051, M068), STP0)
                                }

                                If (And (M049, 0x0800))
                                {
                                    Or (STMF, 0x02, STMF)
                                }
                                Else
                                {
                                    And (STMF, 0xFD, STMF)
                                }
                            }

                            Store (\DPIO (STP0, And (STMF, 0x02)), Local0)
                            Store (\DUDM (STD0, And (STMF, 0x01)), Local1)
                            Store (MTIM (Local0, And (M000, 0x8000)), PTI0)
                            Store (MISP (Local0), PIS0)
                            Store (MRCT (Local0), PRC0)
                            If (LEqual (Local1, 0xFF))
                            {
                                Store (0x00, PSD0)
                            }
                            Else
                            {
                                Store (0x01, PSD0)
                                If (LNot (LGreater (Local1, 0x02)))
                                {
                                    Store (Local1, PCT0)
                                }
                                Else
                                {
                                    If (And (Local1, 0x01))
                                    {
                                        Store (0x01, PCT0)
                                    }
                                    Else
                                    {
                                        Store (0x02, PCT0)
                                    }
                                }

                                If (LNot (LLess (Local1, 0x03)))
                                {
                                    Store (0x01, PCB0)
                                }
                                Else
                                {
                                    Store (0x00, PCB0)
                                }

                                If (LEqual (Local1, 0x05))
                                {
                                    Store (0x01, FPB0)
                                }
                                Else
                                {
                                    Store (0x00, FPB0)
                                }

                                Store (0x01, PCR0)
                            }

                            Store (\FDMA (Local0, Local1), BDM0)
                            Store (\FPIO (Local0), BPI0)
                        }

                        If (LEqual (SizeOf (Arg2), 0x0200))
                        {
                            CreateWordField (Arg2, 0x00, S000)
                            CreateWordField (Arg2, 0x62, S049)
                            CreateWordField (Arg2, 0x66, S051)
                            CreateWordField (Arg2, 0x6A, S053)
                            CreateWordField (Arg2, 0x7C, S062)
                            CreateWordField (Arg2, 0x7E, S063)
                            CreateWordField (Arg2, 0x80, S064)
                            CreateWordField (Arg2, 0x82, S065)
                            CreateWordField (Arg2, 0x88, S068)
                            CreateWordField (Arg2, 0xB0, S088)
                            If (\W98F)
                            {
                                Store (\UUDM (S053, S088), STD1)
                                If (STD1)
                                {
                                    Or (STMF, 0x04, STMF)
                                }
                                Else
                                {
                                    And (STMF, 0xFB, STMF)
                                }

                                Store (\UMDM (S053, S063, S062, S065), STP1)
                                If (LNot (STP1))
                                {
                                    Store (\UPIO (S053, S064, S051, S068), STP1)
                                }

                                If (And (S049, 0x0800))
                                {
                                    Or (STMF, 0x08, STMF)
                                }
                                Else
                                {
                                    And (STMF, 0xF7, STMF)
                                }
                            }

                            Store (\DPIO (STP1, And (STMF, 0x08)), Local0)
                            Store (\DUDM (STD1, And (STMF, 0x04)), Local1)
                            If (STP1)
                            {
                                Store (MTIM (Local0, And (S000, 0x8000)), PTI1)
                                If (And (STMF, 0x10))
                                {
                                    Store (MISP (Local0), PIS1)
                                    Store (MRCT (Local0), PRC1)
                                    Store (0x01, PSIE)
                                }
                            }
                            Else
                            {
                                Store (0x00, PTI1)
                                Store (0x00, PSIE)
                            }

                            If (LEqual (Local1, 0xFF))
                            {
                                Store (0x00, PSD1)
                            }
                            Else
                            {
                                Store (0x01, PSD1)
                                If (LNot (LGreater (Local1, 0x02)))
                                {
                                    Store (Local1, PCT1)
                                }
                                Else
                                {
                                    If (And (Local1, 0x01))
                                    {
                                        Store (0x01, PCT1)
                                    }
                                    Else
                                    {
                                        Store (0x02, PCT1)
                                    }
                                }

                                If (LNot (LLess (Local1, 0x03)))
                                {
                                    Store (0x01, PCB1)
                                }
                                Else
                                {
                                    Store (0x00, PCB1)
                                }

                                If (LEqual (Local1, 0x05))
                                {
                                    Store (0x01, FPB1)
                                }
                                Else
                                {
                                    Store (0x00, FPB1)
                                }

                                Store (0x01, PCR1)
                            }

                            Store (\FDMA (Local0, Local1), BDM1)
                            Store (\FPIO (Local0), BPI1)
                        }
                    }

                    Device (MSTR)
                    {
                        Name (_ADR, 0x00)
                        Name (HDTF, Buffer (0x1C)
                        {
                            0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 
                            0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00, 
                            0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00, 
                            0x00, 0x00, 0xA0, 0xEF
                        })
                        CreateByteField (HDTF, 0x0F, HDMA)
                        CreateByteField (HDTF, 0x16, HPIO)
                        Name (IDTF, Buffer (0x0E)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                            0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                        })
                        CreateByteField (IDTF, 0x01, IDMA)
                        CreateByteField (IDTF, 0x08, IPIO)
                        Name (DDTF, Buffer (0x1C)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                            0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0xA0, 0xE3
                        })
                        CreateByteField (DDTF, 0x01, DDMA)
                        CreateByteField (DDTF, 0x08, DPIO)
                        CreateByteField (DDTF, 0x0F, DTAT)
                        CreateByteField (DDTF, 0x16, DTFT)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (^^BDM0, HDMA)
                            Store (^^BPI0, HPIO)
                            Return (HDTF)
                        }

                        Name (_PSC, 0x00)
                        Method (_PS0, 0, NotSerialized)
                        {
                            Store (_PSC, Local0)
                            Store (0x00, _PSC)
                            If (LEqual (Local0, 0x03))
                            {
                                \FISP ()
                            }
                        }

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

                Device (SCND)
                {
                    Name (_ADR, 0x01)
                    Name (BGTM, Buffer (0x14) {})
                    CreateDWordField (BGTM, 0x00, GTP0)
                    CreateDWordField (BGTM, 0x04, GTD0)
                    CreateDWordField (BGTM, 0x08, GTP1)
                    CreateDWordField (BGTM, 0x0C, GTD1)
                    CreateDWordField (BGTM, 0x10, GTMF)
                    Name (BPI0, 0x00)
                    Name (BDM0, 0x00)
                    Name (BPI1, 0x00)
                    Name (BDM1, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (GPCT (SFT0, SDT0, SIS0, SRC0), GTP0)
                        Store (GDCT (SSD0, FSB0, SCB0, SCT0), GTD0)
                        If (LNot (GTD0))
                        {
                            Store (GTP0, GTD0)
                        }

                        Store (0x00, GTP1)
                        Store (0x00, GTD1)
                        Store (0x00, GTMF)
                        If (SSD0)
                        {
                            Or (GTMF, 0x01, GTMF)
                        }

                        If (LNot (GTP0))
                        {
                            Or (GTMF, 0x01, GTMF)
                        }

                        If (SIE0)
                        {
                            Or (GTMF, 0x02, GTMF)
                        }

                        Or (GTMF, 0x10, GTMF)
                        Return (BGTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        CreateDWordField (Arg0, 0x00, STP0)
                        CreateDWordField (Arg0, 0x04, STD0)
                        CreateDWordField (Arg0, 0x08, STP1)
                        CreateDWordField (Arg0, 0x0C, STD1)
                        CreateDWordField (Arg0, 0x10, STMF)
                        If (LEqual (SizeOf (Arg1), 0x0200))
                        {
                            CreateWordField (Arg1, 0x00, M000)
                            CreateWordField (Arg1, 0x62, M049)
                            CreateWordField (Arg1, 0x66, M051)
                            CreateWordField (Arg1, 0x6A, M053)
                            CreateWordField (Arg1, 0x7C, M062)
                            CreateWordField (Arg1, 0x7E, M063)
                            CreateWordField (Arg1, 0x80, M064)
                            CreateWordField (Arg1, 0x82, M065)
                            CreateWordField (Arg1, 0x88, M068)
                            CreateWordField (Arg1, 0xB0, M088)
                            If (\W98F)
                            {
                                Store (\UUDM (M053, M088), STD0)
                                If (STD0)
                                {
                                    Or (STMF, 0x01, STMF)
                                }
                                Else
                                {
                                    And (STMF, 0xFE, STMF)
                                }

                                Store (\UMDM (M053, M063, M062, M065), STP0)
                                If (LNot (STP0))
                                {
                                    Store (\UPIO (M053, M064, M051, M068), STP0)
                                }

                                If (And (M049, 0x0800))
                                {
                                    Or (STMF, 0x02, STMF)
                                }
                                Else
                                {
                                    And (STMF, 0xFD, STMF)
                                }
                            }

                            Store (\DPIO (STP0, And (STMF, 0x02)), Local0)
                            Store (\DUDM (STD0, And (STMF, 0x01)), Local1)
                            If (LNot (LLess (\_SB.PCI0.LPC.EC.BGID (0x00), 0x0C)))
                            {
                                Store (0x00, Local0)
                                Store (0xFF, Local1)
                            }

                            Store (MTIM (Local0, And (M000, 0x8000)), STI0)
                            Store (MISP (Local0), SIS0)
                            Store (MRCT (Local0), SRC0)
                            If (LEqual (Local1, 0xFF))
                            {
                                Store (0x00, SSD0)
                            }
                            Else
                            {
                                Store (0x01, SSD0)
                                If (LNot (LGreater (Local1, 0x02)))
                                {
                                    Store (Local1, SCT0)
                                }
                                Else
                                {
                                    If (And (Local1, 0x01))
                                    {
                                        Store (0x01, SCT0)
                                    }
                                    Else
                                    {
                                        Store (0x02, SCT0)
                                    }
                                }

                                If (LNot (LLess (Local1, 0x03)))
                                {
                                    Store (0x01, SCB0)
                                }
                                Else
                                {
                                    Store (0x00, SCB0)
                                }

                                If (LEqual (Local1, 0x05))
                                {
                                    Store (0x01, FSB0)
                                }
                                Else
                                {
                                    Store (0x00, FSB0)
                                }

                                Store (0x01, SCR0)
                            }

                            Store (\FDMA (Local0, Local1), BDM0)
                            Store (\FPIO (Local0), BPI0)
                        }
                    }

                    Device (MSTR)
                    {
                        Name (_ADR, 0x00)
                        Name (HDTF, Buffer (0x1C)
                        {
                            0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 
                            0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00, 
                            0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00, 
                            0x00, 0x00, 0xA0, 0xEF
                        })
                        CreateByteField (HDTF, 0x0F, HDMA)
                        CreateByteField (HDTF, 0x16, HPIO)
                        Name (IDTF, Buffer (0x0E)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                            0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                        })
                        CreateByteField (IDTF, 0x01, IDMA)
                        CreateByteField (IDTF, 0x08, IPIO)
                        Name (DDTF, Buffer (0x1C)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                            0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0xA0, 0xE3
                        })
                        CreateByteField (DDTF, 0x01, DDMA)
                        CreateByteField (DDTF, 0x08, DPIO)
                        CreateByteField (DDTF, 0x0F, DTAT)
                        CreateByteField (DDTF, 0x16, DTFT)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (\_SB.PCI0.LPC.EC.BGID (0x00), Local0)
                            If (LEqual (Local0, 0x06))
                            {
                                Store (^^BDM0, HDMA)
                                Store (^^BPI0, HPIO)
                                Return (HDTF)
                            }

                            Store (Zero, Local1)
                            If (LEqual (Local0, 0x03))
                            {
                                Store (One, Local1)
                            }

                            If (LEqual (Local0, 0x0A))
                            {
                                Store (One, Local1)
                            }

                            If (LEqual (Local0, 0x0B))
                            {
                                Store (One, Local1)
                            }

                            If (Local1)
                            {
                                Store (\CDFL, DTFT)
                                Store (\CDAH, DTAT)
                                Store (^^BDM0, DDMA)
                                Store (^^BPI0, DPIO)
                                Return (DDTF)
                            }
                            Else
                            {
                                Store (^^BDM0, IDMA)
                                Store (^^BPI0, IPIO)
                                Return (IDTF)
                            }
                        }
                    }
                }
            }

            Device (USB0)
            {
                Name (_ADR, 0x001D0000)
                Name (_S3D, 0x02)
                OperationRegion (U0CS, PCI_Config, 0xC4, 0x04)
                Field (U0CS, DWordAcc, NoLock, Preserve)
                {
                    U0EN,   2, 
                    Offset (0x04)
                }

                Name (_PR0, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PR1, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PR2, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PRW, Package (0x03)
                {
                    0x03, 
                    0x03, 
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U0EN)
                    }
                    Else
                    {
                        Store (0x00, U0EN)
                    }
                }

                Device (URTH)
                {
                    Name (_ADR, 0x00)
                    Device (UNST)
                    {
                        Name (_ADR, 0x02)
                        Name (_EJD, "_SB.NEST")
                        Method (_STA, 0, NotSerialized)
                        {
                            If (\_SB.PCI0.LPC.EC.BSTA (0x02))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                    }
                }
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0001)
                Name (_S3D, 0x02)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2, 
                    Offset (0x04)
                }

                Name (_PR0, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PR1, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PR2, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PRW, Package (0x03)
                {
                    0x04, 
                    0x03, 
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (0x00, U1EN)
                    }
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0002)
                Name (_S3D, 0x02)
                OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
                Field (U2CS, DWordAcc, NoLock, Preserve)
                {
                    U2EN,   2, 
                    Offset (0x04)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U2EN)
                    }
                    Else
                    {
                        Store (0x00, U2EN)
                    }
                }
            }

            Device (USB7)
            {
                Name (_ADR, 0x001D0007)
                Name (_S3D, 0x03)
                OperationRegion (U7CS, PCI_Config, 0x62, 0x02)
                Field (U7CS, DWordAcc, NoLock, Preserve)
                {
                    PWKI,   1, 
                    PWUC,   6, 
                    Offset (0x02)
                }

                Name (_PR0, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PR1, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Name (_PR2, Package (0x01)
                {
                    \_SB.PCI0.LPC.EC.PUBS
                })
                Method (_INI, 0, NotSerialized)
                {
                    Store (0x01, PWKI)
                    Store (0x0F, PWUC)
                }

                Device (URTH)
                {
                    Name (_ADR, 0x00)
                    Device (UNST)
                    {
                        Name (_ADR, 0x02)
                        Name (_EJD, "_SB.NEST")
                        Method (_STA, 0, NotSerialized)
                        {
                            If (\_SB.PCI0.LPC.EC.BSTA (0x02))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                    }
                }
            }

            Device (AC9M)
            {
                Name (_ADR, 0x001F0006)
                Name (_S3D, 0x03)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x04
                })
                Method (_PSW, 1, NotSerialized)
                {
                    Noop
                }
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Name (BDEV, 0xFF)
            Name (BSTS, 0x00)
            Name (BHKE, 0x00)
            Name (BXCN, 0x00)
            Method (_Q2C, 0, NotSerialized)
            {
                If (LEqual (BSTS, 0x00))
                {
                    Store (BGID (0x00), BDEV)
                    If (BXCN)
                    {
                        NXRE (BDEV)
                    }
                    Else
                    {
                        NBRE (BDEV)
                    }
                }
            }

            Method (_Q2D, 0, NotSerialized)
            {
                Store (BGID (0x00), BDEV)
                If (BXCN)
                {
                    NXRC (BDEV)
                }
                Else
                {
                    NBIN (BDEV)
                }
            }

            Method (_Q38, 0, NotSerialized)
            {
                Store (BGID (0x00), Local0)
                If (LEqual (Local0, 0x0F))
                {
                    BDIS ()
                    If (BXCN)
                    {
                        Store (BDEV, Local0)
                        Store (0x0F, BDEV)
                        NXEJ (Local0)
                    }
                    Else
                    {
                        NBEJ (BDEV)
                        Store (Local0, BDEV)
                    }
                }
                Else
                {
                    If (HPBU)
                    {
                        If (BXCN)
                        {
                            Store (Local0, BDEV)
                            NXIN (Local0)
                        }
                    }
                    Else
                    {
                        Store (Local0, BDEV)
                        If (BXCN)
                        {
                            NXRC (Local0)
                        }
                        Else
                        {
                            NBIN (Local0)
                        }
                    }
                }
            }

            Method (NBRE, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x0D))
                {
                    If (\LFDC)
                    {
                        Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x03)
                    }
                }

                If (LLess (Arg0, 0x0C))
                {
                    Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x03)
                }

                If (LEqual (Arg0, 0x0E))
                {
                    If (\WNTF)
                    {
                        Notify (\_SB.NEST, 0x03)
                    }
                }

                If (LEqual (Arg0, 0x10))
                {
                    If (LOr (HPAC, HB0A))
                    {
                        If (\WNTF)
                        {
                            Notify (\_SB.PCI0.LPC.EC.BAT1, 0x03)
                        }
                    }
                    Else
                    {
                        LED (0x04, 0xC0)
                        BEEP (0x0F)
                        Store (0x02, BSTS)
                    }
                }
            }

            Method (NBEJ, 1, NotSerialized)
            {
                If (LEqual (BSTS, 0x00))
                {
                    If (LEqual (Arg0, 0x0D))
                    {
                        If (\LFDC)
                        {
                            Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01)
                        }
                    }

                    If (LLess (Arg0, 0x0C))
                    {
                        Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x01)
                    }

                    If (LEqual (Arg0, 0x0E))
                    {
                        If (\WNTF)
                        {
                            Notify (\_SB.NEST, 0x01)
                        }
                    }

                    If (LEqual (Arg0, 0x10))
                    {
                        If (\WNTF)
                        {
                            Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01)
                        }
                        Else
                        {
                            Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
                        }
                    }
                }

                LED (0x04, 0x00)
                BEEP (0x00)
                Store (0x00, BSTS)
            }

            Method (NBIN, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x0D))
                {
                    If (\LFDC)
                    {
                        BEN (0x00)
                        BSFD ()
                        LED (0x04, 0x80)
                        Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01)
                    }
                }

                If (LLess (Arg0, 0x0C))
                {
                    If (LEqual (Arg0, 0x06))
                    {
                        BEN (0x02)
                    }
                    Else
                    {
                        BEN (0x01)
                    }

                    LED (0x04, 0x80)
                    Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x01)
                }

                If (LEqual (Arg0, 0x0E))
                {
                    BEN (0x00)
                    LED (0x04, 0x80)
                    If (\WNTF)
                    {
                        Notify (\_SB.NEST, 0x01)
                    }
                }

                If (LEqual (Arg0, 0x10))
                {
                    LED (0x04, 0x80)
                    If (\WNTF)
                    {
                        Store (0x01, \_SB.PCI0.LPC.EC.BAT1.XB1S)
                        Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01)
                    }
                    Else
                    {
                        Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
                    }
                }

                BEEP (0x00)
                Store (0x00, BSTS)
            }

            Method (BEJ0, 1, NotSerialized)
            {
                If (Arg0)
                {
                    BDIS ()
                    LED (0x04, 0x00)
                    \BHDP (0x01, 0x00)
                    Store (0x01, BSTS)
                    If (BHKE)
                    {
                        Store (0x00, BHKE)
                        \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x3003)
                    }
                }
                Else
                {
                    LED (0x04, 0x80)
                    Store (0x00, BSTS)
                }
            }

            Method (BEJ3, 1, NotSerialized)
            {
                If (Arg0)
                {
                    BDIS ()
                    Store (0x01, BSTS)
                }
                Else
                {
                    Store (0x00, BSTS)
                }
            }

            Method (BPTS, 1, NotSerialized)
            {
                Store (0x01, HDBM)
                If (LNot (LEqual (BSTS, 0x00)))
                {
                    Store (0x0F, BDEV)
                    Store (0x00, BSTS)
                }

                Store (0x00, BHKE)
                Store (0x01, Local0)
                If (LNot (LEqual (BDEV, 0x0F)))
                {
                    If (LAnd (LNot (\LFDC), LEqual (BDEV, 0x0D)))
                    {
                        Store (0x00, Local0)
                    }
                }
                Else
                {
                    Store (0x00, Local0)
                }

                If (LEqual (Arg0, 0x05))
                {
                    Store (0x00, Local0)
                }

                If (Local0)
                {
                    BUWK (0x01)
                }
                Else
                {
                    LED (0x04, 0x00)
                    BUWK (0x00)
                }
            }

            Method (BWAK, 1, NotSerialized)
            {
                BUWK (0x00)
                Store (BGID (0x00), Local0)
                If (LAnd (LNot (\LFDC), LEqual (Local0, 0x0D)))
                {
                    BDIS ()
                }

                \_SB.PCI0.LPC.FDC._INI ()
                If (\LFDC)
                {
                    If (LNot (LEqual (Local0, 0x0D)))
                    {
                        If (LEqual (\_SB.PCI0.LPC.FDC.FD0S, \_SB.PCI0.LPC.EC.HPNF))
                        {
                            Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01)
                        }
                    }
                }

                If (LEqual (BSTS, 0x00))
                {
                    If (LNot (LEqual (Local0, BDEV)))
                    {
                        If (BXCN)
                        {
                            Store (Local0, BDEV)
                            NXRC (Local0)
                        }
                        Else
                        {
                            NBEJ (BDEV)
                            Store (Local0, BDEV)
                            NBIN (Local0)
                        }
                    }
                    Else
                    {
                        If (LOr (\LFDC, LNot (LEqual (BDEV, 0x0D))))
                        {
                            If (LNot (LEqual (Local0, 0x0F)))
                            {
                                LED (0x04, 0x80)
                                If (HPBU)
                                {
                                    Or (ShiftLeft (Arg0, 0x08), 0x2005, BHKE)
                                    \_SB.PCI0.LPC.EC.HKEY.MHKQ (BHKE)
                                    If (LNot (LGreater (Arg0, 0x02))) {}
                                    Else
                                    {
                                        If (BXCN)
                                        {
                                            NXRE (Local0)
                                        }
                                        Else
                                        {
                                            NBRE (Local0)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Method (BDIS, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.GL33)
                {
                    Store (0x00, \_SB.PCI0.IDE0.SIE0)
                    Store (0x00, \_SB.PCI0.LPC.GL43)
                    Stall (0x0F)
                    Store (0x01, \_SB.PCI0.IDE0.SSIG)
                    Store (0x00, \_SB.PCI0.LPC.GL33)
                    Store (0x01, \_SB.PCI0.LPC.GL40)
                    BSFD ()
                    \_SB.PCI0.LPC.EC.PNST (0x00)
                }
            }

            Method (BEN, 1, NotSerialized)
            {
                If (LNot (\_SB.PCI0.LPC.GL33))
                {
                    Store (0x00, \_SB.PCI0.LPC.GL43)
                    Store (0x01, \_SB.PCI0.LPC.GL33)
                    Sleep (0x0F)
                    Store (0x00, \_SB.PCI0.LPC.GL40)
                    If (Arg0)
                    {
                        Store (0x00, \_SB.PCI0.IDE0.SSIG)
                        Store (0x01, \_SB.PCI0.IDE0.SIDE)
                        Stall (0x2D)
                        Store (0x01, \_SB.PCI0.LPC.GL43)
                        If (LEqual (Arg0, 0x02))
                        {
                            Sleep (0x1388)
                        }
                        Else
                        {
                            Sleep (0x0190)
                        }
                    }
                }
            }

            Method (BSTA, 1, NotSerialized)
            {
                If (LNot (\_SB.PCI0.LPC.GL33))
                {
                    Return (0x00)
                }

                BINI ()
                If (LEqual (Arg0, 0x00))
                {
                    Return (LEqual (BDEV, 0x0D))
                }

                If (LEqual (Arg0, 0x01))
                {
                    Return (LLess (BDEV, 0x0C))
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (LEqual (BDEV, 0x0E))
                }

                Return (0x00)
            }

            Method (BUWK, 1, NotSerialized)
            {
                If (\H8DR)
                {
                    If (Arg0)
                    {
                        Store (0x01, \_SB.PCI0.LPC.EC.HWBU)
                    }
                    Else
                    {
                        Store (0x00, \_SB.PCI0.LPC.EC.HWBU)
                    }
                }
                Else
                {
                    If (Arg0)
                    {
                        \MBEC (0x32, 0xFF, 0x80)
                    }
                    Else
                    {
                        \MBEC (0x32, 0x7F, 0x00)
                    }
                }
            }

            Method (BINI, 0, NotSerialized)
            {
                If (LEqual (BDEV, 0xFF))
                {
                    Store (BGID (0x00), BDEV)
                }
            }

            Method (BGID, 1, NotSerialized)
            {
                If (Arg0)
                {
                    Store (0xFF, Local0)
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (HBID, Local0)
                    }
                    Else
                    {
                        ShiftRight (RBEC (0x47), 0x02, Local0)
                        And (Local0, 0x0F, Local0)
                    }

                    If (LEqual (Local0, 0x0F))
                    {
                        If (\H8DR)
                        {
                            If (HB1A)
                            {
                                Store (0x10, Local0)
                            }
                        }
                        Else
                        {
                            If (And (\RBEC (0x39), 0x80))
                            {
                                Store (0x10, Local0)
                            }
                        }
                    }
                }

                Return (Local0)
            }

            Method (BSFD, 0, NotSerialized)
            {
                If (BSTA (0x00))
                {
                    \MISA (0x03F3, 0xF3, 0x00)
                }
                Else
                {
                    \MISA (0x03F3, 0xF3, 0x04)
                }
            }

            Method (NXRE, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x0F))
                {
                    LED (0x04, 0x00)
                    Store (0x00, BSTS)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    If (\LFDC)
                    {
                        LED (0x04, 0xC0)
                        Notify (\_SB.SWAP, 0x83)
                    }
                }

                If (LLess (Arg0, 0x0C))
                {
                    LED (0x04, 0xC0)
                    Notify (\_SB.SWAP, 0x83)
                }

                If (LEqual (Arg0, 0x0E))
                {
                    LED (0x04, 0xC0)
                    Notify (\_SB.SWAP, 0x83)
                }

                If (LEqual (Arg0, 0x10))
                {
                    If (LOr (HPAC, HB0A))
                    {
                        LED (0x04, 0xC0)
                        Notify (\_SB.SWAP, 0x83)
                    }
                    Else
                    {
                        LED (0x04, 0xC0)
                        BEEP (0x0F)
                        Store (0x02, BSTS)
                    }
                }
            }

            Method (NXRC, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x0D))
                {
                    If (\LFDC)
                    {
                        LED (0x04, 0x80)
                        BEN (0x00)
                        BSFD ()
                        Notify (\_SB.SWAP, 0x80)
                    }
                }

                If (LLess (Arg0, 0x0C))
                {
                    LED (0x04, 0x80)
                    If (LEqual (Arg0, 0x06))
                    {
                        BEN (0x02)
                    }
                    Else
                    {
                        BEN (0x01)
                    }

                    Notify (\_SB.SWAP, 0x80)
                }

                If (LEqual (Arg0, 0x0E))
                {
                    LED (0x04, 0x80)
                    BEN (0x00)
                    Notify (\_SB.SWAP, 0x80)
                }

                If (LEqual (Arg0, 0x10))
                {
                    Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
                    LED (0x04, 0x80)
                    Notify (\_SB.SWAP, 0x80)
                }

                BEEP (0x00)
                Store (0x00, BSTS)
            }

            Method (NXEJ, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x10))
                {
                    Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
                }

                Notify (\_SB.SWAP, 0x82)
                LED (0x04, 0x00)
                BEEP (0x00)
                Store (0x00, BSTS)
            }

            Method (NXIN, 1, NotSerialized)
            {
                Notify (\_SB.SWAP, 0x81)
            }
        }

        Scope (\_SB.PCI0.IDE0.SCND.MSTR)
        {
            Method (_EJ0, 1, NotSerialized)
            {
                \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.EC.BSTA (0x01))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }
        }

        Scope (\_SB.PCI0.LPC.FDC)
        {
            Name (XFDS, 0x00)
            Name (DCFD, 0x00)
            Method (_INI, 0, NotSerialized)
            {
                Store (0x00, XFDS)
                If (\H8DR)
                {
                    Or (\_SB.PCI0.LPC.EC.HAMA, 0x0C, \_SB.PCI0.LPC.EC.HAMA)
                }
                Else
                {
                    \MBEC (0x1A, 0xFF, 0x0C)
                }
            }

            Name (FDEB, Buffer (0x14)
            {
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x02, 0x00, 0x00, 0x00
            })
            CreateByteField (FDEB, 0x00, FD0S)
            Method (_FDE, 0, NotSerialized)
            {
                If (LOr (\_SB.PCI0.LPC.EC.BSTA (0x00), DCFD))
                {
                    Store (0x01, FD0S)
                }
                Else
                {
                    If (LOr (\_SB.PCI0.LPC.EC.HPNF, XFDS))
                    {
                        Store (0x00, FD0S)
                    }
                    Else
                    {
                        Store (0x01, FD0S)
                    }
                }

                Return (FDEB)
            }
        }

        Scope (\_SB.PCI0.LPC.FDC.FDD0)
        {
            Method (_EJ0, 1, NotSerialized)
            {
                If (\_SB.PCI0.LPC.EC.BSTA (0x00))
                {
                    \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
                }
                Else
                {
                    If (DCFD) {}
                    Else
                    {
                        Store (0x01, XFDS)
                    }
                }
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q52, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.FDC.XFDS)
                {
                    Store (0x00, \_SB.PCI0.LPC.FDC.XFDS)
                }
                Else
                {
                    If (LOr (\_SB.PCI0.LPC.EC.BSTA (0x00), \_SB.PCI0.LPC.FDC.DCFD)) {}
                    Else
                    {
                        If (\LFDC)
                        {
                            Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01)
                        }
                    }
                }
            }

            Method (_Q53, 0, NotSerialized)
            {
                Store (0x00, \_SB.PCI0.LPC.FDC.XFDS)
                If (LOr (\_SB.PCI0.LPC.EC.BSTA (0x00), \_SB.PCI0.LPC.FDC.DCFD)) {}
                Else
                {
                    If (\LFDC)
                    {
                        Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01)
                    }
                }
            }
        }

        Scope (\_SB.PCI0.LPC.EC.BAT1)
        {
            Method (_EJ0, 1, NotSerialized)
            {
                Store (0x00, B1ST)
                Store (0x00, XB1S)
                \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
            }
        }

        Scope (\_SB)
        {
            Device (NEST)
            {
                Name (_HID, EisaId ("IBM006A"))
                Method (_EJ0, 1, NotSerialized)
                {
                    \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (\WNTF)
                    {
                        If (\_SB.PCI0.LPC.EC.BSTA (0x02))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
            }
        }

        Scope (\_SB)
        {
            Device (SWAP)
            {
                Name (_HID, EisaId ("IBM0069"))
                Method (_STA, 0, NotSerialized)
                {
                    If (\WMEF)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Method (XCNN, 1, NotSerialized)
                {
                    Store (Arg0, \_SB.PCI0.LPC.EC.BXCN)
                    Return (0x09)
                }

                Method (XSWP, 0, NotSerialized)
                {
                    Return (0x05)
                }

                Method (XEJ0, 1, NotSerialized)
                {
                    \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
                }

                Method (XEJ3, 1, NotSerialized)
                {
                    \_SB.PCI0.LPC.EC.BEJ3 (Arg0)
                }

                Method (XDID, 0, NotSerialized)
                {
                    Name (XPCK, Package (0x06)
                    {
                        0x00, 
                        0x00, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0x00
                    })
                    Store (\_SB.PCI0.LPC.EC.BDEV, Local0)
                    Store (Local0, Index (XPCK, 0x00))
                    If (LLess (Local0, 0x0C))
                    {
                        Store (\_SB.PCI0.IDE0._ADR, Index (XPCK, 0x02))
                        Store (\_SB.PCI0.IDE0.SCND._ADR, Index (XPCK, 0x03))
                        Store (\_SB.PCI0.IDE0.SCND.MSTR._ADR, Index (XPCK, 0x04))
                    }

                    If (LEqual (Local0, 0x0D))
                    {
                        If (\LFDC)
                        {
                            Store (\_SB.PCI0.LPC.FDC._HID, Index (XPCK, 0x02))
                            Store (\_SB.PCI0.LPC.FDC.FDD0._ADR, Index (XPCK, 0x04))
                        }
                        Else
                        {
                            Store (0x0F, Index (XPCK, 0x00))
                        }
                    }

                    If (LEqual (Local0, 0x0E))
                    {
                        Store (\_SB.PCI0.USB0._ADR, Index (XPCK, 0x02))
                        Store (\_SB.PCI0.USB0.URTH._ADR, Index (XPCK, 0x03))
                        Store (\_SB.PCI0.USB0.URTH.UNST._ADR, Index (XPCK, 0x04))
                    }

                    If (LEqual (Local0, 0x10))
                    {
                        Store (\_SB.PCI0.LPC.EC.BAT1._HID, Index (XPCK, 0x02))
                        Store (\_SB.PCI0.LPC.EC.BAT1._UID, Index (XPCK, 0x04))
                    }

                    Store (\_SB.PCI0.LPC.GL33, Index (XPCK, 0x05))
                    Return (XPCK)
                }

                Method (XSTM, 1, NotSerialized)
                {
                    Name (XDMY, Buffer (0x14) {})
                    \_SB.PCI0.IDE0.SCND._STM (XDMY, Arg0, 0x00)
                }

                Method (XGTF, 0, NotSerialized)
                {
                    Return (\_SB.PCI0.IDE0.SCND.MSTR._GTF ())
                }
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q1C, 0, NotSerialized)
            {
                \CMS (0x00)
            }

            Method (_Q1D, 0, NotSerialized)
            {
                \CMS (0x01)
            }

            Method (_Q1E, 0, NotSerialized)
            {
                \CMS (0x02)
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q14, 0, NotSerialized)
            {
                \CMS (0x04)
            }

            Method (_Q15, 0, NotSerialized)
            {
                \CMS (0x05)
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q19, 0, NotSerialized)
            {
                \CMS (0x03)
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q63, 0, NotSerialized)
            {
                \CMS (0x0B)
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q70, 0, NotSerialized)
            {
                FNST ()
            }

            Method (_Q72, 0, NotSerialized)
            {
                FNST ()
            }

            Method (_Q73, 0, NotSerialized)
            {
                FNST ()
            }

            Method (FNST, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (HFNS, Local0)
                    Store (HFNE, Local1)
                }
                Else
                {
                    And (\RBEC (0x0E), 0x03, Local0)
                    And (\RBEC (0x00), 0x08, Local1)
                }

                If (Local1)
                {
                    If (LEqual (Local0, 0x00))
                    {
                        \CMS (0x11)
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        \CMS (0x0F)
                    }

                    If (LEqual (Local0, 0x02))
                    {
                        \CMS (0x10)
                    }
                }
            }
        }

        Scope (\_SB.PCI0.LPC.EC.HKEY)
        {
            Name (BTFG, 0x00)
            Method (GULP, 0, NotSerialized)
            {
                Store (0x00, Local0)
                If (And (BTFG, 0x00010000))
                {
                    Or (Local0, 0x04, Local0)
                }

                Return (Local0)
            }

            Method (SULP, 1, NotSerialized)
            {
                Return (GULP ())
            }

            Method (GBDC, 0, NotSerialized)
            {
                Store (0x00, Local0)
                If (DBTH ())
                {
                    Or (Local0, 0x01, Local0)
                }

                If (DPWS ())
                {
                    Or (Local0, 0x02, Local0)
                }

                If (And (BTFG, 0x00010000))
                {
                    Or (Local0, 0x04, Local0)
                }

                Return (Local0)
            }

            Method (SBDC, 1, NotSerialized)
            {
                If (And (Arg0, 0x02))
                {
                    DPWC (0x01)
                }
                Else
                {
                    DPWC (0x00)
                }

                If (And (Arg0, 0x04))
                {
                    Or (BTFG, 0x00010000, BTFG)
                    \BLTH (0x02)
                }
                Else
                {
                    And (BTFG, Not (0x00010000), BTFG)
                    \BLTH (0x03)
                }

                Return (GBDC ())
            }

            Method (BTIN, 0, NotSerialized)
            {
                If (\BLTH (0x01))
                {
                    Or (BTFG, 0x00010000, BTFG)
                }

                DATH (0x01)
                PBTN (0x01)
                MODE (0x01)
            }

            Method (BTPS, 1, NotSerialized)
            {
                If (LNot (LLess (Arg0, 0x04)))
                {
                    \BLTH (0x05)
                }

                PBTN (0x00)
                If (LNot (And (BTFG, 0x00010000)))
                {
                    If (DBTH ())
                    {
                        DPWC (0x00)
                    }
                }

                PWRS ()
            }

            Method (BTWA, 1, NotSerialized)
            {
                PBTN (0x01)
                If (And (BTFG, 0x0200))
                {
                    DPWC (0x01)
                }
            }

            Method (MODE, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (\H8DR)
                    {
                        Store (One, \_SB.PCI0.LPC.EC.BTCM)
                    }
                    Else
                    {
                        \MBEC (0x01, 0xFF, 0x02)
                    }
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (Zero, \_SB.PCI0.LPC.EC.BTCM)
                    }
                    Else
                    {
                        \MBEC (0x01, 0xFD, 0x00)
                    }
                }
            }

            Method (PBTN, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (\H8DR)
                    {
                        Store (One, \_SB.PCI0.LPC.EC.BTPC)
                    }
                    Else
                    {
                        \MBEC (0x01, 0xFF, 0x40)
                    }
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (Zero, \_SB.PCI0.LPC.EC.BTPC)
                    }
                    Else
                    {
                        \MBEC (0x01, 0xBF, 0x00)
                    }
                }
            }

            Method (PWRS, 0, NotSerialized)
            {
                If (DPWS ())
                {
                    Or (BTFG, 0x0200, BTFG)
                }
                Else
                {
                    And (BTFG, Not (0x0200), BTFG)
                }

                Store (0x00, Local0)
                If (LAnd (DBTH (), And (BTFG, 0x0200)))
                {
                    Or (Local0, 0x01, Local0)
                }

                Return (Local0)
            }

            Method (BTAT, 2, NotSerialized)
            {
                Store (0x00, Local0)
                If (DBTH ())
                {
                    Or (Local0, DATN (Arg0, Arg1), Local0)
                }

                Return (Local0)
            }
        }

        Scope (\_SB.PCI0.LPC.EC.HKEY)
        {
            Method (UBTH, 0, NotSerialized)
            {
                Return (\BLTH (0x00))
            }

            Method (UPWC, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (\H8DR)
                    {
                        Store (One, \_SB.PCI0.LPC.EC.BTPW)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xFF, 0x04)
                    }
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (Zero, \_SB.PCI0.LPC.EC.BTPW)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xFB, 0x00)
                    }
                }
            }

            Method (UATH, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (\H8DR)
                    {
                        Store (Zero, \_SB.PCI0.LPC.EC.BTDT)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xF7, 0x00)
                    }
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (One, \_SB.PCI0.LPC.EC.BTDT)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xFF, 0x08)
                    }
                }
            }

            Method (UPWS, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.BTPW, Local0)
                }
                Else
                {
                    Store (ShiftRight (And (\RBEC (0x3B), 0x04), 0x02), Local0)
                }

                Return (Local0)
            }

            Method (UATS, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.BTDT, Local0)
                }
                Else
                {
                    Store (ShiftRight (And (\RBEC (0x3B), 0x08), 0x03), Local0)
                }

                XOr (Local0, 0x01, Local0)
                Return (Local0)
            }

            Method (UWKS, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.BTWK, Local0)
                }
                Else
                {
                    Store (ShiftRight (And (\RBEC (0x46), 0x02), 0x01), Local0)
                }

                Return (Local0)
            }

            Method (UATN, 2, NotSerialized)
            {
                Store (0x00, Local0)
                If (LEqual (Arg0, 0x00))
                {
                    If (LEqual (Arg1, 0x01))
                    {
                        If (\H8DR)
                        {
                            Or (\_SB.PCI0.LPC.EC.HAMA, 0x10, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xFF, 0x10)
                        }
                    }

                    If (LEqual (Arg1, 0x00))
                    {
                        If (\H8DR)
                        {
                            And (\_SB.PCI0.LPC.EC.HAMA, 0xEF, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xEF, 0x00)
                        }
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        If (\H8DR)
                        {
                            If (And (\_SB.PCI0.LPC.EC.HAMA, 0x10))
                            {
                                Store (0x01, Local0)
                            }
                        }
                        Else
                        {
                            If (And (\RBEC (0x1A), 0x10))
                            {
                                Store (0x01, Local0)
                            }
                        }
                    }
                }

                If (LEqual (Arg0, 0x01))
                {
                    If (LEqual (Arg1, 0x01))
                    {
                        If (\H8DR)
                        {
                            Or (\_SB.PCI0.LPC.EC.HAMA, 0x20, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xFF, 0x20)
                        }
                    }

                    If (LEqual (Arg1, 0x00))
                    {
                        If (\H8DR)
                        {
                            And (\_SB.PCI0.LPC.EC.HAMA, 0xDF, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xDF, 0x00)
                        }
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        If (\H8DR)
                        {
                            If (And (\_SB.PCI0.LPC.EC.HAMA, 0x20))
                            {
                                Store (0x01, Local0)
                            }
                        }
                        Else
                        {
                            If (And (\RBEC (0x1A), 0x20))
                            {
                                Store (0x01, Local0)
                            }
                        }
                    }
                }

                Return (Local0)
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q54, 0, NotSerialized)
            {
                Noop
            }

            Method (_Q55, 0, NotSerialized)
            {
                Noop
            }
        }

        Scope (\_SB.PCI0.LPC.EC.HKEY)
        {
            Method (DBTH, 0, NotSerialized)
            {
                Store (0x00, Local0)
                XOr (\_SB.PCI0.LPC.C0BI, 0x01, Local0)
                Return (Local0)
            }

            Method (DPWC, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (\H8DR)
                    {
                        Store (One, \_SB.PCI0.LPC.EC.BDPW)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xFF, 0x20)
                    }
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (Zero, \_SB.PCI0.LPC.EC.BDPW)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xDF, 0x00)
                    }
                }
            }

            Method (DATH, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (\H8DR)
                    {
                        Store (Zero, \_SB.PCI0.LPC.EC.BDDT)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xBF, 0x00)
                    }
                }
                Else
                {
                    If (\H8DR)
                    {
                        Store (One, \_SB.PCI0.LPC.EC.BDDT)
                    }
                    Else
                    {
                        \MBEC (0x3B, 0xFF, 0x40)
                    }
                }
            }

            Method (DTGL, 0, NotSerialized)
            {
                If (DBTH ())
                {
                    DPWC (LNot (DPWS ()))
                }
            }

            Method (DPWS, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.BDPW, Local0)
                }
                Else
                {
                    Store (ShiftRight (And (\RBEC (0x3B), 0x20), 0x05), Local0)
                }

                Return (Local0)
            }

            Method (DATS, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.BDDT, Local0)
                }
                Else
                {
                    Store (ShiftRight (And (\RBEC (0x3B), 0x40), 0x06), Local0)
                }

                XOr (Local0, 0x01, Local0)
                Return (Local0)
            }

            Method (DWKS, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.BDWK, Local0)
                }
                Else
                {
                    Store (ShiftRight (And (\RBEC (0x48), 0x80), 0x07), Local0)
                }

                Return (Local0)
            }

            Method (DATN, 2, NotSerialized)
            {
                Store (0x00, Local0)
                If (LEqual (Arg0, 0x00))
                {
                    If (LEqual (Arg1, 0x01))
                    {
                        If (\H8DR)
                        {
                            Or (\_SB.PCI0.LPC.EC.HAMA, 0x40, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xFF, 0x40)
                        }
                    }

                    If (LEqual (Arg1, 0x00))
                    {
                        If (\H8DR)
                        {
                            And (\_SB.PCI0.LPC.EC.HAMA, 0xBF, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xBF, 0x00)
                        }
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        If (\H8DR)
                        {
                            If (And (\_SB.PCI0.LPC.EC.HAMA, 0x40))
                            {
                                Store (0x01, Local0)
                            }
                        }
                        Else
                        {
                            If (And (\RBEC (0x1A), 0x40))
                            {
                                Store (0x01, Local0)
                            }
                        }
                    }
                }

                If (LEqual (Arg0, 0x01))
                {
                    If (LEqual (Arg1, 0x01))
                    {
                        If (\H8DR)
                        {
                            Or (\_SB.PCI0.LPC.EC.HAMA, 0x80, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0xFF, 0x80)
                        }
                    }

                    If (LEqual (Arg1, 0x00))
                    {
                        If (\H8DR)
                        {
                            And (\_SB.PCI0.LPC.EC.HAMA, 0x7F, \_SB.PCI0.LPC.EC.HAMA)
                        }
                        Else
                        {
                            \MBEC (0x1A, 0x7F, 0x00)
                        }
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        If (\H8DR)
                        {
                            If (And (\_SB.PCI0.LPC.EC.HAMA, 0x80))
                            {
                                Store (0x01, Local0)
                            }
                        }
                        Else
                        {
                            If (And (\RBEC (0x1A), 0x80))
                            {
                                Store (0x01, Local0)
                            }
                        }
                    }
                }

                Return (Local0)
            }
        }

        Scope (\_SB.PCI0.LPC.EC)
        {
            Method (_Q57, 0, NotSerialized)
            {
                Noop
            }
        }
    }

    Name (\_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (\_S3, Package (0x04)
    {
        0x05, 
        0x05, 
        0x00, 
        0x00
    })
    Name (\_S4, Package (0x04)
    {
        0x06, 
        0x06, 
        0x00, 
        0x00
    })
    Name (\_S5, Package (0x04)
    {
        0x07, 
        0x07, 
        0x00, 
        0x00
    })
    Method (\_PTS, 1, NotSerialized)
    {
        Store (0x01, Local0)
        If (LEqual (Arg0, \SPS))
        {
            Store (0x00, Local0)
        }

        If (LOr (LEqual (Arg0, 0x00), LNot (LLess (Arg0, 0x06))))
        {
            Store (0x00, Local0)
        }

        If (Local0)
        {
            Store (Arg0, \SPS)
            \_SB.PCI0.LPC.EC.HKEY.MHKE (0x00)
            If (\_SB.PCI0.LPC.EC.KBLT)
            {
                \CMS (0x0D)
            }

            If (LEqual (Arg0, 0x01))
            {
                Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
                Store (0x00, \_SB.PCI0.LPC.EC.HFNI)
                Store (0x00, \_SB.PCI0.LPC.EC.HFSP)
                If (H8DR)
                {
                    Store (0x02, \_SB.PCI0.LPC.EC.SSTA)
                }
                Else
                {
                    MBEC (0x90, 0xF8, 0x02)
                }
            }

            If (LEqual (Arg0, 0x02))
            {
                If (H8DR)
                {
                    Store (0x03, \_SB.PCI0.LPC.EC.SSTA)
                }
                Else
                {
                    MBEC (0x90, 0xF8, 0x03)
                }
            }

            If (LEqual (Arg0, 0x03))
            {
                If (\W98F)
                {
                    MBEC (0x15, 0xF3, 0x04)
                }
                Else
                {
                    MBEC (0x15, 0xF3, 0x00)
                }

                If (H8DR)
                {
                    Store (0x04, \_SB.PCI0.LPC.EC.SSTA)
                }
                Else
                {
                    MBEC (0x90, 0xF8, 0x04)
                }

                \TRAP ()
            }

            If (LEqual (Arg0, 0x04))
            {
                \_SB.SLPB._PSW (0x00)
                If (\SPEN)
                {
                    \STEP (0x07)
                }

                If (H8DR)
                {
                    Store (0x05, \_SB.PCI0.LPC.EC.SSTA)
                }
                Else
                {
                    MBEC (0x90, 0xF8, 0x05)
                }

                \TRAP ()
            }

            If (LEqual (Arg0, 0x05))
            {
                \TRAP ()
            }

            \_SB.PCI0.LPC.EC.BPTS (Arg0)
            If (LNot (LEqual (Arg0, 0x05)))
            {
                Store (0x01, \_SB.PCI0.LPC.EC.HCMU)
                If (\W98F)
                {
                    \CBRI ()
                }
            }

            \_SB.PCI0.LPC.EC.HKEY.BTPS (Arg0)
        }
    }

    Name (WAKI, Package (0x02)
    {
        0x00, 
        0x00
    })
    Method (\_WAK, 1, NotSerialized)
    {
        If (LOr (LEqual (Arg0, 0x00), LNot (LLess (Arg0, 0x05))))
        {
            Return (WAKI)
        }

        Store (0x00, \SPS)
        Store (0x00, \_SB.PCI0.LPC.EC.HCMU)
        Store (0x80, \_SB.PCI0.LPC.EC.HFSP)
        \_SB.PCI0.LPC.EC.EVNT (0x01)
        \_SB.PCI0.LPC.EC.HKEY.MHKE (0x01)
        \_SB.PCI0.LPC.EC.FNST ()
        If (LEqual (Arg0, 0x01))
        {
            Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
        }

        If (LEqual (Arg0, 0x03))
        {
            MBEC (0x15, 0xFF, 0x0C)
        }

        If (LEqual (Arg0, 0x04))
        {
            If (\W98F)
            {
                Notify (\_SB.SLPB, 0x02)
            }

            If (\WMEF)
            {
                \_SB.PCI0.LPC.EC.BEEP (0x05)
            }

            If (LNot (\W98F))
            {
                Store (0x00, \_SB.PCI0.LPC.EC.HSPA)
            }

            If (\SPEN)
            {
                \STEP (0x08)
            }
        }

        \_SB.PCI0.LPC.EC.BWAK (Arg0)
        \_SB.PCI0.LPC.EC.HKEY.BTWA (Arg0)
        Notify (\_TZ.THM0, 0x80)
        \VSLD (\_SB.LID._LID ())
        If (LAnd (\W98F, LNot (\WMEF)))
        {
            Notify (\_SB.PCI0.USB0, 0x00)
            Notify (\_SB.PCI0.USB1, 0x00)
        }

        If (LLess (Arg0, 0x04))
        {
            If (And (\RRBF, 0x02))
            {
                ShiftLeft (Arg0, 0x08, Local0)
                Store (Or (0x2013, Local0), Local0)
                \_SB.PCI0.LPC.EC.HKEY.MHKQ (Local0)
            }
        }

        Store (Zero, \RRBF)
        If (H8DR)
        {
            Store (0x01, \_SB.PCI0.LPC.EC.SSTA)
        }
        Else
        {
            MBEC (0x90, 0xF8, 0x01)
        }

        Return (WAKI)
    }

    Scope (\_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00))
            {
                \_SB.PCI0.LPC.EC.LED (0x00, 0x00)
                \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
            }

            If (LEqual (Arg0, 0x01))
            {
                If (LOr (\SPS, \WNTF))
                {
                    \_SB.PCI0.LPC.EC.BEEP (0x05)
                }

                \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
                \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
            }

            If (LEqual (Arg0, 0x02))
            {
                \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
                \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
            }

            If (LEqual (Arg0, 0x03))
            {
                If (LGreater (\SPS, 0x03))
                {
                    \_SB.PCI0.LPC.EC.BEEP (0x07)
                }
                Else
                {
                    If (LEqual (\SPS, 0x03))
                    {
                        \_SB.PCI0.LPC.EC.BEEP (0x03)
                    }
                    Else
                    {
                        \_SB.PCI0.LPC.EC.BEEP (0x04)
                    }
                }

                If (LEqual (\SPS, 0x03))
                {
                    \_SB.PCI0.LPC.EC.LED (0x00, 0x00)
                }
                Else
                {
                    \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
                }

                \_SB.PCI0.LPC.EC.LED (0x07, 0x80)
            }

            If (LEqual (Arg0, 0x04))
            {
                \_SB.PCI0.LPC.EC.BEEP (0x03)
                \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
            }
        }
    }

    Scope (\_GPE)
    {
        Method (_L18, 0, NotSerialized)
        {
            Store (RBEC (0x4F), Local0)
            ShiftLeft (Local0, 0x08, Local0)
            Or (RBEC (0x4E), Local0, Local0)
            Store (Local0, \RRBF)
            If (And (Local0, 0x8000))
            {
                Notify (\_SB.SLPB, 0x02)
            }

            If (And (Local0, 0x02)) {}
            If (And (Local0, 0x04))
            {
                If (\W98F)
                {
                    Notify (\_SB.SLPB, 0x02)
                }
                Else
                {
                    Notify (\_SB.LID, 0x02)
                }
            }

            If (And (Local0, 0x08))
            {
                Notify (\_SB.SLPB, 0x02)
            }

            If (And (Local0, 0x10))
            {
                Notify (\_SB.SLPB, 0x02)
            }

            If (And (Local0, 0x20)) {}
            If (And (Local0, 0x40)) {}
            If (And (Local0, 0x80))
            {
                Notify (\_SB.SLPB, 0x02)
            }
        }
    }

    Scope (\_TZ)
    {
        ThermalZone (THM0)
        {
            Name (_PSL, Package (0x01)
            {
                \_PR.CPU
            })
            Method (_CRT, 0, NotSerialized)
            {
                Return (\TCRT)
            }

            Method (_PSV, 0, NotSerialized)
            {
                Return (\TPSV)
            }

            Method (_TC1, 0, NotSerialized)
            {
                Return (\TTC1)
            }

            Method (_TC2, 0, NotSerialized)
            {
                Return (\TTC2)
            }

            Method (_TSP, 0, NotSerialized)
            {
                Return (\TTSP)
            }

            Method (_TMP, 0, NotSerialized)
            {
                If (\H8DR)
                {
                    Store (\_SB.PCI0.LPC.EC.TMP0, Local0)
                    Store (\_SB.PCI0.LPC.EC.HT12, Local1)
                }
                Else
                {
                    Store (\RBEC (0x78), Local0)
                    Store (And (\RBEC (0x20), 0x40), Local1)
                }

                If (Local1)
                {
                    Add (\TCRT, 0x01, Local0)
                    Return (Local0)
                }

                Return (C2K (Local0))
            }
        }

        Method (C2K, 1, NotSerialized)
        {
            Add (Multiply (Arg0, 0x0A), 0x0AAC, Local0)
            If (LNot (LGreater (Local0, 0x0AAC)))
            {
                Store (0x0BB8, Local0)
            }

            If (LNot (LLess (Local0, 0x0FAC)))
            {
                Store (0x0BB8, Local0)
            }

            Return (Local0)
        }
    }

    Scope (\_SB.PCI0.LPC.EC)
    {
        Method (_Q40, 0, NotSerialized)
        {
            Notify (\_TZ.THM0, 0x80)
            If (\_SB.PCI0.LPC.EC.HT01)
            {
                \STEP (0x0B)
            }
            Else
            {
                \STEP (0x0C)
            }

            If (\SPEN)
            {
                If (\OSPX)
                {
                    Notify (\_PR.CPU, 0x80)
                }
                Else
                {
                    If (LOr (\_SB.PCI0.LPC.EC.HT00, \_SB.PCI0.LPC.EC.HT10))
                    {
                        \STEP (0x09)
                    }
                    Else
                    {
                        \STEP (0x0A)
                    }

                    If (\_SB.PCI0.LPC.EC.HT01)
                    {
                        \STEP (0x0B)
                    }
                    Else
                    {
                        \STEP (0x0C)
                    }
                }
            }
        }
    }

    OperationRegion (MNVS, SystemMemory, 0x2FF7A000, 0x1000)
    Field (MNVS, DWordAcc, NoLock, Preserve)
    {
        Offset (0xF00), 
        GAPA,   32, 
        GAPL,   32, 
        DCKI,   32, 
        DCKS,   32, 
        VCDL,   1, 
        VCDC,   1, 
        VCDT,   1, 
        VCDD,   1, 
            ,   1, 
        VCSS,   1, 
        VCDB,   1, 
        VCIN,   1, 
        Offset (0xF12), 
        VLID,   4, 
        Offset (0xF14), 
        CDFL,   8, 
        CDAH,   8, 
        PMOD,   2, 
        PDIR,   1, 
        PDMA,   1, 
        Offset (0xF17), 
        LFDC,   1, 
        Offset (0xF18), 
        C2NA,   1, 
        C3NA,   1, 
        C4NA,   1, 
        Offset (0xF19), 
        SPEN,   1, 
            ,   1, 
            ,   1, 
            ,   1, 
        Offset (0xF1A), 
        OSPX,   1, 
        OSC4,   1, 
        Offset (0xF1B), 
        UOPT,   8, 
        BTID,   32, 
        P0FQ,   16, 
        P0PW,   16, 
        P0CT,   16, 
        P1FQ,   16, 
        P1PW,   16, 
        P1CT,   16, 
        P2FQ,   16, 
        P2PW,   16, 
        P2CT,   16, 
        P3FQ,   16, 
        P3PW,   16, 
        P3CT,   16, 
        P4FQ,   16, 
        P4PW,   16, 
        P4CT,   16, 
        P5FQ,   16, 
        P5PW,   16, 
        P5CT,   16, 
        P6FQ,   16, 
        P6PW,   16, 
        P6CT,   16, 
        LWST,   8, 
        TCRT,   16, 
        TPSV,   16, 
        TTC1,   16, 
        TTC2,   16, 
        TTSP,   16, 
        SRP0,   8, 
        SRAG,   8
    }

    Field (MNVS, ByteAcc, NoLock, Preserve)
    {
        Offset (0xE00), 
        DDC1,   1024, 
        Offset (0xF00)
    }

    Field (MNVS, ByteAcc, NoLock, Preserve)
    {
        Offset (0xE00), 
        DDC2,   2048
    }

    OperationRegion (SMI0, SystemIO, 0xB2, 0x01)
    Field (SMI0, ByteAcc, NoLock, Preserve)
    {
        APMC,   8
    }

    Field (MNVS, AnyAcc, NoLock, Preserve)
    {
        Offset (0xFC0), 
        CMD,    8, 
        ERR,    32, 
        PAR0,   32, 
        PAR1,   32, 
        PAR2,   32, 
        PAR3,   32
    }

    Mutex (MSMI, 0x07)
    Method (SMI, 5, NotSerialized)
    {
        Acquire (MSMI, 0xFFFF)
        Store (Arg0, CMD)
        Store (Arg1, PAR0)
        Store (Arg2, PAR1)
        Store (Arg3, PAR2)
        Store (Arg4, PAR3)
        Store (0xF5, APMC)
        While (LEqual (ERR, 0x01))
        {
            Sleep (0x64)
            Store (0xF5, APMC)
        }

        Store (PAR0, Local0)
        Release (MSMI)
        Return (Local0)
    }

    Method (RPCI, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x00, Arg0, 0x00, 0x00))
    }

    Method (WPCI, 2, NotSerialized)
    {
        SMI (0x00, 0x01, Arg0, Arg1, 0x00)
    }

    Method (MPCI, 3, NotSerialized)
    {
        SMI (0x00, 0x02, Arg0, Arg1, Arg2)
    }

    Method (RBEC, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x03, Arg0, 0x00, 0x00))
    }

    Method (WBEC, 2, NotSerialized)
    {
        SMI (0x00, 0x04, Arg0, Arg1, 0x00)
    }

    Method (MBEC, 3, NotSerialized)
    {
        SMI (0x00, 0x05, Arg0, Arg1, Arg2)
    }

    Method (RISA, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x06, Arg0, 0x00, 0x00))
    }

    Method (WISA, 2, NotSerialized)
    {
        SMI (0x00, 0x07, Arg0, Arg1, 0x00)
    }

    Method (MISA, 3, NotSerialized)
    {
        SMI (0x00, 0x08, Arg0, Arg1, Arg2)
    }

    Method (WECC, 1, NotSerialized)
    {
        SMI (0x00, 0x09, Arg0, 0x00, 0x00)
    }

    Method (RECD, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x0A, Arg0, 0x00, 0x00))
    }

    Method (WECD, 2, NotSerialized)
    {
        SMI (0x00, 0x0B, Arg0, Arg1, 0x00)
    }

    Method (MECD, 3, NotSerialized)
    {
        SMI (0x00, 0x0C, Arg0, Arg1, Arg2)
    }

    Method (WEDC, 1, NotSerialized)
    {
        SMI (0x00, 0x0D, Arg0, 0x00, 0x00)
    }

    Method (REDR, 1, NotSerialized)
    {
        Return (SMI (0x00, 0x0E, Arg0, 0x00, 0x00))
    }

    Method (WEDR, 2, NotSerialized)
    {
        SMI (0x00, 0x0F, Arg0, Arg1, 0x00)
    }

    Method (MEDR, 3, NotSerialized)
    {
        SMI (0x00, 0x10, Arg0, Arg1, Arg2)
    }

    Method (VEXP, 0, NotSerialized)
    {
        SMI (0x01, 0x00, 0x00, 0x00, 0x00)
    }

    Method (VUPS, 1, NotSerialized)
    {
        SMI (0x01, 0x01, Arg0, 0x00, 0x00)
    }

    Method (VSDS, 2, NotSerialized)
    {
        SMI (0x01, 0x02, Arg0, Arg1, 0x00)
    }

    Method (VDDC, 0, NotSerialized)
    {
        SMI (0x01, 0x03, 0x00, 0x00, 0x00)
    }

    Method (VVPD, 1, NotSerialized)
    {
        SMI (0x01, 0x04, Arg0, 0x00, 0x00)
    }

    Method (VNRS, 1, NotSerialized)
    {
        SMI (0x01, 0x05, Arg0, 0x00, 0x00)
    }

    Method (GLPW, 0, NotSerialized)
    {
        Return (SMI (0x01, 0x06, 0x00, 0x00, 0x00))
    }

    Method (VSLD, 1, NotSerialized)
    {
        SMI (0x01, 0x07, Arg0, 0x00, 0x00)
    }

    Method (VEVT, 1, NotSerialized)
    {
        Return (SMI (0x01, 0x08, Arg0, 0x00, 0x00))
    }

    Method (CMS, 1, NotSerialized)
    {
        Return (SMI (0x02, Arg0, 0x00, 0x00, 0x00))
    }

    Method (BHDP, 2, NotSerialized)
    {
        Return (SMI (0x03, 0x00, Arg0, Arg1, 0x00))
    }

    Method (DHDP, 1, NotSerialized)
    {
        Return (SMI (0x03, 0x01, Arg0, 0x00, 0x00))
    }

    Method (STEP, 1, NotSerialized)
    {
        SMI (0x04, Arg0, 0x00, 0x00, 0x00)
    }

    Method (TRAP, 0, NotSerialized)
    {
        SMI (0x05, 0x00, 0x00, 0x00, 0x00)
    }

    Method (CBRI, 0, NotSerialized)
    {
        SMI (0x05, 0x01, 0x00, 0x00, 0x00)
    }

    Method (BLTH, 1, NotSerialized)
    {
        Return (SMI (0x06, Arg0, 0x00, 0x00, 0x00))
    }

    Method (FISP, 0, NotSerialized)
    {
        SMI (0x07, 0x00, 0x00, 0x00, 0x00)
    }

    Method (DPIO, 2, NotSerialized)
    {
        If (LNot (Arg0))
        {
            Return (0x00)
        }

        If (LGreater (Arg0, 0xF0))
        {
            Return (0x00)
        }

        If (LGreater (Arg0, 0xB4))
        {
            If (Arg1)
            {
                Return (0x02)
            }
            Else
            {
                Return (0x01)
            }
        }

        If (LGreater (Arg0, 0x78))
        {
            Return (0x03)
        }

        Return (0x04)
    }

    Method (DUDM, 2, NotSerialized)
    {
        If (LNot (Arg1))
        {
            Return (0xFF)
        }

        If (LGreater (Arg0, 0x5A))
        {
            Return (0x00)
        }

        If (LGreater (Arg0, 0x3C))
        {
            Return (0x01)
        }

        If (LGreater (Arg0, 0x2D))
        {
            Return (0x02)
        }

        If (LGreater (Arg0, 0x1E))
        {
            Return (0x03)
        }

        If (LGreater (Arg0, 0x14))
        {
            Return (0x04)
        }

        Return (0x05)
    }

    Method (DMDM, 2, NotSerialized)
    {
        If (Arg1)
        {
            Return (0x00)
        }

        If (LNot (Arg0))
        {
            Return (0x00)
        }

        If (LGreater (Arg0, 0x96))
        {
            Return (0x01)
        }

        If (LGreater (Arg0, 0x78))
        {
            Return (0x02)
        }

        Return (0x03)
    }

    Method (UUDM, 2, NotSerialized)
    {
        If (LNot (And (Arg0, 0x04)))
        {
            Return (0x00)
        }

        If (And (Arg1, 0x20))
        {
            Return (0x14)
        }

        If (And (Arg1, 0x10))
        {
            Return (0x1E)
        }

        If (And (Arg1, 0x08))
        {
            Return (0x2D)
        }

        If (And (Arg1, 0x04))
        {
            Return (0x3C)
        }

        If (And (Arg1, 0x02))
        {
            Return (0x5A)
        }

        If (And (Arg1, 0x01))
        {
            Return (0x78)
        }

        Return (0x00)
    }

    Method (UMDM, 4, NotSerialized)
    {
        If (LNot (And (Arg0, 0x02)))
        {
            Return (0x00)
        }

        If (And (Arg1, 0x04))
        {
            Return (Arg3)
        }

        If (And (Arg1, 0x02))
        {
            If (LNot (LGreater (Arg3, 0x78)))
            {
                Return (0xB4)
            }
            Else
            {
                Return (Arg3)
            }
        }

        If (And (Arg2, 0x04))
        {
            If (LNot (LGreater (Arg3, 0xB4)))
            {
                Return (0xF0)
            }
            Else
            {
                Return (Arg3)
            }
        }

        Return (0x00)
    }

    Method (UPIO, 4, NotSerialized)
    {
        If (LNot (And (Arg0, 0x02)))
        {
            If (LEqual (Arg2, 0x02))
            {
                Return (0xF0)
            }
            Else
            {
                Return (0x0384)
            }
        }

        If (And (Arg1, 0x02))
        {
            Return (Arg3)
        }

        If (And (Arg1, 0x01))
        {
            If (LNot (LGreater (Arg3, 0x78)))
            {
                Return (0xB4)
            }
            Else
            {
                Return (Arg3)
            }
        }

        If (LEqual (Arg2, 0x02))
        {
            Return (0xF0)
        }
        Else
        {
            Return (0x0384)
        }
    }

    Method (FDMA, 2, NotSerialized)
    {
        If (LNot (LEqual (Arg1, 0xFF)))
        {
            Return (Or (Arg1, 0x40))
        }

        If (LNot (LLess (Arg0, 0x03)))
        {
            Return (Or (Subtract (Arg0, 0x02), 0x20))
        }

        If (Arg0)
        {
            Return (0x12)
        }

        Return (0x00)
    }

    Method (FPIO, 1, NotSerialized)
    {
        If (LNot (LLess (Arg0, 0x03)))
        {
            Return (Or (Arg0, 0x08))
        }

        If (LEqual (Arg0, 0x01))
        {
            Return (0x01)
        }

        Return (0x00)
    }

    Method (SCMP, 2, NotSerialized)
    {
        Store (SizeOf (Arg0), Local0)
        If (LNot (LEqual (Local0, SizeOf (Arg1))))
        {
            Return (One)
        }

        Increment (Local0)
        Name (STR1, Buffer (Local0) {})
        Name (STR2, Buffer (Local0) {})
        Store (Arg0, STR1)
        Store (Arg1, STR2)
        Store (Zero, Local1)
        While (LLess (Local1, Local0))
        {
            Store (DerefOf (Index (STR1, Local1)), Local2)
            Store (DerefOf (Index (STR2, Local1)), Local3)
            If (LNot (LEqual (Local2, Local3)))
            {
                Return (One)
            }

            Increment (Local1)
        }

        Return (Zero)
    }

    Name (SPS, 0x00)
    Name (OSIF, 0x00)
    Name (W98F, 0x00)
    Name (WNTF, 0x00)
    Name (WMEF, 0x00)
    Name (LNUX, 0x00)
    Name (H8DR, 0x00)
    Name (MEMX, 0x00)
    Name (FNID, 0x00)
    Name (RRBF, 0x00)
}


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-11-17  0:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-09 19:33 AE_BAD_HEX_CONSTANT Paulo da Silva
     [not found] ` <20041109193331.930.qmail-0Htg24VVpk2A/QwVtaZbd3CJp6faPEW9@public.gmane.org>
2004-11-09 19:49   ` AE_BAD_HEX_CONSTANT Nate Lawson
     [not found]     ` <41911F58.6020300-Y6VGUYTwhu0@public.gmane.org>
2004-11-12 15:20       ` AE_BAD_HEX_CONSTANT Bruno Ducrot
     [not found]         ` <20041112152048.GE31422-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2004-11-12 22:56           ` AE_BAD_HEX_CONSTANT Nate Lawson
  -- strict thread matches above, loose matches on Subject: below --
2004-11-12 23:08 AE_BAD_HEX_CONSTANT Moore, Robert
2004-11-16 22:26 AE_BAD_HEX_CONSTANT Moore, Robert
     [not found] ` <37F890616C995246BE76B3E6B2DBE05502A86F8F-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-11-16 23:19   ` AE_BAD_HEX_CONSTANT Nate Lawson
2004-11-17  0:53 AE_BAD_HEX_CONSTANT Li, Shaohua

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox