Getting suspend modes to work on a Dell Precision M70

Pierre-Luc Drouin pldrouin at pldrouin.net
Wed Jun 8 21:44:33 GMT 2005


Kevin Oberman wrote:

>>Date: Wed, 08 Jun 2005 13:18:16 -0400
>>From: Pierre-Luc Drouin <pldrouin at pldrouin.net>
>>Sender: owner-freebsd-mobile at freebsd.org
>>
>>I have not received any reply about this. Could someone help me please?
>>
>>Thanks!!
>>
>>Pierre-Luc Drouin wrote:
>>
>>    
>>
>>>Hi,
>>>
>>>I got a Dell Precision M70. All the ACPI features (battery, power 
>>>buttons, change CPU frequency, temperature) seam to work, except the 
>>>suspend modes. Here is what I get:
>>>
>>>acpi0: <DELL CPi R  > on motherboard
>>>acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
>>>cpu0: <ACPI CPU (4 Cx states)> on acpi0
>>>acpi_throttle0: <ACPI CPU Throttling> on cpu0
>>>acpi_acad0: <AC Adapter> on acpi0
>>>acpi_cmbat0: <Control Method Battery> on acpi0
>>>acpi_cmbat1: <Control Method Battery> on acpi0
>>>acpi_lid0: <Control Method Lid Switch> on acpi0
>>>acpi_button0: <Power Button> on acpi0
>>>acpi_button1: <Sleep Button> on acpi0
>>>pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
>>>acpi_tz0: <Thermal Zone> on acpi0
>>>atkbdc0: <Keyboard controller (i8042)> port 0x66,0x62,0x64,0x60 irq 1 
>>>on acpi0
>>>sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 
>>>on acpi0
>>>
>>>
>>>acpiconf -s1
>>>Jun  3 11:41:57 mdaemon acpi: suspend at 20050603 11:41:57
>>>Jun  3 11:41:57 mdaemon kernel: acpi0: Sleep state S1 not supported by 
>>>BIOS
>>>Jun  3 11:41:57 mdaemon acpi: resumed at 20050603 11:41:57
>>>acpiconf: sleep type (1) failed: Invalid argument
>>>
>>>acpiconf -s2
>>>Jun  3 11:42:55 mdaemon acpi: suspend at 20050603 11:42:55
>>>Jun  3 11:42:55 mdaemon kernel: acpi0: Sleep state S2 not supported by 
>>>BIOS
>>>Jun  3 11:42:55 mdaemon acpi: resumed at 20050603 11:42:55
>>>acpiconf: sleep type (2) failed: Invalid argument
>>>
>>>acpiconf -s3
>>>Jun  3 11:43:48 mdaemon acpi: suspend at 20050603 11:43:48
>>>Jun  3 11:43:48 mdaemon kernel: acpi0: device_suspend failed
>>>Jun  3 11:43:48 mdaemon acpi: resumed at 20050603 11:43:48
>>>
>>>acpiconf -s4
>>>Jun  3 11:44:18 mdaemon acpi: suspend at 20050603 11:44:18
>>>Jun  3 11:44:19 mdaemon kernel: acpi0: device_suspend failed
>>>Jun  3 11:44:19 mdaemon acpi: resumed at 20050603 11:44:19
>>>
>>>How can I fix it?
>>>      
>>>
>
>In all honestly, these things are very platform/BIOS dependent, so it
>will likely take someone with a Dell system to be a lot of help. Bit a
>few things like the output of 'sysctl hw.acpi', a pointer to both a
>verbose boot, and the output of 'acpidump -t -d > FILE' are a minimum
>requirement.
>
>See the handbook section 11.16 for details.
>  
>
%sysctl hw.acpi
hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S3
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 1
hw.acpi.s4bios: 1
hw.acpi.verbose: 0
hw.acpi.reset_video: 1
hw.acpi.cpu.cx_supported: C1/1 C2/1 C3/85 C4/185
hw.acpi.cpu.cx_lowest: C4
hw.acpi.cpu.cx_usage: 0.00% 5.43% 0.31% 94.24%
hw.acpi.acline: 1
hw.acpi.battery.life: 100
hw.acpi.battery.time: -1
hw.acpi.battery.state: 0
hw.acpi.battery.units: 2
hw.acpi.battery.info_expire: 5
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.tz0.temperature: 43.5C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: -1
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 98.0C
hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

I've attached the output of acpidump

Thanks!

Pierre-Luc Drouin
-------------- next part --------------
/*
  RSD PTR: OEM=DELL, ACPI_Rev=1.0x (0)
	RSDT=0x3ffd8790, cksum=45
 */
/*
  RSDT: Length=64, Revision=1, Checksum=166,
	OEMID=DELL, OEM Table ID=CPi R, OEM Revision=0x27d50203,
	Creator ID=ASL, Creator Revision=0x61
	Entries={ 0x3ffd9400, 0x3ffd9c00, 0x3ffd9800, 0x3ffd9bc0, 0x3ffd8be6, 0x3ffd8a0e, 0x3ffd8813 }
 */
/*
  FACP: Length=116, Revision=1, Checksum=85,
	OEMID=DELL, OEM Table ID=CPi R, OEM Revision=0x27d50203,
	Creator ID=ASL, Creator Revision=0x61
 	FACS=0x3ffe8800, DSDT=0x3ffda000
	INT_MODEL=APIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0x70, ACPI_DISABLE=0x71, S4BIOS_REQ=0x97
	PSTATE_CNT=0x80
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1020-0x1020
	PM_TMR_BLK=0x1008-0x100b
	GPE0_BLK=0x1028-0x102f
	P_LVL2_LAT=50 us, P_LVL3_LAT=50 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=0, MON_ALRM=0, CENTURY=0
	IAPC_BOOT_ARCH=
	Flags={WBINVD,PROC_C1,PWR_BUTTON,SLP_BUTTON,DCK_CAP}
 */
/*
  FACS:	Length=64, HwSig=0x000000ff, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=S4BIOS
	Version=0
 */
/*
  DSDT: Length=12658, Revision=1, Checksum=79,
	OEMID=INT430, OEM Table ID=SYSFexxx, OEM Revision=0x1001,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
/*
  APIC: Length=104, Revision=1, Checksum=11,
	OEMID=DELL, OEM Table ID=CPi R, OEM Revision=0x27d50203,
	Creator ID=ASL, Creator Revision=0x47
	Local APIC ADDR=0xfee00000
	Flags={PC-AT}

	Type=Local APIC
	ACPI CPU=0
	Flags={ENABLED}
	APIC ID=0

	Type=Local APIC
	ACPI CPU=1
	Flags={DISABLED}
	APIC ID=1

	Type=IO APIC
	APIC ID=1
	INT BASE=0
	ADDR=0x00000000fec00000

	Type=INT Override
	BUS=0
	IRQ=0
	INTR=2
	Flags={Polarity=conforming, Trigger=conforming}

	Type=INT Override
	BUS=0
	IRQ=9
	INTR=9
	Flags={Polarity=active-hi, Trigger=level}

	Type=Local NMI
	ACPI CPU=0
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}

	Type=Local NMI
	ACPI CPU=1
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}
 */
/*
  ASF!: Length=91, Revision=16, Checksum=78,
	OEMID=DELL, OEM Table ID=CPi R, OEM Revision=0x27d50203,
	Creator ID=ASL, Creator Revision=0x61
 */
/*
  MCFG: Length=62, Revision=16, Checksum=69,
	OEMID=DELL, OEM Table ID=CPi R, OEM Revision=0x27d50203,
	Creator ID=ASL, Creator Revision=0x61
 */
/*
  SSDT: Length=640, Revision=1, Checksum=97,
	OEMID=PmRef, OEM Table ID=Cpu0Ist, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20030522
 */
/*
  SSDT: Length=472, Revision=1, Checksum=246,
	OEMID=PmRef, OEM Table ID=Cpu0Cst, OEM Revision=0x3001,
	Creator ID=INTL, Creator Revision=0x20030522
 */
/*
  SSDT: Length=507, Revision=1, Checksum=52,
	OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20030522
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20041119
 *
 * Disassembly of /tmp/acpidump.8bm5SB, Wed Jun  8 17:42:54 2005
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "INT430", "SYSFexxx", 4097)
{
    Name (VERS, Package (0x03)
    {
        "Project: DELL D05    ", 
        "Date: 11/12/2003", 
        "Ver: 1.00.00"
    })
    Event (EJTD)
    Name (MISC, Buffer (0x08)
    {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    })
    CreateByteField (MISC, 0x00, MIS0)
    CreateByteField (MISC, 0x02, MIS2)
    CreateByteField (MISC, 0x03, MIS3)
    CreateByteField (MISC, 0x04, MIS4)
    CreateByteField (MISC, 0x05, MIS5)
    CreateByteField (MISC, 0x06, MIS6)
    CreateByteField (MISC, 0x07, MIS7)
    Mutex (SMIX, 0x01)
    Method (SMI, 2, NotSerialized)
    {
        Acquire (SMIX, 0xFFFF)
        Store (Arg1, \_SB.SMIA)
        Store (Arg0, \_SB.SMIC)
        Store (\_SB.SMIC, Local0)
        While (LNot (LEqual (Local0, 0x00)))
        {
            Store (\_SB.SMIC, Local0)
        }

        Store (\_SB.SMIA, Local1)
        Release (SMIX)
        Return (Local1)
    }

    Name (SXX0, Buffer (0x0100) {})
    Name (SXX1, Buffer (0x08) {})
    CreateWordField (SXX1, 0x00, SXX2)
    CreateWordField (SXX1, 0x04, SXX3)
    Method (SX10, 0, NotSerialized)
    {
        Acquire (SMIX, 0xFFFF)
        Store (0x00, SXX2)
    }

    Method (SX30, 1, NotSerialized)
    {
        Store (SXX2, Local0)
        Increment (Local0)
        If (LNot (LGreater (Local0, SizeOf (SXX0))))
        {
            CreateByteField (SXX0, SXX2, SX20)
            Store (Arg0, SX20)
            Store (Local0, SXX2)
        }
    }

    Method (SX31, 1, NotSerialized)
    {
        Store (SXX2, Local0)
        Add (Local0, 0x02, Local0)
        If (LNot (LGreater (Local0, SizeOf (SXX0))))
        {
            CreateWordField (SXX0, SXX2, SX21)
            Store (Arg0, SX21)
            Store (Local0, SXX2)
        }
    }

    Method (SX32, 1, NotSerialized)
    {
        Store (SXX2, Local0)
        Add (Local0, 0x04, Local0)
        If (LNot (LGreater (Local0, SizeOf (SXX0))))
        {
            CreateDWordField (SXX0, SXX2, SX22)
            Store (Arg0, SX22)
            Store (Local0, SXX2)
        }
    }

    Method (SX33, 2, NotSerialized)
    {
        If (LLess (Arg1, SizeOf (Arg0)))
        {
            CreateByteField (Arg0, Arg1, SX20)
            SX30 (SX20)
        }
    }

    Method (SX34, 2, NotSerialized)
    {
        Store (0x00, Local0)
        While (LLess (Local0, Arg1))
        {
            SX33 (Arg0, Local0)
            Increment (Local0)
        }
    }

    Method (SXX6, 2, NotSerialized)
    {
        Store (Arg1, \_SB.SMIA)
        Store (Arg0, \_SB.SMIC)
        Store (\_SB.SMIC, Local0)
        While (LNot (LEqual (Local0, 0x00)))
        {
            Store (\_SB.SMIC, Local0)
        }

        Return (\_SB.SMIA)
    }

    Method (SXX5, 2, NotSerialized)
    {
        If (LLess (Arg1, SizeOf (Arg0)))
        {
            CreateByteField (Arg0, Arg1, SX20)
            SXX6 (0x7C, SX20)
        }
    }

    Method (SXX4, 0, NotSerialized)
    {
        SXX6 (0x7B, 0x00)
        Store (0x00, Local0)
        While (LLess (Local0, SXX2))
        {
            SXX5 (SXX0, Local0)
            Increment (Local0)
        }
    }

    Method (SXX8, 2, NotSerialized)
    {
        If (LLess (Arg1, SizeOf (Arg0)))
        {
            CreateByteField (Arg0, Arg1, SX20)
            Store (SXX6 (0x7D, 0x00), SX20)
        }
    }

    Method (SXX7, 0, NotSerialized)
    {
        Store (0x00, Local0)
        While (LLess (Local0, SXX3))
        {
            Add (SXX2, Local0, Local1)
            SXX8 (SXX0, Local1)
            Increment (Local0)
        }
    }

    Method (SX11, 0, NotSerialized)
    {
        SXX4 ()
        Store (SXX6 (0x79, 0x00), SXX3)
        Add (SXX2, SXX3, Local0)
        If (LLess (SizeOf (SXX0), Local0))
        {
            Store (SizeOf (SXX0), Local0)
            Subtract (Local0, SXX2, Local0)
            Store (Local0, SXX3)
        }

        SXX7 ()
    }

    Method (SX40, 0, NotSerialized)
    {
        Store (SXX2, Local0)
        Increment (Local0)
        If (LNot (LGreater (Local0, SizeOf (SXX0))))
        {
            CreateByteField (SXX0, SXX2, SX20)
            Store (Local0, SXX2)
            Return (SX20)
        }

        Return (0x00)
    }

    Method (SX41, 0, NotSerialized)
    {
        Store (SXX2, Local0)
        Add (Local0, 0x02, Local0)
        If (LNot (LGreater (Local0, SizeOf (SXX0))))
        {
            CreateWordField (SXX0, SXX2, SX21)
            Store (Local0, SXX2)
            Return (SX21)
        }

        Return (0x00)
    }

    Method (SX42, 0, NotSerialized)
    {
        Store (SXX2, Local0)
        Add (Local0, 0x04, Local0)
        If (LNot (LGreater (Local0, SizeOf (SXX0))))
        {
            CreateDWordField (SXX0, SXX2, SX22)
            Store (Local0, SXX2)
            Return (SX22)
        }

        Return (0x00)
    }

    Method (SX43, 2, NotSerialized)
    {
        If (LLess (Arg1, SizeOf (Arg0)))
        {
            CreateByteField (Arg0, Arg1, SX20)
            Store (SX40 (), SX20)
        }
    }

    Method (SX44, 2, NotSerialized)
    {
        Store (0x00, Local0)
        While (LLess (Local0, Arg1))
        {
            SX43 (Arg0, Local0)
            Increment (Local0)
        }
    }

    Method (SX45, 0, NotSerialized)
    {
        Store (SX40 (), Local0)
        Name (SX23, Buffer (Local0) {})
        SX44 (SX23, Local0)
        Return (SX23)
    }

    Method (SX12, 0, NotSerialized)
    {
        Release (SMIX)
    }

    Method (PNPQ, 1, NotSerialized)
    {
        SX10 ()
        SX30 (0x00)
        SX30 (0x02)
        SX30 (Arg0)
        SX11 ()
        Store (SX40 (), Local0)
        SX12 ()
        Return (Local0)
    }

    Method (PNPD, 1, NotSerialized)
    {
        SX10 ()
        SX30 (0x00)
        SX30 (0x03)
        SX30 (Arg0)
        SX11 ()
        SX12 ()
    }

    Method (PNPG, 1, NotSerialized)
    {
        SX10 ()
        SX30 (0x00)
        SX30 (0x00)
        SX30 (Arg0)
        SX11 ()
        Name (PGET, Buffer (SXX3) {})
        SX44 (PGET, SXX3)
        SX12 ()
        Return (PGET)
    }

    Method (PNPS, 2, NotSerialized)
    {
        SX10 ()
        SX30 (0x00)
        SX30 (0x01)
        SX30 (Arg0)
        SX34 (Arg1, SizeOf (Arg1))
        SX11 ()
        SX12 ()
    }

    Method (PSW, 2, NotSerialized)
    {
        SX10 ()
        SX30 (0x06)
        SX30 (Arg0)
        SX30 (Arg1)
        SX11 ()
        SX12 ()
    }

    Method (DSS, 2, NotSerialized)
    {
        SX10 ()
        SX30 (0x08)
        SX30 (Arg0)
        SX32 (Arg1)
        SX11 ()
        SX12 ()
    }

    Method (GMEM, 0, NotSerialized)
    {
        SX10 ()
        SX30 (0x07)
        SX11 ()
        Store (SX42 (), Local0)
        SX12 ()
        Return (Local0)
    }

    Method (GORL, 0, NotSerialized)
    {
        SX10 ()
        SX30 (0x09)
        SX11 ()
        Store (SX42 (), Local0)
        SX12 ()
        Return (Local0)
    }

    Name (W98S, "Microsoft Windows")
    Name (NT5S, "Microsoft Windows NT")
    Name (WINM, "Microsoft WindowsME: Millennium Edition")
    Name (WXP, "Windows 2001")
    Method (GETC, 2, NotSerialized)
    {
        CreateByteField (Arg0, Arg1, TCHR)
        Return (TCHR)
    }

    Method (STRE, 2, NotSerialized)
    {
        Name (STR1, Buffer (0x50) {})
        Name (STR2, Buffer (0x50) {})
        Store (Arg0, STR1)
        Store (Arg1, STR2)
        Store (Zero, Local0)
        Store (One, Local1)
        While (Local1)
        {
            Store (GETC (STR1, Local0), Local1)
            Store (GETC (STR2, Local0), Local2)
            If (LNot (LEqual (Local1, Local2)))
            {
                Return (Zero)
            }

            Increment (Local0)
        }

        Return (One)
    }

    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, 0x00))
        {
            Store (0x01, MIS3)
            If (CondRefOf (\_OSI, Local0))
            {
                If (\_OSI (WXP))
                {
                    Store (0x10, MIS3)
                }
            }
            Else
            {
                If (STRE (\_OS, W98S))
                {
                    Store (0x02, MIS3)
                }

                If (STRE (\_OS, NT5S))
                {
                    Store (0x08, MIS3)
                }

                If (STRE (\_OS, WINM))
                {
                    Store (0x04, MIS3)
                }
            }
        }

        Return (MIS3)
    }

    Method (SOST, 0, NotSerialized)
    {
        SX10 ()
        SX30 (0x0A)
        OSID ()
        SX30 (MIS3)
        SX11 ()
        SX12 ()
    }

    Name (WAKE, 0x00)
    Method (NEVT, 0, NotSerialized)
    {
        Store (SMI (0x8C, 0x00), Local0)
        If (And (Local0, 0x01))
        {
            Notify (\_SB.PBTN, 0x80)
        }

        If (And (Local0, 0x02))
        {
            EJTE ()
        }

        If (And (Local0, 0x04))
        {
            LIDE ()
        }

        If (And (Local0, 0x08))
        {
            PWRE ()
        }

        If (And (Local0, 0x10))
        {
            DCKE ()
        }

        If (And (Local0, 0x20))
        {
            BAYE ()
        }

        If (And (Local0, 0x40))
        {
            Notify (\_SB.SBTN, 0x80)
        }

        If (And (Local0, 0x80))
        {
            SMIE ()
        }
    }

    Method (EJTE, 0, NotSerialized)
    {
        SMI (0xA6, 0x01)
        Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
    }

    Method (LIDE, 0, NotSerialized)
    {
        Store (SMI (0x43, 0x00), Local0)
        If (LNot (LEqual (Local0, 0x00)))
        {
            Store (SMI (0x6D, 0x00), Local0)
            If (LEqual (Local0, 0x03))
            {
                If (LEqual (OSID (), 0x10))
                {
                    Notify (\_SB.PCI0, 0x00)
                    Sleep (0x03E8)
                }
                Else
                {
                    If (LEqual (OSID (), 0x08))
                    {
                        Sleep (0x02EE)
                    }
                }

                Notify (\_SB.PCI0.AGP.VID, 0x80)
            }
        }

        Notify (\_SB.LID, 0x80)
    }

    Method (PWRE, 0, NotSerialized)
    {
        Store (SMI (0x98, 0x00), Local0)
        XOr (Local0, MIS0, Local1)
        And (Local0, Or (0x01, Or (0x02, 0x10)), MIS0)
        If (And (Local1, 0x01))
        {
            Notify (\_SB.AC, 0x80)
        }

        And (MIS0, 0x02, Local2)
        If (And (Local1, 0x02))
        {
            If (Local2)
            {
                Notify (\_SB.BAT0, 0x81)
            }
            Else
            {
                Notify (\_SB.BAT0, 0x81)
            }
        }

        If (And (Local1, 0x04))
        {
            If (Local2)
            {
                Notify (\_SB.BAT0, 0x80)
            }
        }

        If (And (Local1, 0x08))
        {
            If (Local2)
            {
                Notify (\_SB.BAT0, 0x80)
            }
        }

        And (MIS0, 0x10, Local2)
        If (And (Local1, 0x10))
        {
            If (Local2)
            {
                Notify (\_SB.BAT1, 0x81)
            }
            Else
            {
                Notify (\_SB.BAT1, 0x81)
            }
        }

        If (And (Local1, 0x20))
        {
            If (Local2)
            {
                Notify (\_SB.BAT1, 0x80)
            }
        }

        If (And (Local1, 0x40))
        {
            If (Local2)
            {
                Notify (\_SB.BAT1, 0x80)
            }
        }
    }

    Method (DCKE, 0, NotSerialized)
    {
        Store (SMI (0x87, 0x00), Local0)
        XOr (Local0, MIS7, Local1)
        Store (Local0, MIS7)
        Store (Local0, MIS2)
        If (Local1)
        {
            If (Local0)
            {
                Notify (\_SB.PCI0.PCIE.GDCK, 0x00)
            }
            Else
            {
                SMI (0x8D, 0x00)
                Signal (EJTD)
                Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
            }
        }
    }

    Method (BAYE, 0, NotSerialized)
    {
        Store (SMI (0x86, 0x00), Local0)
        If (And (Local0, 0x02))
        {
            SMI (0x90, 0x01)
        }
        Else
        {
            SMI (0x90, 0x00)
        }

        SMI (0xBA, 0x00)
    }

    Method (SMIE, 0, NotSerialized)
    {
        Store (SMI (0x96, 0x00), Local0)
        If (And (Local0, 0x01))
        {
            Notify (\_TZ.THM, 0x80)
        }

        If (And (Local0, 0x20))
        {
            Notify (\_SB.PCI0.AGP.VID, 0x81)
        }

        If (And (Local0, 0x02))
        {
            Notify (\_SB.PCI0.AGP.VID, 0x80)
        }

        If (And (Local0, 0x04))
        {
            Notify (\_SB.BAT0, 0x81)
            Notify (\_SB.BAT1, 0x81)
        }

        If (And (Local0, 0x08))
        {
            Notify (\_PR.CPU0, 0x80)
        }

        If (And (Local0, 0x10))
        {
            Notify (\_SB.PCI0.IDE0.SEC0.MAST, 0x01)
            If (LEqual (OSID (), 0x10))
            {
                Notify (\_SB.PCI0.IDE0.SEC0, 0x01)
            }
        }

        If (And (Local0, 0x40))
        {
            Store (0x00, MIS5)
        }

        If (And (Local0, 0x80))
        {
            Notify (\_SB.PCI0.PXP0, 0x00)
        }
    }

    Method (\_PTS, 1, NotSerialized)
    {
        SMI (0x8A, Arg0)
    }

    Method (\_WAK, 1, NotSerialized)
    {
        SMI (0xA7, MIS2)
        SMI (0x9A, Arg0)
        BAYE ()
        If (LEqual (Arg0, 0x04))
        {
            Notify (\_SB.PBTN, 0x02)
            Store (SMI (0x98, 0x00), MIS0)
            Store (0x01, MIS4)
            SOST ()
        }

        Notify (\_SB.AC, 0x80)
        Store (SMI (0x87, 0x00), Local0)
        XOr (Local0, MIS2, Local1)
        If (Local1)
        {
            If (Local0)
            {
                Notify (\_SB.PCI0.PCIE.GDCK, 0x00)
            }
            Else
            {
                If (LEqual (OSID (), 0x02))
                {
                    SMI (0x8D, 0x00)
                    Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
                }
            }
        }

        Store (Local0, MIS2)
        SMI (0xA6, 0x00)
    }

    Method (NWAK, 0, NotSerialized)
    {
        Store (0x01, WAKE)
        Store (SMI (0x89, 0x00), Local0)
        Store (0x00, Local1)
        If (LEqual (Local0, 0x00))
        {
            Store (0x01, Local1)
        }

        If (And (Local0, 0x01))
        {
            Store (0x01, Local1)
        }

        If (And (Local0, 0x02))
        {
            LIDE ()
        }

        If (And (Local0, 0x10))
        {
            Notify (\_SB.PCI0.PCIE.GDCK, 0x02)
        }

        If (And (Local0, 0x40))
        {
            Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
        }

        If (And (Local0, 0x20))
        {
            If (LEqual (OSID (), 0x02))
            {
                Store (0x01, Local1)
            }
        }

        Notify (\_SB.BAT0, 0x81)
        Notify (\_SB.BAT1, 0x81)
        If (Local1)
        {
            Notify (\_SB.PBTN, 0x02)
        }

        Store (0x00, WAKE)
    }

    Scope (\_GPE)
    {
        Method (_L1D, 0, NotSerialized)
        {
            NEVT ()
        }

        Method (_L1C, 0, NotSerialized)
        {
            NWAK ()
        }

        Method (_L0B, 0, NotSerialized)
        {
            Store (0x00, Local0)
            Notify (\_SB.PCI0, 0x02)
        }

        Method (_L18, 0, NotSerialized)
        {
            Store (0x00, Local0)
        }

        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
        }

        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB1, 0x02)
        }

        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB3, 0x02)
        }

        Method (_L0E, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB4, 0x02)
        }

        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.MODM, 0x02)
        }

        Method (_L09, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.PXP0.NIC, 0x02)
        }
    }

    Name (CRS0, Buffer (0x0192) {})
    CreateWordField (CRS0, 0x0190, CRS1)
    Method (CRS3, 0, NotSerialized)
    {
        Store (0x00, CRS1)
    }

    Method (CRS4, 1, NotSerialized)
    {
        CreateByteField (CRS0, CRS1, CRS2)
        Store (Arg0, CRS2)
        Increment (CRS1)
    }

    Method (CRS5, 1, NotSerialized)
    {
        CreateWordField (CRS0, CRS1, CRS2)
        Store (Arg0, CRS2)
        Increment (CRS1)
        Increment (CRS1)
    }

    Method (CRS6, 1, NotSerialized)
    {
        CreateDWordField (CRS0, CRS1, CRS2)
        Store (Arg0, CRS2)
        Add (CRS1, 0x04, CRS1)
    }

    Method (CR_0, 3, NotSerialized)
    {
        CRS4 (0x86)
        CRS5 (0x09)
        CRS4 (Arg0)
        CRS6 (Arg1)
        CRS6 (Arg2)
    }

    Method (CR_1, 4, NotSerialized)
    {
        CRS4 (0x47)
        CRS4 (0x01)
        CRS5 (Arg0)
        CRS5 (Arg1)
        CRS4 (Arg2)
        CRS4 (Arg3)
    }

    Method (CR_2, 2, NotSerialized)
    {
        CRS4 (0x88)
        CRS5 (0x0D)
        CRS4 (0x02)
        CRS4 (0x0C)
        CRS4 (0x00)
        CRS5 (0x00)
        CRS5 (Arg0)
        Add (Arg0, Arg1, Local0)
        Decrement (Local0)
        CRS5 (Local0)
        CRS5 (0x00)
        CRS5 (Arg1)
    }

    Method (CR_3, 2, NotSerialized)
    {
        CRS4 (0x88)
        CRS5 (0x0D)
        CRS4 (0x01)
        CRS4 (0x0C)
        CRS4 (0x03)
        CRS5 (0x00)
        CRS5 (Arg0)
        Add (Arg0, Arg1, Local0)
        Decrement (Local0)
        CRS5 (Local0)
        CRS5 (0x00)
        CRS5 (Arg1)
    }

    Method (CR_4, 2, NotSerialized)
    {
        CRS4 (0x87)
        CRS5 (0x17)
        CRS4 (0x00)
        CRS4 (0x0C)
        CRS4 (0x03)
        CRS6 (0x00)
        CRS6 (Arg0)
        Add (Arg0, Arg1, Local0)
        Decrement (Local0)
        CRS6 (Local0)
        CRS6 (0x00)
        CRS6 (Arg1)
    }

    Method (CR_5, 0, NotSerialized)
    {
        CRS5 (0x79)
        Store (CRS1, Local0)
        Subtract (0x0192, 0x02, Local1)
        While (LLess (Local0, Local1))
        {
            CRS4 (0x00)
            Increment (Local0)
        }

        Store (0x79, CRS1)
    }

    Scope (\_PR)
    {
        Processor (CPU0, 0x00, 0x000010E0, 0x06) {}
        Processor (CPU1, 0x01, 0x000010E0, 0x06) {}
    }

    Name (\_S0, Package (0x03)
    {
        0x00, 
        0x00, 
        0x00
    })
    Name (\_S3, Package (0x03)
    {
        0x05, 
        0x00, 
        0x00
    })
    Name (\_S4, Package (0x03)
    {
        0x07, 
        0x00, 
        0x00
    })
    Name (\_S5, Package (0x03)
    {
        0x07, 
        0x00, 
        0x00
    })
    Scope (\_TZ)
    {
        ThermalZone (THM)
        {
            Method (_CRT, 0, NotSerialized)
            {
                Store (0x62, Local0)
                Multiply (Local0, 0x0A, Local0)
                Add (Local0, 0x0AAC, Local0)
                Return (Local0)
            }

            Method (_TMP, 0, NotSerialized)
            {
                Store (GINF (0x04), Local0)
                Return (Local0)
            }

            Method (GINF, 1, NotSerialized)
            {
                SX10 ()
                SX30 (Arg0)
                SX11 ()
                Store (SX41 (), Local0)
                SX12 ()
                If (LLess (Local0, 0x0BA6))
                {
                    Store (0x0BA6, Local0)
                }

                Return (Local0)
            }
        }
    }

    Scope (\)
    {
        Name (PICF, 0x00)
        Method (_PIC, 1, NotSerialized)
        {
            Store (Arg0, PICF)
        }
    }

    Scope (\_SB)
    {
        OperationRegion (SMIR, SystemIO, 0xB2, 0x02)
        Field (SMIR, ByteAcc, NoLock, Preserve)
        {
            SMIC,   8, 
            SMID,   8
        }

        OperationRegion (SMR2, SystemIO, 0x86, 0x01)
        Field (SMR2, ByteAcc, NoLock, Preserve)
        {
            SMIA,   8
        }

        Device (AC)
        {
            Name (_HID, "ACPI0003")
            Name (_PCL, Package (0x03)
            {
                \_SB, 
                BAT0, 
                BAT1
            })
            Method (_PSR, 0, NotSerialized)
            {
                Store (SMI (0x85, 0x00), Local0)
                And (Local0, 0x01, Local0)
                Return (Local0)
            }

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

        Name (BIFP, Package (0x0D) {})
        Method (BIF, 1, NotSerialized)
        {
            SX10 ()
            SX30 (0x01)
            SX30 (Arg0)
            SX11 ()
            Store (SX42 (), Index (BIFP, 0x00))
            Store (SX42 (), Index (BIFP, 0x01))
            Store (SX42 (), Index (BIFP, 0x02))
            Store (SX42 (), Index (BIFP, 0x03))
            Store (SX42 (), Index (BIFP, 0x04))
            Store (SX42 (), Index (BIFP, 0x05))
            Store (SX42 (), Index (BIFP, 0x06))
            Store (SX42 (), Index (BIFP, 0x07))
            Store (SX42 (), Index (BIFP, 0x08))
            Store (SX45 (), Index (BIFP, 0x09))
            Store (SX45 (), Index (BIFP, 0x0A))
            Store (SX45 (), Index (BIFP, 0x0B))
            Store (SX45 (), Index (BIFP, 0x0C))
            SX12 ()
            Return (BIFP)
        }

        Device (BAT0)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x01)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_STA, 0, NotSerialized)
            {
                And (MIS0, 0x02, Local0)
                If (Local0)
                {
                    Return (0x1F)
                }

                Return (0x0F)
            }

            Method (_BIF, 0, NotSerialized)
            {
                Return (BIF (0x01))
            }

            Method (_BST, 0, NotSerialized)
            {
                SX10 ()
                SX30 (0x02)
                SX30 (0x01)
                SX11 ()
                Name (BST0, Package (0x04) {})
                Store (SX42 (), Index (BST0, 0x00))
                Store (SX42 (), Index (BST0, 0x01))
                Store (SX42 (), Index (BST0, 0x02))
                Store (SX42 (), Index (BST0, 0x03))
                SX12 ()
                Return (BST0)
            }

            Method (_BTP, 1, NotSerialized)
            {
                SX10 ()
                SX30 (0x03)
                SX30 (0x01)
                SX32 (Arg0)
                SX11 ()
                SX12 ()
                Sleep (0xFA)
            }
        }

        Device (BAT1)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x02)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_STA, 0, NotSerialized)
            {
                And (MIS0, 0x10, Local0)
                If (Local0)
                {
                    Return (0x1F)
                }

                Return (0x0F)
            }

            Method (_BIF, 0, NotSerialized)
            {
                Return (BIF (0x02))
            }

            Method (_BST, 0, NotSerialized)
            {
                SX10 ()
                SX30 (0x02)
                SX30 (0x02)
                SX11 ()
                Name (BST1, Package (0x04) {})
                Store (SX42 (), Index (BST1, 0x00))
                Store (SX42 (), Index (BST1, 0x01))
                Store (SX42 (), Index (BST1, 0x02))
                Store (SX42 (), Index (BST1, 0x03))
                SX12 ()
                Return (BST1)
            }

            Method (_BTP, 1, NotSerialized)
            {
                SX10 ()
                SX30 (0x03)
                SX30 (0x02)
                SX32 (Arg0)
                SX11 ()
                SX12 ()
                Sleep (0xFA)
            }
        }

        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                Store (SMI (0x84, 0x00), Local0)
                Return (Local0)
            }

            Name (_PRW, Package (0x02)
            {
                0x1C, 
                0x03
            })
            Method (_PSW, 1, NotSerialized)
            {
                PSW (Arg0, 0x02)
            }
        }

        Device (PBTN)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_PRW, Package (0x02)
            {
                0x1C, 
                0x04
            })
            Method (_PSW, 1, NotSerialized)
            {
                PSW (Arg0, 0x01)
            }
        }

        Device (SBTN)
        {
            Name (_HID, EisaId ("PNP0C0E"))
        }

        Device (MB1)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Name (_UID, 0x01)
            Method (_CRS, 0, NotSerialized)
            {
                CRS3 ()
                CR_0 (0x01, 0x00, 0x0009FC00)
                CR_0 (0x01, 0x0009FC00, 0x0400)
                If (LOr (LEqual (OSID (), 0x08), LEqual (OSID (), 0x10)))
                {
                    Store (GORL (), Local0)
                    CR_0 (0x00, 0x000C0000, Local0)
                }

                CR_0 (0x00, 0x000E0000, 0x00020000)
                Store (GMEM (), Local0)
                Subtract (Local0, 0x00028000, Local1)
                CR_0 (0x01, 0x00100000, Local1)
                Add (Local1, 0x00100000, Local1)
                CR_0 (0x01, Local1, 0x00028000)
                CR_0 (0x01, 0xFEDA0000, 0x00060000)
                Subtract (0xFFFFFFFF, 0xFFB00000, Local0)
                Add (Local0, 0x01, Local0)
                CR_0 (0x00, 0xFFB00000, Local0)
                CR_0 (0x01, 0xFEC00000, 0x00010000)
                CR_0 (0x01, 0xFEE00000, 0x00010000)
                CR_0 (0x00, 0xFED20000, 0x00080000)
                CR_0 (0x01, 0xF0000000, 0x4000)
                CR_0 (0x01, 0xF0004000, 0x1000)
                CR_0 (0x01, 0xF0005000, 0x1000)
                CR_0 (0x01, 0xF0006000, 0x1000)
                CR_0 (0x01, 0xF0008000, 0x4000)
                CR_0 (0x01, 0xE0000000, 0x10000000)
                CR_5 ()
                Return (CRS0)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_PRW, Package (0x02)
            {
                0x0B, 
                0x05
            })
            Method (_INI, 0, NotSerialized)
            {
                Store (SMI (0x98, 0x00), MIS0)
                And (MIS0, Or (0x01, Or (0x02, 0x10)), MIS0)
                Store (SMI (0x87, 0x00), MIS2)
                Store (0x01, MIS4)
                SOST ()
            }

            Method (_CRS, 0, NotSerialized)
            {
                CRS3 ()
                CR_2 (0x00, 0x0100)
                CR_3 (0x00, 0x0CF8)
                CR_1 (0x0CF8, 0x0CF8, 0x01, 0x08)
                CR_3 (0x0D00, 0xF300)
                CR_4 (0x000A0000, 0x00020000)
                CR_4 (0x000D0000, 0x00010000)
                Add (0x00100000, GMEM (), Local0)
                Subtract (0xE0000000, Local0, Local1)
                CR_4 (Local0, Local1)
                Add (0xF0006000, 0x1000, Local0)
                Subtract (0xF0008000, Local0, Local1)
                CR_4 (Local0, Local1)
                Add (0xF0008000, 0x4000, Local0)
                Subtract (0xFEC00000, Local0, Local1)
                CR_4 (Local0, Local1)
                Add (0xFEC00000, 0x00010000, Local0)
                Subtract (0xFED20000, Local0, Local1)
                If (Local1)
                {
                    CR_4 (Local0, Local1)
                }

                Add (0xFED20000, 0x00080000, Local0)
                Subtract (0xFEDA0000, Local0, Local1)
                CR_4 (Local0, Local1)
                Add (0xFEE00000, 0x00010000, Local0)
                Subtract (0xFFB00000, Local0, Local1)
                CR_4 (Local0, Local1)
                CR_5 ()
                Return (CRS0)
            }

            Device (MB2)
            {
                Name (_HID, EisaId ("PNP0C01"))
                Name (_UID, 0x02)
                Name (CRS, ResourceTemplate ()
                {
                    IO (Decode16, 0x0092, 0x0092, 0x02, 0x01)
                    IO (Decode16, 0x00B2, 0x00B2, 0x02, 0x01)
                    IO (Decode16, 0x0020, 0x0020, 0x10, 0x02)
                    IO (Decode16, 0x00A0, 0x00A0, 0x10, 0x02)
                    IRQNoFlags () {0}
                    IO (Decode16, 0x04D0, 0x04D0, 0x10, 0x02)
                    IO (Decode16, 0x1000, 0x1000, 0x10, 0x06)
                    IO (Decode16, 0x1008, 0x1008, 0x08, 0x08)
                })
                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS)
                }
            }

            Device (MB3)
            {
                Name (_HID, EisaId ("PNP0C01"))
                Name (_UID, 0x03)
                Name (CRS, ResourceTemplate ()
                {
                    IO (Decode16, 0xF400, 0xF400, 0x01, 0xFF)
                    IO (Decode16, 0x0086, 0x0086, 0x02, 0x01)
                    IO (Decode16, 0x00B3, 0x00B3, 0x01, 0x01)
                    IO (Decode16, 0x1006, 0x1006, 0x02, 0x02)
                    IO (Decode16, 0x100A, 0x100A, 0x01, 0x50)
                    IO (Decode16, 0x1060, 0x1060, 0x10, 0x20)
                    IO (Decode16, 0x1080, 0x1080, 0x10, 0x40)
                    IO (Decode16, 0x10C0, 0x10C0, 0x10, 0x20)
                    IO (Decode16, 0x10E0, 0x10E0, 0x10, 0x20)
                })
                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS)
                }
            }

            Device (ISAB)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (PIR1, PCI_Config, 0x60, 0x04)
                OperationRegion (PIR2, PCI_Config, 0x68, 0x04)
                OperationRegion (FDIS, PCI_Config, 0xF2, 0x02)
                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (KBC)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x10, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x04, 0x01)
                        IO (Decode16, 0x0062, 0x0062, 0x02, 0x01)
                        IO (Decode16, 0x0066, 0x0066, 0x06, 0x01)
                        IRQNoFlags () {1}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x10, 0x02)
                        IRQNoFlags () {8}
                        IO (Decode16, 0x0072, 0x0072, 0x02, 0x06)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x10, 0x04)
                        IRQNoFlags () {2}
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
                        IO (Decode16, 0x0063, 0x0063, 0x01, 0x01)
                        IO (Decode16, 0x0065, 0x0065, 0x01, 0x01)
                        IO (Decode16, 0x0067, 0x0067, 0x01, 0x01)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (MB4)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, 0x04)
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x002E, 0x002E, 0x02, 0x02)
                        IO (Decode16, 0x004E, 0x004E, 0x02, 0x02)
                        IO (Decode16, 0x0900, 0x0900, 0x10, 0x10)
                        IO (Decode16, 0x0910, 0x0910, 0x10, 0x10)
                        IO (Decode16, 0x0920, 0x0920, 0x10, 0x10)
                        IO (Decode16, 0x093C, 0x093C, 0x04, 0x04)
                        IO (Decode16, 0x0940, 0x0940, 0x10, 0x40)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0024, 0x0024, 0x04, 0x02)
                        IO (Decode16, 0x0028, 0x0028, 0x04, 0x02)
                        IO (Decode16, 0x002C, 0x002C, 0x04, 0x02)
                        IO (Decode16, 0x0030, 0x0030, 0x04, 0x02)
                        IO (Decode16, 0x0034, 0x0034, 0x04, 0x02)
                        IO (Decode16, 0x0038, 0x0038, 0x04, 0x02)
                        IO (Decode16, 0x003C, 0x003C, 0x04, 0x02)
                        IO (Decode16, 0x00A4, 0x00A4, 0x04, 0x02)
                        IO (Decode16, 0x00A8, 0x00A8, 0x04, 0x02)
                        IO (Decode16, 0x00AC, 0x00AC, 0x04, 0x02)
                        IO (Decode16, 0x00B0, 0x00B0, 0x04, 0x02)
                        IO (Decode16, 0x00B4, 0x00B4, 0x04, 0x02)
                        IO (Decode16, 0x00B8, 0x00B8, 0x04, 0x02)
                        IO (Decode16, 0x00BC, 0x00BC, 0x04, 0x02)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (MAD)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8) {4}
                        IO (Decode16, 0x0000, 0x0000, 0x10, 0x10)
                        IO (Decode16, 0x0080, 0x0080, 0x10, 0x06)
                        IO (Decode16, 0x0087, 0x0087, 0x01, 0x09)
                        IO (Decode16, 0x00C0, 0x00C0, 0x10, 0x20)
                        IO (Decode16, 0x0010, 0x0010, 0x10, 0x10)
                        IO (Decode16, 0x0090, 0x0090, 0x10, 0x02)
                        IO (Decode16, 0x0093, 0x0093, 0x01, 0x0D)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x10, 0x10)
                        IRQNoFlags () {13}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (UAR1)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (PNPQ (0x02), Local1)
                        Return (Local1)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        PNPD (0x02)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PNPG (0x02))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            StartDependentFn (0x01, 0x01)
                            {
                                IRQ (Edge, ActiveHigh, Shared) {3,4,6,12}
                                IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IRQ (Edge, ActiveHigh, Shared) {3,4,6,12}
                                IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IRQ (Edge, ActiveHigh, Shared) {3,4,6,12}
                                IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IRQ (Edge, ActiveHigh, Shared) {3,4,6,12}
                                IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
                            }
                            EndDependentFn ()
                        })
                        Return (BUF0)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PNPS (0x02, Arg0)
                    }
                }

                Device (IRDA)
                {
                    Name (_HID, EisaId ("SMCF010"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (PNPQ (0x03), Local0)
                        Return (Local0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        PNPD (0x03)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PNPG (0x03))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {4}
                            IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {4}
                            IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
                            IO (Decode16, 0x0270, 0x0400, 0x08, 0x08)
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,6,12}
                            IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
                            IO (Decode16, 0x0000, 0x0000, 0x08, 0x00)
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        PNPS (0x03, Arg0)
                    }
                }

                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (PNPQ (0x01), Local1)
                        Return (Local1)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        PNPD (0x01)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PNPG (0x01))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IRQNoFlags () {3,4,5,7}
                            IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x08, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IRQNoFlags () {7}
                            IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x08, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IRQNoFlags () {3,4,5,7}
                            IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x08, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IRQNoFlags () {3,4,5,7}
                            IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x08, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IRQNoFlags () {3,4,5,7}
                            IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IRQNoFlags () {3,4,5,7}
                            IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IRQNoFlags () {}
                            IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x08, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IRQNoFlags () {}
                            IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x08, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IRQNoFlags () {}
                            IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        PNPS (0x01, Arg0)
                    }
                }

                Device (TPM)
                {
                    Name (_HID, EisaId ("BCM0101"))
                    Method (_STA, 0, NotSerialized)
                    {
                        SX10 ()
                        SX30 (0x0E)
                        SX11 ()
                        Store (SX42 (), Local0)
                        SX12 ()
                        Return (Local0)
                    }

                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0930, 0x0930, 0x10, 0x0C)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (FTPM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, 0x05)
                    Method (_STA, 0, NotSerialized)
                    {
                        SX10 ()
                        SX30 (0x0E)
                        SX11 ()
                        Store (SX42 (), Local0)
                        SX12 ()
                        If (Local0)
                        {
                            Return (0x00)
                        }

                        Return (0x0F)
                    }

                    Name (FCRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0930, 0x0930, 0x10, 0x0C)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (FCRS)
                    }
                }
            }

            Method (UPRW, 2, NotSerialized)
            {
                Return (0x00)
            }

            Method (UPSW, 2, NotSerialized)
            {
                Return (0x00)
            }

            Device (USB0)
            {
                Name (_ADR, 0x001D0000)
                Method (_S0D, 0, NotSerialized)
                {
                    Store (SMI (0x85, 0x00), Local0)
                    And (Local0, 0x01, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Return (0x03)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Store (UPRW (0x00, 0x00), Local0)
                    If (LEqual (Local0, 0x03))
                    {
                        Return (Package (0x02)
                        {
                            0x03, 
                            0x03
                        })
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        Return (Package (0x02)
                        {
                            0x03, 
                            0x01
                        })
                    }

                    Return (Package (0x02)
                    {
                        0x03, 
                        0x00
                    })
                }

                Method (_PSW, 1, NotSerialized)
                {
                    UPSW (Arg0, 0x00)
                }

                Device (HUB0)
                {
                    Name (_ADR, 0x00)
                    Device (CH0)
                    {
                        Name (_ADR, 0x01)
                    }

                    Device (CH1)
                    {
                        Name (_ADR, 0x02)
                        Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                    }
                }
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0001)
                Method (_S0D, 0, NotSerialized)
                {
                    Store (SMI (0x85, 0x00), Local0)
                    And (Local0, 0x01, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Return (0x03)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Store (UPRW (0x00, 0x01), Local0)
                    If (LEqual (Local0, 0x03))
                    {
                        Return (Package (0x02)
                        {
                            0x04, 
                            0x03
                        })
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        Return (Package (0x02)
                        {
                            0x04, 
                            0x01
                        })
                    }

                    Return (Package (0x02)
                    {
                        0x04, 
                        0x00
                    })
                }

                Method (_PSW, 1, NotSerialized)
                {
                    UPSW (Arg0, 0x01)
                }

                Device (HUB1)
                {
                    Name (_ADR, 0x00)
                    Device (CH10)
                    {
                        Name (_ADR, 0x01)
                    }

                    Device (CH11)
                    {
                        Name (_ADR, 0x02)
                    }
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0002)
                Method (_S0D, 0, NotSerialized)
                {
                    Store (SMI (0x85, 0x00), Local0)
                    And (Local0, 0x01, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Return (0x03)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Store (UPRW (0x00, 0x02), Local0)
                    If (LEqual (Local0, 0x03))
                    {
                        Return (Package (0x02)
                        {
                            0x0C, 
                            0x03
                        })
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        Return (Package (0x02)
                        {
                            0x0C, 
                            0x01
                        })
                    }

                    Return (Package (0x02)
                    {
                        0x0C, 
                        0x00
                    })
                }

                Method (_PSW, 1, NotSerialized)
                {
                    UPSW (Arg0, 0x02)
                }

                Device (HUB2)
                {
                    Name (_ADR, 0x00)
                    Device (CH20)
                    {
                        Name (_ADR, 0x01)
                    }

                    Device (CH21)
                    {
                        Name (_ADR, 0x02)
                    }
                }
            }

            Device (USB4)
            {
                Name (_ADR, 0x001D0003)
                Method (_S0D, 0, NotSerialized)
                {
                    Store (SMI (0x85, 0x00), Local0)
                    And (Local0, 0x01, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Return (0x03)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Store (UPRW (0x00, 0x03), Local0)
                    If (LEqual (Local0, 0x03))
                    {
                        Return (Package (0x02)
                        {
                            0x0E, 
                            0x03
                        })
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        Return (Package (0x02)
                        {
                            0x0E, 
                            0x01
                        })
                    }

                    Return (Package (0x02)
                    {
                        0x0E, 
                        0x00
                    })
                }

                Method (_PSW, 1, NotSerialized)
                {
                    UPSW (Arg0, 0x03)
                }

                Device (HUB4)
                {
                    Name (_ADR, 0x00)
                    Device (CH40)
                    {
                        Name (_ADR, 0x01)
                    }

                    Device (CH41)
                    {
                        Name (_ADR, 0x02)
                    }
                }
            }

            Device (USB3)
            {
                Name (_ADR, 0x001D0007)
                Method (_S0D, 0, NotSerialized)
                {
                    Store (SMI (0x85, 0x00), Local0)
                    And (Local0, 0x01, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Return (0x03)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Name (_S1D, 0x02)
                Name (_S3D, 0x02)
                Method (_PRW, 0, NotSerialized)
                {
                    Store (UPRW (0x00, 0x07), Local0)
                    If (LEqual (Local0, 0x03))
                    {
                        Return (Package (0x02)
                        {
                            0x0D, 
                            0x03
                        })
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        Return (Package (0x02)
                        {
                            0x0D, 
                            0x01
                        })
                    }

                    Return (Package (0x02)
                    {
                        0x0D, 
                        0x00
                    })
                }

                Method (_PSW, 1, NotSerialized)
                {
                    UPSW (Arg0, 0x07)
                }

                Device (HUB3)
                {
                    Name (_ADR, 0x00)
                    Device (CH30)
                    {
                        Name (_ADR, 0x01)
                    }

                    Device (CH31)
                    {
                        Name (_ADR, 0x02)
                        Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                    }

                    Device (CH32)
                    {
                        Name (_ADR, 0x03)
                    }

                    Device (CH33)
                    {
                        Name (_ADR, 0x04)
                    }

                    Device (CH34)
                    {
                        Name (_ADR, 0x05)
                    }

                    Device (CH35)
                    {
                        Name (_ADR, 0x06)
                    }

                    Device (CH36)
                    {
                        Name (_ADR, 0x07)
                    }

                    Device (CH37)
                    {
                        Name (_ADR, 0x08)
                    }
                }
            }

            Scope (\_SB)
            {
            }

            Name (PIC0, Package (0x11)
            {
                Package (0x04)
                {
                    0x001FFFFF, 
                    0x00, 
                    \_SB.PCI0.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x01, 
                    \_SB.PCI0.LNKB, 
                    0x00
                }, 

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

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x03, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

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

                Package (0x04)
                {
                    0x001EFFFF, 
                    0x01, 
                    \_SB.PCI0.LNKB, 
                    0x00
                }, 

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

                Package (0x04)
                {
                    0x001EFFFF, 
                    0x03, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

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

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

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

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

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

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x01, 
                    \_SB.PCI0.LNKB, 
                    0x00
                }, 

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

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x03, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x00, 
                    \_SB.PCI0.LNKA, 
                    0x00
                }
            })
            Name (API0, Package (0x11)
            {
                Package (0x04)
                {
                    0x001FFFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001EFFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001EFFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x001EFFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001EFFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }
            })
            Method (_PRT, 0, NotSerialized)
            {
                Store (API0, Local0)
                If (LNot (PICF))
                {
                    Store (PIC0, Local0)
                }

                Return (Local0)
            }

            Field (\_SB.PCI0.ISAB.PIR1, ByteAcc, NoLock, Preserve)
            {
                PIRA,   8, 
                PIRB,   8, 
                PIRC,   8, 
                PIRD,   8
            }

            Field (\_SB.PCI0.ISAB.PIR2, ByteAcc, NoLock, Preserve)
            {
                PIRE,   8, 
                PIRF,   8, 
                PIRG,   8, 
                PIRH,   8
            }

            Device (LNKA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x01)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {9,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRA, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRA, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFA, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFA, 0x01, IRA)
                    Store (PIRA, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRA)
                    }

                    Return (BUFA)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQA)
                    FindSetLeftBit (IRQA, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRA)
                }
            }

            Device (LNKB)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x02)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {5,7}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRB, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRB, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFB, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFB, 0x01, IRB)
                    Store (PIRB, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRB)
                    }

                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQB)
                    FindSetLeftBit (IRQB, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRB)
                }
            }

            Device (LNKC)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x03)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {9,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRC, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRC, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFC, 0x01, IRC)
                    Store (PIRC, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRC)
                    }

                    Return (BUFC)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQC)
                    FindSetLeftBit (IRQC, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRC)
                }
            }

            Device (LNKD)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x04)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {5,7,9,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRD, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRD, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRD)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFD, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFD, 0x01, IRD)
                    Store (PIRD, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRD)
                    }

                    Return (BUFD)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQD)
                    FindSetLeftBit (IRQD, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRD)
                }
            }

            Device (LNKE)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x05)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,12,14,15}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRE, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRE, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRE)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFE, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFE, 0x01, IRE)
                    Store (PIRE, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRE)
                    }

                    Return (BUFE)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQE)
                    FindSetLeftBit (IRQE, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRE)
                }
            }

            Device (LNKF)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x08)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,12,14,15}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRF, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRF, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRF)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFF, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFF, 0x01, IRQF)
                    Store (PIRF, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRQF)
                    }

                    Return (BUFF)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQF)
                    FindSetLeftBit (IRQF, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRF)
                }
            }

            Device (LNKH)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x08)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,12,14,15}
                })
                Method (_STA, 0, NotSerialized)
                {
                    Store (PIRH, Local0)
                    And (Local0, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }

                    Return (0x0B)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (PIRH, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, PIRH)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFH, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    CreateWordField (BUFH, 0x01, IRH)
                    Store (PIRH, Local0)
                    And (Local0, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRH)
                    }

                    Return (BUFH)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQH)
                    FindSetLeftBit (IRQH, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRH)
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x001F0002)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

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

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Name (_RMV, 0x00)
                        Method (_EJ0, 1, NotSerialized)
                        {
                            SMI (0x90, 0x08)
                            Return (0x00)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Store (SMI (0x86, 0x00), Local0)
                            If (Local0)
                            {
                                Return (0x0F)
                            }

                            Return (0x00)
                        }
                    }
                }
            }

            Device (AUD)
            {
                Name (_ADR, 0x001E0002)
            }

            Device (MODM)
            {
                Name (_ADR, 0x001E0003)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
            }

            Device (AGP)
            {
                Name (_ADR, 0x00010000)
                Name (PIC1, Package (0x01)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        \_SB.PCI0.LNKA, 
                        0x00
                    }
                })
                Name (API1, Package (0x01)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        0x00, 
                        0x10
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    Store (API1, Local0)
                    If (LNot (PICF))
                    {
                        Store (PIC1, Local0)
                    }

                    Return (Local0)
                }

                Device (VID)
                {
                    Name (_ADR, 0x00)
                    Method (_DOS, 1, NotSerialized)
                    {
                        Store (Arg0, MIS4)
                        SMI (0x9E, MIS4)
                    }

                    Method (_DOD, 0, NotSerialized)
                    {
                        Store (SMI (0x6D, 0x00), Local0)
                        If (LEqual (Local0, 0x01))
                        {
                            Return (Package (0x04)
                            {
                                0x00010100, 
                                0x00010200, 
                                0x00010110, 
                                0x00010210
                            })
                        }
                        Else
                        {
                            Return (Package (0x04)
                            {
                                0x00010100, 
                                0x00010200, 
                                0x00010110, 
                                0x00010120
                            })
                        }
                    }

                    Device (TV)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            Return (0x0200)
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (SMI (0x8E, 0x04), Local0)
                            Return (Local0)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (SMI (0x99, 0x04), Local0)
                            Return (Local0)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            DSS (0x04, Arg0)
                        }
                    }

                    Device (CRT)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            Return (0x0100)
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (SMI (0x8E, 0x02), Local0)
                            Return (Local0)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (SMI (0x99, 0x02), Local0)
                            Return (Local0)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            DSS (0x02, Arg0)
                        }
                    }

                    Device (LCD)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            Return (0x0110)
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (SMI (0x8E, 0x01), Local0)
                            Return (Local0)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (SMI (0x99, 0x01), Local0)
                            Return (Local0)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            DSS (0x01, Arg0)
                        }
                    }

                    Device (DVI)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            Store (SMI (0x6D, 0x00), Local0)
                            If (LEqual (Local0, 0x01))
                            {
                                Return (0x0210)
                            }
                            Else
                            {
                                Return (0x0120)
                            }
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (SMI (0x8E, 0x08), Local0)
                            Return (Local0)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (SMI (0x99, 0x08), Local0)
                            Return (Local0)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            DSS (0x08, Arg0)
                        }
                    }
                }
            }

            Device (PCIE)
            {
                Name (_ADR, 0x001E0000)
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x04
                })
                Name (PICE, Package (0x07)
                {
                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x00, 
                        \_SB.PCI0.LNKD, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x01, 
                        \_SB.PCI0.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x00, 
                        \_SB.PCI0.LNKB, 
                        0x00
                    }, 

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

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

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

                    Package (0x04)
                    {
                        0x0008FFFF, 
                        0x01, 
                        \_SB.PCI0.LNKA, 
                        0x00
                    }
                })
                Name (APIE, Package (0x07)
                {
                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x00, 
                        0x00, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x01, 
                        0x00, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x00, 
                        0x00, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x01, 
                        0x00, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        0x00, 
                        0x12
                    }, 

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

                    Package (0x04)
                    {
                        0x0008FFFF, 
                        0x01, 
                        0x00, 
                        0x10
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    Store (APIE, Local0)
                    If (LNot (PICF))
                    {
                        Store (PICE, Local0)
                    }

                    Return (Local0)
                }

                Device (CRD0)
                {
                    Name (_ADR, 0x00010000)
                    Method (_INI, 0, NotSerialized)
                    {
                        SMI (0x95, 0x04)
                    }

                    Name (_S1D, 0x00)
                    Name (_S3D, 0x03)
                }

                Device (CRD1)
                {
                    Name (_ADR, 0x00010005)
                    Method (_INI, 0, NotSerialized)
                    {
                        SMI (0x9D, 0x04)
                    }

                    Name (_S1D, 0x00)
                    Name (_S3D, 0x03)
                }

                Device (GDCK)
                {
                    Name (_HID, EisaId ("PNP0C15"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (MIS5, 0x01))
                        {
                            Store (SMI (0x87, 0x00), Local2)
                            If (Local2)
                            {
                                Notify (\_SB.PCI0.PCIE.GDCK, 0x00)
                                Return (0x00)
                            }
                        }

                        Store (SMI (0x87, 0x00), Local0)
                        If (Local0)
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Method (_UID, 0, NotSerialized)
                    {
                        SX10 ()
                        SX30 (0x05)
                        SX30 (OSID ())
                        SX11 ()
                        Store (SX42 (), Local0)
                        SX12 ()
                        Return (Local0)
                    }

                    Method (_BDN, 0, NotSerialized)
                    {
                        Store (SMI (0x87, 0x00), Local0)
                        If (LEqual (Local0, 0x01))
                        {
                            Return (0x0C80AC10)
                        }

                        If (LEqual (Local0, 0x02))
                        {
                            Return (0x0D80AC10)
                        }

                        If (LEqual (Local0, 0x03))
                        {
                            Return (0x0E80AC10)
                        }

                        Return (0x00)
                    }

                    Method (_EJ0, 1, NotSerialized)
                    {
                        Store (SMI (0x87, 0x00), MIS7)
                        If (MIS7)
                        {
                            SMI (0xA6, 0x02)
                            SMI (0x49, 0x01)
                            Wait (EJTD, 0xA000)
                            SMI (0x49, 0x00)
                        }

                        Return (0x00)
                    }

                    Method (_EJ4, 1, NotSerialized)
                    {
                        SMI (0xA6, 0x01)
                        Return (0x00)
                    }

                    Method (_DCK, 1, NotSerialized)
                    {
                        If (Arg0)
                        {
                            SMI (0x8D, 0x01)
                            Store (0x00, MIS5)
                        }
                        Else
                        {
                            SMI (0x8D, 0x00)
                            Store (0x00, MIS2)
                            Store (0x01, MIS5)
                        }

                        Return (0x01)
                    }
                }

                Device (DCKS)
                {
                    Name (_ADR, 0x00080000)
                    Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                }
            }

            Name (LHDL, 0x00)
            Name (SLLP, Package (0x02)
            {
                0x80000000, 
                0x80000000
            })
            Device (PXP0)
            {
                Name (_ADR, 0x001C0000)
                Device (NIC)
                {
                    Name (_ADR, 0x00)
                    Name (_PRW, Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                    Method (SCMD, 2, NotSerialized)
                    {
                        SX10 ()
                        SX30 (0x10)
                        SX30 (Arg0)
                        SX30 (Arg1)
                        SX11 ()
                        Store (SX42 (), Local0)
                        SX12 ()
                        Return (Local0)
                    }

                    Method (LLTB, 0, NotSerialized)
                    {
                        Store (SCMD (0x01, 0x00), Local0)
                        Store (Local0, Index (SLLP, 0x00))
                        Store (SCMD (0x02, 0x00), Local0)
                        Store (Local0, Index (SLLP, 0x01))
                        OperationRegion (LOPR, SystemMemory, DerefOf (Index (SLLP, 0x00)), DerefOf (Index (SLLP, 0x01)))
                        If (LEqual (LHDL, 0x00))
                        {
                            Load (LOPR, LHDL)
                        }
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (LEqual (OSID (), 0x10))
                        {
                            LLTB ()
                        }
                    }
                }
            }
        }
    }

    Scope (\_PR.CPU0)
    {
        Method (_PPC, 0, NotSerialized)
        {
            Store (SMI (0xAD, 0x00), Local0)
            Return (Local0)
        }

        Method (_PCT, 0, NotSerialized)
        {
            If (And (CFGD, 0x4000))
            {
                Return (Package (0x02)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000000800)
                    }, 

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

            If (LAnd (And (CFGD, 0x02), And (PDC0, 0x01)))
            {
                Return (Package (0x02)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                    }, 

                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                    }
                })
            }

            Return (Package (0x02)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 0x10, 0x00, 0x00000000000000B2)
                }, 

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

        Method (_PSS, 0, NotSerialized)
        {
            If (LAnd (LNot (And (CFGD, 0x4000)), LAnd (And (CFGD, 0x02), And (PDC0, 0x01))))
            {
                Return (NPSS)
            }

            Return (SPSS)
        }

        Name (SPSS, Package (0x05)
        {
            Package (0x06)
            {
                0x000007D0, 
                0x00006978, 
                0x0000006E, 
                0x0000000A, 
                0x000000AC, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x000055F0, 
                0x0000006E, 
                0x0000000A, 
                0x000001AC, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000535, 
                0x00004A38, 
                0x0000006E, 
                0x0000000A, 
                0x000002AC, 
                0x00000002
            }, 

            Package (0x06)
            {
                0x0000042B, 
                0x00003E80, 
                0x0000006E, 
                0x0000000A, 
                0x000003AC, 
                0x00000003
            }, 

            Package (0x06)
            {
                0x00000320, 
                0x000032C8, 
                0x0000006E, 
                0x0000000A, 
                0x000004AC, 
                0x00000004
            }
        })
        Name (NPSS, Package (0x05)
        {
            Package (0x06)
            {
                0x000007D0, 
                0x00006978, 
                0x0000000A, 
                0x0000000A, 
                0x00000F29, 
                0x00000F29
            }, 

            Package (0x06)
            {
                0x00000640, 
                0x000055F0, 
                0x0000000A, 
                0x0000000A, 
                0x00000C22, 
                0x00000C22
            }, 

            Package (0x06)
            {
                0x00000535, 
                0x00004A38, 
                0x0000000A, 
                0x0000000A, 
                0x00000A1D, 
                0x00000A1D
            }, 

            Package (0x06)
            {
                0x0000042B, 
                0x00003E80, 
                0x0000000A, 
                0x0000000A, 
                0x00000818, 
                0x00000818
            }, 

            Package (0x06)
            {
                0x00000320, 
                0x000032C8, 
                0x0000000A, 
                0x0000000A, 
                0x00000612, 
                0x00000612
            }
        })
    }

    Scope (\_PR.CPU0)
    {
        Method (_CST, 0, NotSerialized)
        {
            If (And (CFGD, 0x4000))
            {
                Return (Package (0x02)
                {
                    0x01, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x01, 0x01, 0x0000000000000809)
                        }, 

                        0x01, 
                        0x01, 
                        0x03E8
                    }
                })
            }

            If (And (CFGD, 0x80))
            {
                Return (Package (0x05)
                {
                    0x04, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x00, 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
                    }
                })
            }

            If (And (CFGD, 0x40))
            {
                Return (Package (0x04)
                {
                    0x03, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x00, 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
                    }
                })
            }

            If (And (CFGD, 0x20))
            {
                Return (Package (0x03)
                {
                    0x02, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                        }, 

                        0x01, 
                        0x01, 
                        0x03E8
                    }, 

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

                        0x02, 
                        0x01, 
                        0x01F4
                    }
                })
            }

            Return (Package (0x02)
            {
                0x01, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                    }, 

                    0x01, 
                    0x01, 
                    0x03E8
                }
            })
        }
    }

    Scope (\)
    {
        Name (SSDT, Package (0x0C)
        {
            "CPU0IST ", 
            0x3FFD8BE6, 
            0x00000280, 
            "CPU1IST ", 
            0x00000000, 
            0xF000EEC2, 
            "CPU0CST ", 
            0x3FFD8A0E, 
            0x000001D8, 
            "CPU1CST ", 
            0x00000000, 
            0xF000EEC2
        })
        Name (CFGD, 0x06D883F2)
        Name (\PDC0, 0x80000000)
        Name (\PDC1, 0x80000000)
    }

    Scope (\_PR.CPU0)
    {
        Name (HI0, 0x00)
        Name (HC0, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x08, CAP0)
            Store (CAP0, PDC0)
            If (LAnd (And (CFGD, 0x4000), LEqual (And (PDC0, 0x0A), 0x0A)))
            {
                If (And (CFGD, 0x03))
                {
                    OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02)))
                    Load (IST0, HI0)
                }

                If (And (CFGD, 0x10))
                {
                    OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08)))
                    Load (CST0, HC0)
                }
            }
        }
    }

    Scope (\_PR.CPU1)
    {
        Name (HI1, 0x00)
        Name (HC1, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x08, CAP1)
            Store (CAP1, PDC1)
            If (LAnd (And (CFGD, 0x4000), LEqual (And (PDC1, 0x0A), 0x0A)))
            {
                If (And (CFGD, 0x03))
                {
                    OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05)))
                    Load (IST1, HI1)
                }

                If (And (CFGD, 0x10))
                {
                    OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B)))
                    Load (CST1, HC1)
                }
            }

            If (LEqual (And (PDC1, 0x0A), 0x0A)) {}
        }
    }
}



More information about the freebsd-mobile mailing list