On Sunday 25 November 2007, Yinghai Lu wrote: > On Nov 24, 2007 12:36 PM, Andrey Borzenkov <[email protected]> wrote: > > I have no COM port on notebook (without port replicator which I do not have) > > so COM is disabled in BIOS. No ttyS* is detected during boot (and no device > > created) but I just noticed that serial modules are still loaded. Well, this > > partially defeats the purpose of disabling COM port - the intention was to > > free resources by *not* loading unneeded modules ... > > > > This may have something to do with (ACPI) PnP which apparently believes COM is alive. > > Notebook is Toshiba Portege 4000. > > > > {pts/0}% lsmod | grep 82 > > 8250_pnp 9792 0 > > 8250 24660 1 8250_pnp > > serial_core 22872 1 8250 > > > > {pts/0}% lspnp -v > > 00:00 PNP0c01 System board > > state = active > > mem 0x0-0x9ffff > > mem 0xe0000-0xeffff > > mem 0xf0000-0xfffff > > mem 0x100000-0x1ef5ffff > > > > 00:01 PNP0a03 PCI bus > > state = active > > io 0xcf8-0xcff > > > > 00:02 PNP0200 AT DMA controller > > state = active > > io 0x0-0xf > > io 0x81-0x83 > > io 0x87-0x87 > > io 0x89-0x8b > > io 0x8f-0x8f > > io 0xc0-0xdf > > dma 4 > > > > 00:03 PNP0800 AT speaker > > state = active > > io 0x61-0x61 > > > > 00:04 PNP0c04 Math coprocessor > > state = active > > io 0xf0-0xff > > irq 13 > > > > 00:05 PNP0303 IBM enhanced keyboard (101/102-key, PS/2 mouse support) > > state = active > > io 0x60-0x60 > > io 0x64-0x64 > > irq 1 > > > > 00:06 PNP0f13 PS/2 port for PS/2-style mice > > state = active > > irq 12 > > > > 00:07 PNP0b00 AT real-time clock > > state = active > > io 0x70-0x71 > > irq 8 > > > > 00:08 PNP0c02 Motherboard resources > > state = active > > io 0x2e-0x2f > > io 0x62-0x62 > > io 0x66-0x66 > > io 0x80-0x80 > > io 0x84-0x86 > > io 0x88-0x88 > > io 0x8c-0x8e > > io 0x92-0x92 > > > > 00:09 PNP0501 16550A-compatible serial port > > state = active > > io 0x3f8-0x3ff > > irq 5 > > > > 00:0a SMCf010 SMC Fast Infrared Port > > state = disabled > > > > 00:0b PNP0401 ECP printer port > > state = disabled > > > > .. > > [ 126.035809] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled > .... > > [ 126.107096] serial 00:09: activated > .... > > Can you cat /sys/firmware/acpi/DSDT and use iasl to decode it? > it seems that your BIOS has problem about com setup. > DSDT attached. To illustrate the problem. Here is what I get booting exactly the same kernel with the only difference that COM is enabled in BIOS: [ 147.721790] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled [ 147.722658] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 147.813557] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A When COM is disabled I get [ 235.865683] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled [ 236.221995] serial 00:09: activated No ttyS0 - and it is correct. I'd expect that either serial driver should not be loaded at all in this case.
/* * Intel ACPI Component Architecture * AML Disassembler version 20051216 * * Disassembly of dsdt, Mon Mar 6 22:51:55 2006 * * Original Table Header: * Signature "DSDT" * Length 0x000068DA (26842) * Revision 0x01 * OEM ID "TOSHIB" * OEM Table ID "4000 " * OEM Revision 0x20020417 (537003031) * Creator ID "MSFT" * Creator Revision 0x0100000A (16777226) */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "TOSHIB", "4000 ", 0x20020417) { Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) Name (\_S3, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Name (\_S4, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Name (\_S5, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Scope (\_PR) { Processor (CPU0, 0x01, 0x0000EE10, 0x06) { Name (_PCT, Package (0x02) { ResourceTemplate () { Register (SystemIO, 0x08, // Register Bit Width 0x00, // Register Bit Offset 0x00000000000000B1, // Register Address ) }, ResourceTemplate () { Register (SystemIO, 0x10, // Register Bit Width 0x00, // Register Bit Offset 0x000000000000EF40, // Register Address ) } }) Method (_PSS, 0, NotSerialized) { If (\_SB.MEM.PSS1) { Name (PSSD, Package (0x02) { Package (0x00) {}, Package (0x00) {} }) Name (PSD0, Package (0x06) { 0x03E8, 0x55F0, 0xFA, 0xFA, 0x90, 0x00 }) Name (PSD1, Package (0x06) { 0x02BC, 0x2648, 0xFA, 0xFA, 0x91, 0x01 }) Store (\_SB.MEM.PSS0, Index (PSD0, 0x00)) Store (\_SB.MEM.PSS1, Index (PSD1, 0x00)) Store (PSD0, Index (PSSD, 0x00)) Store (PSD1, Index (PSSD, 0x01)) Return (PSSD) } Else { Name (PSSC, Package (0x01) { Package (0x00) {} }) Name (PSC0, Package (0x06) { 0x03E8, 0x55F0, 0xFA, 0xFA, 0x90, 0x00 }) Store (\_SB.MEM.PSS0, Index (PSC0, 0x00)) Store (PSC0, Index (PSSC, 0x00)) Return (PSSC) } } Method (_PPC, 0, NotSerialized) { SMBR (0xFC00, 0x3D, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x03, Local0) If (LEqual (Local0, 0x00)) { If (\_SB.MEM.HPSU) { If (\_SB.MEM.ACST) { Return (\_SB.MEM.PULA) } Else { Return (\_SB.MEM.PULD) } } Else { Return (0x00) } } Else { If (LEqual (Local0, 0x01)) { Return (0x00) } Else { Return (0x01) } } } } } Scope (\_SB) { Device (MEM) { Name (_HID, EisaId ("PNP0C01")) Name (_STA, 0x0F) Method (_CRS, 0, NotSerialized) { Return (CRS (0x01)) } OperationRegion (SRAM, SystemMemory, 0x000EE800, 0x1800) Field (SRAM, AnyAcc, NoLock, Preserve) { PAR1, 16, PAR2, 16, PAR3, 16, PAR4, 16, PAR5, 16, PAR6, 16 } Field (SRAM, AnyAcc, NoLock, Preserve) { Offset (0x02), RDID, 32, RDSN, 32, CAPB, 16 } Field (SRAM, AnyAcc, NoLock, Preserve) { IEAX, 32, IEBX, 32, IECX, 32, IEDX, 32, IESI, 32, IEDI, 32, IEBP, 32, Offset (0x20), OEAX, 32, OEBX, 32, OECX, 32, OEDX, 32, OESI, 32, OEDI, 32, OEBP, 32, Offset (0xFF), ACST, 1, BES1, 1, BES2, 1, Offset (0x100), BMN1, 104, BSN1, 88, BTP1, 72, BPU1, 32, BDC1, 32, BLF1, 32, BTC1, 32, BDV1, 32, BST1, 32, BPR1, 32, BRC1, 32, BPV1, 32, Offset (0x149), BCW1, 32, BCL1, 32, BG11, 32, BG21, 32, BOI1, 8, BRF1, 1, Offset (0x200), BMN2, 104, BSN2, 88, BTP2, 72, BPU2, 32, BDC2, 32, BLF2, 32, BTC2, 32, BDV2, 32, BST2, 32, BPR2, 32, BRC2, 32, BPV2, 32, Offset (0x249), BCW2, 32, BCL2, 32, BG12, 32, BG22, 32, BOI2, 32, Offset (0x300), AC01, 16, AC11, 16, PSV1, 16, CRT1, 16, TMP1, 16, AST1, 16, AC21, 16, AC31, 16, AC02, 16, AC12, 16, PSV2, 16, CRT2, 16, TMP2, 16, AST2, 16, AC22, 16, AC32, 16, AC03, 16, AC13, 16, PSV3, 16, CRT3, 16, TMP3, 16, AST3, 16, AC23, 16, AC33, 16, Offset (0x340), TMPF, 16, Offset (0x3F0), FANH, 1, FANL, 7, TF11, 1, TF21, 1, TF31, 1, , 1, TF10, 1, TF20, 1, TF30, 1, Offset (0x3F2), TP11, 1, TP21, 1, TP31, 1, Offset (0x400), GP50, 1, GP51, 1, GP52, 1, GP53, 1, GP54, 1, Offset (0x401), GP60, 1, GP61, 1, GP62, 1, GP63, 1, GP64, 1, GP65, 1, GP66, 1, Offset (0x402), GP70, 1, GP71, 1, GP72, 1, GP73, 1, GP74, 1, GP75, 1, GP76, 1, GP77, 1, WED0, 1, WED1, 1, WED2, 1, WED3, 1, WED4, 1, Offset (0x404), SBL0, 1, SBL1, 1, SBL2, 1, SBL3, 1, Offset (0x405), LIDS, 1, VALF, 1, DCST, 1, DOS2, 1, DCKI, 1, DCKF, 1, BT1F, 1, BT2F, 1, NXLA, 1, NXCA, 1, NXTA, 1, NXDA, 1, CTLA, 1, CTCA, 1, CTTA, 1, CTDA, 1, LANA, 1, Offset (0x483), GCVS, 8, Offset (0x4C0), PSS0, 16, PSS1, 16, Offset (0x4D0), SYU0, 1, SYU1, 1, SYU2, 1, SYU3, 1, SYU4, 1, SYU5, 1, SYU6, 1, SYU7, 1, Offset (0x500), HKCD, 8, Offset (0x502), DLID, 32, DSRN, 32, Offset (0x50E), BDID, 32, DSPW, 1, VGAF, 1, VWE0, 1, VWE1, 1, PPSC, 1, SPSC, 1, EWLD, 1, EPWS, 1, LCDS, 4, CRTS, 4, VWE2, 1, WEF0, 1, WEF1, 1, WED5, 1, IEWE, 1, Offset (0x515), BTMD, 1, WSF0, 1, WSF1, 1, GP83, 1, WUIE, 1, , 1, BPFE, 1, BWUE, 1, DVIS, 4, Offset (0x517), HTM0, 1, HTM1, 1, Offset (0x518), PSND, 1, PMDM, 1, Offset (0x520), VGAR, 1, KBCR, 1, ID0R, 1, ID1R, 1, ID2R, 1, ID3R, 1, IDAR, 1, ACLR, 1, BTRE, 1, Offset (0x701), HAPS, 2, HHSW, 2, HPSU, 2, HRCU, 2, HGSU, 2, HEBI, 2, HTMD, 2, Offset (0x708), TNVS, 1, OSPC, 1, ACBK, 1, Offset (0x70A), PULD, 8, PULA, 8, BCLD, 8, BCLA, 8, Offset (0x710), OSID, 8, Offset (0x720), MSSI, 16, MSSS, 8, MSSR, 8, MSP0, 8, MSC0, 8, MSP1, 8, MSC1, 8, Offset (0x740), Offset (0x800), PRES, 32768 } Field (SRAM, AnyAcc, NoLock, Preserve) { Offset (0x406), NXDD, 4, CTDD, 4 } Field (SRAM, AnyAcc, NoLock, Preserve) { Offset (0x800), Offset (0x808), Offset (0x812), Offset (0x814), Offset (0x818), FSDP, 8, Offset (0x823), Offset (0x826), Offset (0x836), Offset (0x87E), Offset (0x87F), EDCK, 8 } } Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00) Name (_CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Address Space Granularity 0x0000, // Address Range Minimum 0x00FF, // Address Range Maximum 0x0000, // Address Translation Offset 0x0100, // Address Length ,,) IO (Decode16, 0x0CF8, // Address Range Minimum 0x0CF8, // Address Range Maximum 0x01, // Address Alignment 0x08, // Address Length ) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Address Space Granularity 0x0000, // Address Range Minimum 0x0CF7, // Address Range Maximum 0x0000, // Address Translation Offset 0x0CF8, // Address Length ,,, TypeStatic) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Address Space Granularity 0x0D00, // Address Range Minimum 0xFFFF, // Address Range Maximum 0x0000, // Address Translation Offset 0xF300, // Address Length ,,, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Address Space Granularity 0x000A0000, // Address Range Minimum 0x000BFFFF, // Address Range Maximum 0x00000000, // Address Translation Offset 0x00020000, // Address Length ,,, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Address Space Granularity 0x000D8000, // Address Range Minimum 0x000DFFFF, // Address Range Maximum 0x00000000, // Address Translation Offset 0x00008000, // Address Length ,,, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Address Space Granularity 0x40100000, // Address Range Minimum 0xFEE9FFFF, // Address Range Maximum 0x00000000, // Address Translation Offset 0xBEEA0000, // Address Length ,,, AddressRangeMemory, TypeStatic) }) Name (_PRT, Package (0x0A) { Package (0x04) { 0x0014FFFF, 0x00, \_SB.PCI0.FNC0.LNKD, 0x00 }, Package (0x04) { 0x0011FFFF, 0x00, \_SB.PCI0.FNC0.LNKA, 0x00 }, Package (0x04) { 0x0011FFFF, 0x01, \_SB.PCI0.FNC0.LNKB, 0x00 }, Package (0x04) { 0x000AFFFF, 0x00, \_SB.PCI0.FNC0.LNKD, 0x00 }, Package (0x04) { 0x0010FFFF, 0x00, \_SB.PCI0.FNC0.LNKC, 0x00 }, Package (0x04) { 0x0010FFFF, 0x01, \_SB.PCI0.FNC0.LNKD, 0x00 }, Package (0x04) { 0x000CFFFF, 0x00, \_SB.PCI0.FNC0.LNKD, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, \_SB.PCI0.FNC0.LNKH, 0x00 }, Package (0x04) { 0x0012FFFF, 0x00, \_SB.PCI0.FNC0.LNKA, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, \_SB.PCI0.FNC0.LNKG, 0x00 } }) Device (FNC0) { Name (_ADR, 0x00070000) OperationRegion (M153, PCI_Config, 0x00, 0xFF) Field (M153, ByteAcc, NoLock, Preserve) { Offset (0x44), IRQJ, 4, , 3, RSTC, 1, Offset (0x48), IRQA, 4, IRQB, 4, IRQC, 4, IRQD, 4, IRQE, 4, IRQF, 4, IRQI, 4, IRQH, 4, Offset (0x52), , 13, CUS1, 1, Offset (0x74), IRQG, 4, Offset (0x75), IRQK, 4, Offset (0x77), , 3, CSND, 1, , 1, CMDM, 1 } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { Return (STAL (\_SB.PCI0.FNC0.IRQA)) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11} }) Method (_CRS, 0, NotSerialized) { Return (CRSL (\_SB.PCI0.FNC0.IRQA)) } Method (_DIS, 0, NotSerialized) { Store (0x00, \_SB.PCI0.FNC0.IRQA) } Method (_SRS, 1, NotSerialized) { Name (IRQT, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) CreateWordField (Arg0, 0x01, IRQX) FindSetRightBit (IRQX, Local0) Decrement (Local0) Store (DerefOf (Index (IRQT, Local0)), Local1) Store (Local1, \_SB.PCI0.FNC0.IRQA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { Return (STAL (\_SB.PCI0.FNC0.IRQB)) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11} }) Method (_CRS, 0, NotSerialized) { Return (CRSL (\_SB.PCI0.FNC0.IRQB)) } Method (_DIS, 0, NotSerialized) { Store (0x00, \_SB.PCI0.FNC0.IRQB) } Method (_SRS, 1, NotSerialized) { Name (IRQT, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) CreateWordField (Arg0, 0x01, IRQX) FindSetRightBit (IRQX, Local0) Decrement (Local0) Store (DerefOf (Index (IRQT, Local0)), Local1) Store (Local1, \_SB.PCI0.FNC0.IRQB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { Return (STAL (\_SB.PCI0.FNC0.IRQC)) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11} }) Method (_CRS, 0, NotSerialized) { Return (CRSL (\_SB.PCI0.FNC0.IRQC)) } Method (_DIS, 0, NotSerialized) { Store (0x00, \_SB.PCI0.FNC0.IRQC) } Method (_SRS, 1, NotSerialized) { Name (IRQT, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) CreateWordField (Arg0, 0x01, IRQX) FindSetRightBit (IRQX, Local0) Decrement (Local0) Store (DerefOf (Index (IRQT, Local0)), Local1) Store (Local1, \_SB.PCI0.FNC0.IRQC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { Return (STAL (\_SB.PCI0.FNC0.IRQD)) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11} }) Method (_CRS, 0, NotSerialized) { Return (CRSL (\_SB.PCI0.FNC0.IRQD)) } Method (_DIS, 0, NotSerialized) { Store (0x00, \_SB.PCI0.FNC0.IRQD) } Method (_SRS, 1, NotSerialized) { Name (IRQT, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) CreateWordField (Arg0, 0x01, IRQX) FindSetRightBit (IRQX, Local0) Decrement (Local0) Store (DerefOf (Index (IRQT, Local0)), Local1) Store (Local1, \_SB.PCI0.FNC0.IRQD) } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { Return (STAL (\_SB.PCI0.FNC0.IRQG)) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11} }) Method (_CRS, 0, NotSerialized) { Return (CRSL (\_SB.PCI0.FNC0.IRQG)) } Method (_DIS, 0, NotSerialized) { Store (0x00, \_SB.PCI0.FNC0.IRQG) } Method (_SRS, 1, NotSerialized) { Name (IRQT, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) CreateWordField (Arg0, 0x01, IRQX) FindSetRightBit (IRQX, Local0) Decrement (Local0) Store (DerefOf (Index (IRQT, Local0)), Local1) Store (Local1, \_SB.PCI0.FNC0.IRQG) } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { Return (STAL (\_SB.PCI0.FNC0.IRQH)) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11} }) Method (_CRS, 0, NotSerialized) { Return (CRSL (\_SB.PCI0.FNC0.IRQH)) } Method (_DIS, 0, NotSerialized) { Store (0x00, \_SB.PCI0.FNC0.IRQH) } Method (_SRS, 1, NotSerialized) { Name (IRQT, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) CreateWordField (Arg0, 0x01, IRQX) FindSetRightBit (IRQX, Local0) Decrement (Local0) Store (DerefOf (Index (IRQT, Local0)), Local1) Store (Local1, \_SB.PCI0.FNC0.IRQH) } } Device (DMAC) { Name (_HID, EisaId ("PNP0200")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0000, // Address Range Minimum 0x0000, // Address Range Maximum 0x01, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x0081, // Address Range Minimum 0x0081, // Address Range Maximum 0x01, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x0087, // Address Range Minimum 0x0087, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0089, // Address Range Minimum 0x0089, // Address Range Maximum 0x01, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x008F, // Address Range Minimum 0x008F, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x00C0, // Address Range Minimum 0x00C0, // Address Range Maximum 0x01, // Address Alignment 0x20, // Address Length ) DMA (Compatibility, NotBusMaster, Transfer8) {4} }) } Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, // Address Range Minimum 0x0020, // Address Range Maximum 0x01, // Address Alignment 0x02, // Address Length ) IO (Decode16, 0x00A0, // Address Range Minimum 0x00A0, // Address Range Maximum 0x01, // Address Alignment 0x02, // Address Length ) IRQ (Edge, ActiveHigh, Exclusive) {2} }) } Device (PIT) { Name (_HID, EisaId ("PNP0100")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, // Address Range Minimum 0x0040, // Address Range Maximum 0x01, // Address Alignment 0x04, // Address Length ) IRQ (Edge, ActiveHigh, Exclusive) {0} }) } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, // Address Range Minimum 0x0061, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) }) } Device (NDP) { Name (_HID, EisaId ("PNP0C04")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, // Address Range Minimum 0x00F0, // Address Range Maximum 0x01, // Address Alignment 0x10, // Address Length ) IRQ (Edge, ActiveHigh, Shared) {13} }) } Device (KBC) { Name (_HID, EisaId ("PNP0303")) Method (_STA, 0, NotSerialized) { While (LEqual (\_SB.MEM.KBCR, 0x00)) {} Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, // Address Range Minimum 0x0060, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0064, // Address Range Minimum 0x0064, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IRQ (Edge, ActiveHigh, Exclusive) {1} }) } Device (PS2M) { Name (_HID, EisaId ("PNP0F13")) Method (_STA, 0, NotSerialized) { While (LEqual (\_SB.MEM.KBCR, 0x00)) {} Return (0x0F) } Name (_CRS, ResourceTemplate () { IRQ (Edge, ActiveHigh, Exclusive) {12} }) } Device (RTC) { Name (_HID, EisaId ("PNP0B00")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, // Address Range Minimum 0x0070, // Address Range Maximum 0x01, // Address Alignment 0x02, // Address Length ) IRQ (Edge, ActiveHigh, Exclusive) {8} }) } Device (SYSR) { Name (_HID, EisaId ("PNP0C02")) Name (_STA, 0x0F) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x002E, // Address Range Minimum 0x002E, // Address Range Maximum 0x01, // Address Alignment 0x02, // Address Length ) IO (Decode16, 0x0062, // Address Range Minimum 0x0062, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0066, // Address Range Minimum 0x0066, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0080, // Address Range Minimum 0x0080, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0084, // Address Range Minimum 0x0084, // Address Range Maximum 0x01, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x0088, // Address Range Minimum 0x0088, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x008C, // Address Range Minimum 0x008C, // Address Range Maximum 0x01, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x0092, // Address Range Minimum 0x0092, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x00B0, // Address Range Minimum 0x00B0, // Address Range Maximum 0x01, // Address Alignment 0x04, // Address Length ) IO (Decode16, 0x00E0, // Address Range Minimum 0x00E0, // Address Range Maximum 0x01, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x0370, // Address Range Minimum 0x0370, // Address Range Maximum 0x01, // Address Alignment 0x02, // Address Length ) IO (Decode16, 0x040B, // Address Range Minimum 0x040B, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0480, // Address Range Minimum 0x0480, // Address Range Maximum 0x01, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x04D0, // Address Range Minimum 0x04D0, // Address Range Maximum 0x01, // Address Alignment 0x02, // Address Length ) IO (Decode16, 0x04D6, // Address Range Minimum 0x04D6, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x06C0, // Address Range Minimum 0x06C0, // Address Range Maximum 0x01, // Address Alignment 0x40, // Address Length ) IO (Decode16, 0xE000, // Address Range Minimum 0xE000, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xE080, // Address Range Minimum 0xE080, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xE400, // Address Range Minimum 0xE400, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xE480, // Address Range Minimum 0xE480, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xE800, // Address Range Minimum 0xE800, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xE880, // Address Range Minimum 0xE880, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xEC00, // Address Range Minimum 0xEC00, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xEC80, // Address Range Minimum 0xEC80, // Address Range Maximum 0x01, // Address Alignment 0x80, // Address Length ) IO (Decode16, 0xEE00, // Address Range Minimum 0xEE00, // Address Range Maximum 0x01, // Address Alignment 0x42, // Address Length ) IO (Decode16, 0xEE90, // Address Range Minimum 0xEE90, // Address Range Maximum 0x01, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0xEEAC, // Address Range Minimum 0xEEAC, // Address Range Maximum 0x01, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0xEF00, // Address Range Minimum 0xEF00, // Address Range Maximum 0x01, // Address Alignment 0x40, // Address Length ) IO (Decode16, 0xEF40, // Address Range Minimum 0xEF40, // Address Range Maximum 0x01, // Address Alignment 0x20, // Address Length ) }) OperationRegion (SRG1, SystemIO, 0xB1, 0x01) Field (SRG1, ByteAcc, NoLock, Preserve) { TRP4, 8 } } Device (COM) { Name (_HID, EisaId ("PNP0501")) Method (_STA, 0, NotSerialized) { Return (STA (0x0E)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x0E)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x0E)) } Method (_SRS, 1, NotSerialized) { SRS (0x0E, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x0E) } Method (_PS0, 0, NotSerialized) { PS0 (0x0E) } Method (_PS3, 0, NotSerialized) { PS3 (0x0E) } Method (_PSC, 0, NotSerialized) { Return (PSC (0x0E)) } Name (_PRW, Package (0x02) { 0x08, 0x03 }) Method (_PSW, 1, NotSerialized) { Store (Arg0, \_SB.MEM.WED0) } } Device (FSIR) { Name (_HID, EisaId ("SMCF010")) Method (_STA, 0, NotSerialized) { Return (STA (0x0F)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x0F)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x0F)) } Method (_SRS, 1, NotSerialized) { SRS (0x0F, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x0F) } } Device (PRT) { Name (_HID, EisaId ("PNP0401")) Method (_STA, 0, NotSerialized) { Return (STA (0x10)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x10)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x10)) } Method (_SRS, 1, NotSerialized) { SRS (0x10, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x10) } } Device (PRT1) { Name (_HID, EisaId ("PNP0400")) Method (_STA, 0, NotSerialized) { Return (STA (0x12)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x12)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x12)) } Method (_SRS, 1, NotSerialized) { SRS (0x12, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x12) } } Device (PCC0) { Name (_HID, EisaId ("PNP0E00")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { Return (STA (0x13)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x13)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x13)) } Method (_SRS, 1, NotSerialized) { SRS (0x13, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x13) } Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { Store (Arg0, \_SB.MEM.WED2) } Device (PCS0) { Name (_ADR, 0x00) Name (_SUN, 0x00) } Device (PCS1) { Name (_ADR, 0x01) Name (_SUN, 0x01) } } Device (ATA) { Name (_HID, EisaId ("PNP0600")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { Return (STA (0x16)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x16)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x16)) } Method (_SRS, 1, NotSerialized) { SRS (0x16, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x16) } } } Device (FNC1) { Name (_ADR, 0x00040000) OperationRegion (IDEC, PCI_Config, 0x00, 0xFF) Field (IDEC, ByteAcc, NoLock, Preserve) { Offset (0x54), FTHP, 4, Offset (0x55), FTHS, 4, Offset (0x56), PUDS, 4, Offset (0x57), SUDS, 4, Offset (0x58), PAST, 3, Offset (0x59), PCRC, 4, PCAC, 3, Offset (0x5A), PDRC, 4, PDAC, 3, Offset (0x5C), SAST, 3, Offset (0x5D), SCRC, 4, SCAC, 3, Offset (0x5E), SDRC, 4, SDAC, 3 } Device (IDE0) { Name (_ADR, 0x00) Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (_PS0, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID0R, 0x00)) {} Store (0x00, \_SB.MEM.PPSC) } Method (_PS3, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID0R, 0x00)) {} Store (0x01, \_SB.MEM.PPSC) } Method (_PSC, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID0R, 0x00)) {} If (\_SB.MEM.PPSC) { Return (0x03) } Else { Return (0x00) } } Method (_STM, 3, NotSerialized) { While (LEqual (\_SB.MEM.ID0R, 0x00)) {} Store (0x01, \_SB.MEM.HTM0) CreateDWordField (Arg0, 0x00, PPIO) CreateDWordField (Arg0, 0x04, PDMA) CreateDWordField (Arg0, 0x10, PFLG) Store (PPIO, Local0) Store (0x03, Local1) Store (0x0A, Local2) Store (0x00, Local3) Store (0x08, Local4) Store (0x08, Local5) If (LNot (LGreater (Local0, 0x78))) { Store (0x02, Local1) Store (0x01, Local2) Store (0x03, Local3) Store (0x01, Local4) Store (0x03, Local5) } Else { If (LNot (LGreater (Local0, 0xB4))) { Store (0x02, Local1) Store (0x03, Local2) Store (0x03, Local3) Store (0x03, Local4) Store (0x03, Local5) } Else { If (LNot (LGreater (Local0, 0xF0))) { Store (0x02, Local1) Store (0x01, Local2) Store (0x00, Local3) Store (0x04, Local4) Store (0x04, Local5) } Else { If (LNot (LGreater (Local0, 0x017F))) { Store (0x02, Local1) Store (0x03, Local2) Store (0x00, Local3) Store (0x08, Local4) Store (0x05, Local5) } } } } If (LNot (LEqual (Local0, 0xFFFFFFFF))) { Store (Local1, \_SB.PCI0.FNC1.PAST) Store (Local2, \_SB.PCI0.FNC1.PCRC) Store (Local3, \_SB.PCI0.FNC1.PCAC) Store (Local4, \_SB.PCI0.FNC1.PDRC) Store (Local5, \_SB.PCI0.FNC1.PDAC) Store (0x05, \_SB.PCI0.FNC1.FTHP) } Store (PDMA, Local0) Store (PFLG, Local1) And (Local1, 0x01, Local1) ShiftLeft (Local1, 0x03, Local1) If (Local1) { Store (0x04, Local2) If (LNot (LGreater (Local0, 0x1E))) { Store (0x00, Local2) } Else { If (LNot (LGreater (Local0, 0x2D))) { Store (0x01, Local2) } Else { If (LNot (LGreater (Local0, 0x3C))) { Store (0x02, Local2) } Else { If (LNot (LGreater (Local0, 0x5A))) { Store (0x03, Local2) } } } } } Else { Store (0x07, Local2) If (LNot (LGreater (Local0, 0x4B))) { Store (0x05, Local2) } Else { If (LNot (LGreater (Local0, 0x5A))) { Store (0x06, Local2) } } } If (LNot (LEqual (Local0, 0xFFFFFFFF))) { Or (Local1, Local2, Local1) Store (Local1, \_SB.PCI0.FNC1.PUDS) Store (0x01, \_SB.PCI0.FNC1.FTHP) } } Method (_GTM, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID0R, 0x00)) {} Store (0x01, \_SB.MEM.HTM0) Store (\_SB.PCI0.FNC1.PCRC, Local0) Store (\_SB.PCI0.FNC1.PCAC, Local1) ShiftLeft (Local1, 0x04, Local1) Or (Local0, Local1, Local0) Store (0x0258, Local2) If (LEqual (Local0, 0x31)) { Store (0x78, Local2) } Else { If (LEqual (Local0, 0x33)) { Store (0xB4, Local2) } Else { If (LEqual (Local0, 0x01)) { Store (0xF0, Local2) } Else { If (LEqual (Local0, 0x03)) { Store (0x017F, Local2) } } } } Store (\_SB.PCI0.FNC1.PUDS, Local0) And (Local0, 0x08, Local1) And (Local0, 0x07, Local0) Store (0x02, Local4) If (Local1) { Store (0x03, Local4) Store (0x78, Local3) If (LEqual (Local0, 0x00)) { Store (0x1E, Local3) } Else { If (LEqual (Local0, 0x01)) { Store (0x2D, Local3) } Else { If (LEqual (Local0, 0x02)) { Store (0x3C, Local3) } Else { If (LEqual (Local0, 0x03)) { Store (0x5A, Local3) } } } } } Else { Store (0x69, Local3) If (LEqual (Local0, 0x05)) { Store (0x4B, Local3) } Else { If (LEqual (Local0, 0x06)) { Store (0x5A, Local3) } } } Name (BUFF, Buffer (0x14) {}) CreateDWordField (BUFF, 0x00, PIO1) CreateDWordField (BUFF, 0x04, DMA1) CreateDWordField (BUFF, 0x08, PIO2) CreateDWordField (BUFF, 0x0C, DMA2) CreateDWordField (BUFF, 0x10, FLGS) Store (Local2, PIO1) Store (Local3, DMA1) Store (0xFFFFFFFF, PIO2) Store (0xFFFFFFFF, DMA2) Store (Local4, FLGS) Return (BUFF) } Device (HD_0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID0R, 0x00)) {} Store (0x01, \_SB.MEM.HTM0) Name (BUFF, Buffer (0x0E) { 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0xEF }) CreateByteField (BUFF, 0x01, PIOM) CreateByteField (BUFF, 0x08, DMAM) Store (\_SB.PCI0.FNC1.PCRC, Local0) Store (\_SB.PCI0.FNC1.PCAC, Local1) ShiftLeft (Local1, 0x04, Local1) Or (Local0, Local1, Local0) Store (0x08, Local1) If (LEqual (Local0, 0x31)) { Store (0x0C, Local1) } Else { If (LEqual (Local0, 0x33)) { Store (0x0B, Local1) } Else { If (LEqual (Local0, 0x01)) { Store (0x0A, Local1) } Else { If (LEqual (Local0, 0x03)) { Store (0x09, Local1) } } } } Store (\_SB.PCI0.FNC1.PUDS, Local0) And (Local0, 0x08, Local2) And (Local0, 0x07, Local0) If (Local2) { Store (0x40, Local2) If (LEqual (Local0, 0x00)) { Store (0x44, Local2) } Else { If (LEqual (Local0, 0x01)) { Store (0x43, Local2) } Else { If (LEqual (Local0, 0x02)) { Store (0x42, Local2) } Else { If (LEqual (Local0, 0x03)) { Store (0x41, Local2) } } } } } Else { Store (0x20, Local2) If (LEqual (Local0, 0x05)) { Store (0x22, Local2) } Else { If (LEqual (Local0, 0x06)) { Store (0x21, Local2) } } } Store (Local1, PIOM) Store (Local2, DMAM) Return (BUFF) } } } Device (IDE1) { Name (_ADR, 0x01) Method (_PS0, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x02, Local0) If (Local0) { Store (0x00, \_SB.MEM.SPSC) Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x20, 0x00, 0xB2) If (\_SB.MEM.OEDX) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFF00, 0x23, 0x20, 0x00, 0xB2) Store (0x01, \_SB.MEM.OECX) While (\_SB.MEM.OECX) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x20, 0x00, 0xB2) } } } } Method (_PS3, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x02, Local0) If (Local0) { Store (0x01, \_SB.MEM.SPSC) Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x20, 0x00, 0xB2) If (LNot (LEqual (\_SB.MEM.OEDX, 0x03))) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFF00, 0x23, 0x20, 0x03, 0xB2) Store (0x01, \_SB.MEM.OECX) While (\_SB.MEM.OECX) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x20, 0x00, 0xB2) } } } } Method (_PSC, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x02, Local0) If (Local0) { If (\_SB.MEM.SPSC) { Return (0x03) } Else { Return (0x00) } } Else { Return (0x00) } } Method (_STM, 3, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} Store (0x01, \_SB.MEM.HTM1) CreateDWordField (Arg0, 0x00, PPIO) CreateDWordField (Arg0, 0x04, PDMA) CreateDWordField (Arg0, 0x10, PFLG) Store (PPIO, Local0) Store (0x03, Local1) Store (0x0A, Local2) Store (0x00, Local3) Store (0x08, Local4) Store (0x08, Local5) If (LNot (LGreater (Local0, 0x78))) { Store (0x02, Local1) Store (0x01, Local2) Store (0x03, Local3) Store (0x01, Local4) Store (0x03, Local5) } Else { If (LNot (LGreater (Local0, 0xB4))) { Store (0x02, Local1) Store (0x03, Local2) Store (0x03, Local3) Store (0x03, Local4) Store (0x03, Local5) } Else { If (LNot (LGreater (Local0, 0xF0))) { Store (0x02, Local1) Store (0x01, Local2) Store (0x00, Local3) Store (0x04, Local4) Store (0x04, Local5) } Else { If (LNot (LGreater (Local0, 0x017F))) { Store (0x02, Local1) Store (0x03, Local2) Store (0x00, Local3) Store (0x08, Local4) Store (0x05, Local5) } } } } If (LNot (LEqual (Local0, 0xFFFFFFFF))) { Store (Local1, \_SB.PCI0.FNC1.SAST) Store (Local2, \_SB.PCI0.FNC1.SCRC) Store (Local3, \_SB.PCI0.FNC1.SCAC) Store (Local4, \_SB.PCI0.FNC1.SDRC) Store (Local5, \_SB.PCI0.FNC1.SDAC) Store (0x05, \_SB.PCI0.FNC1.FTHS) } Store (PDMA, Local0) Store (PFLG, Local1) And (Local1, 0x01, Local1) ShiftLeft (Local1, 0x03, Local1) If (Local1) { Store (0x04, Local2) If (LNot (LGreater (Local0, 0x1E))) { Store (0x00, Local2) } Else { If (LNot (LGreater (Local0, 0x2D))) { Store (0x01, Local2) } Else { If (LNot (LGreater (Local0, 0x3C))) { Store (0x02, Local2) } Else { If (LNot (LGreater (Local0, 0x5A))) { Store (0x03, Local2) } } } } } Else { Store (0x07, Local2) If (LNot (LGreater (Local0, 0x4B))) { Store (0x05, Local2) } Else { If (LNot (LGreater (Local0, 0x5A))) { Store (0x06, Local2) } } } If (LNot (LEqual (Local0, 0xFFFFFFFF))) { Or (Local1, Local2, Local1) Store (Local1, \_SB.PCI0.FNC1.SUDS) Store (0x01, \_SB.PCI0.FNC1.FTHS) } } Method (_GTM, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} Store (0x01, \_SB.MEM.HTM1) Store (\_SB.PCI0.FNC1.SCRC, Local0) Store (\_SB.PCI0.FNC1.SCAC, Local1) ShiftLeft (Local1, 0x04, Local1) Or (Local0, Local1, Local0) Store (0x0258, Local2) If (LEqual (Local0, 0x31)) { Store (0x78, Local2) } Else { If (LEqual (Local0, 0x33)) { Store (0xB4, Local2) } Else { If (LEqual (Local0, 0x01)) { Store (0xF0, Local2) } Else { If (LEqual (Local0, 0x03)) { Store (0x017F, Local2) } } } } Store (\_SB.PCI0.FNC1.SUDS, Local0) And (Local0, 0x08, Local1) And (Local0, 0x07, Local0) Store (0x02, Local4) If (Local1) { Store (0x03, Local4) Store (0x78, Local3) If (LEqual (Local0, 0x00)) { Store (0x1E, Local3) } Else { If (LEqual (Local0, 0x01)) { Store (0x2D, Local3) } Else { If (LEqual (Local0, 0x02)) { Store (0x3C, Local3) } Else { If (LEqual (Local0, 0x03)) { Store (0x5A, Local3) } } } } } Else { Store (0x69, Local3) If (LEqual (Local0, 0x05)) { Store (0x4B, Local3) } Else { If (LEqual (Local0, 0x06)) { Store (0x5A, Local3) } } } Name (BUFF, Buffer (0x14) {}) CreateDWordField (BUFF, 0x00, PIO1) CreateDWordField (BUFF, 0x04, DMA1) CreateDWordField (BUFF, 0x08, PIO2) CreateDWordField (BUFF, 0x0C, DMA2) CreateDWordField (BUFF, 0x10, FLGS) Store (Local2, PIO1) Store (Local3, DMA1) Store (0xFFFFFFFF, PIO2) Store (0xFFFFFFFF, DMA2) Store (Local4, FLGS) Return (BUFF) } Device (HD_1) { Name (_ADR, 0x00) Method (_STA, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x02, Local0) If (Local0) { Return (0x0F) } Else { Return (0x00) } } Method (_EJ0, 1, NotSerialized) { SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x02, Local0) If (Local0) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x20, 0x00, 0xB2) If (LNot (LEqual (\_SB.MEM.OEDX, 0x03))) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFF00, 0x23, 0x20, 0x03, 0xB2) Store (0x01, \_SB.MEM.OECX) While (\_SB.MEM.OECX) { Store (0x01, \_SB.MEM.IESI) Store (0x02, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x20, 0x00, 0xB2) } } } } Method (_GTF, 0, NotSerialized) { While (LEqual (\_SB.MEM.ID1R, 0x00)) {} Store (0x01, \_SB.MEM.HTM1) Name (BUFF, Buffer (0x0E) { 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0xEF }) CreateByteField (BUFF, 0x01, PIOM) CreateByteField (BUFF, 0x08, DMAM) Store (\_SB.PCI0.FNC1.SCRC, Local0) Store (\_SB.PCI0.FNC1.SCAC, Local1) ShiftLeft (Local1, 0x04, Local1) Or (Local0, Local1, Local0) Store (0x08, Local1) If (LEqual (Local0, 0x31)) { Store (0x0C, Local1) } Else { If (LEqual (Local0, 0x33)) { Store (0x0B, Local1) } Else { If (LEqual (Local0, 0x01)) { Store (0x0A, Local1) } Else { If (LEqual (Local0, 0x03)) { Store (0x09, Local1) } } } } Store (\_SB.PCI0.FNC1.SUDS, Local0) And (Local0, 0x08, Local2) And (Local0, 0x07, Local0) If (Local2) { Store (0x40, Local2) If (LEqual (Local0, 0x00)) { Store (0x44, Local2) } Else { If (LEqual (Local0, 0x01)) { Store (0x43, Local2) } Else { If (LEqual (Local0, 0x02)) { Store (0x42, Local2) } Else { If (LEqual (Local0, 0x03)) { Store (0x41, Local2) } } } } } Else { Store (0x20, Local2) If (LEqual (Local0, 0x05)) { Store (0x22, Local2) } Else { If (LEqual (Local0, 0x06)) { Store (0x21, Local2) } } } Store (Local1, PIOM) Store (Local2, DMAM) Return (BUFF) } } } } Device (USB1) { Name (_ADR, 0x00020000) OperationRegion (USP1, PCI_Config, 0x00, 0xFF) Field (USP1, ByteAcc, NoLock, Preserve) { UVI1, 16, UDI1, 16, Offset (0x09), UPI1, 8, USC1, 8, UBC1, 8 } Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.WED3) } Else { Store (0x00, \_SB.MEM.WED3) } } Device (RHB0) { Name (_ADR, 0x00) Device (PT01) { Name (_ADR, 0x01) Name (_EJD, "\\_SB_.PCI0.DOCK") } Device (PT02) { Name (_ADR, 0x02) Name (_EJD, "\\_SB_.PCI0.DOCK") } } } Device (ASND) { Name (_ADR, 0x00060000) Method (_PS0, 0, NotSerialized) { While (LEqual (\_SB.MEM.ACLR, 0x00)) {} Store (0x00, \_SB.MEM.PSND) } Method (_PS3, 0, NotSerialized) { Store (0x01, \_SB.MEM.PSND) } Method (_PSC, 0, NotSerialized) { If (\_SB.MEM.PSND) { Return (0x03) } Else { Return (0x00) } } Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.WED1) } Else { Store (0x00, \_SB.MEM.WED1) } } } Device (IEEE) { Name (_ADR, 0x000C0000) OperationRegion (IEEC, PCI_Config, 0x00, 0xFF) Field (IEEC, ByteAcc, NoLock, Preserve) { IVI0, 16, IDI0, 16, Offset (0x09), IPI0, 8, ISC0, 8, IBC0, 8 } Name (_EJD, "\\_SB_.PCI0.DOCK") } Device (VIY0) { Name (_ADR, 0x00110000) Name (_SUN, 0x00) Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.VWE0) } Else { Store (0x00, \_SB.MEM.VWE0) } } } Device (VIY1) { Name (_ADR, 0x00110001) Name (_SUN, 0x01) Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.VWE1) } Else { Store (0x00, \_SB.MEM.VWE1) } } } Device (LAN) { Name (_ADR, 0x000A0000) OperationRegion (PLAN, PCI_Config, 0x00, 0xFF) Field (PLAN, ByteAcc, NoLock, Preserve) { PLVI, 16, Offset (0xE1), PMES, 8 } Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.WED4) } Else { Store (0x00, \_SB.MEM.WED4) } } } Device (MPC0) { Name (_ADR, 0x00100000) OperationRegion (MPF0, PCI_Config, 0x00, 0xFF) Field (MPF0, ByteAcc, NoLock, Preserve) { Offset (0x0A), MCC0, 16 } Method (_PRW, 0, NotSerialized) { Name (BUFF, Package (0x02) { 0x09, 0x04 }) If (LEqual (\_SB.PCI0.MPC0.MCC0, 0x0200)) {} Else { Store (0x03, Index (BUFF, 0x01)) } Return (BUFF) } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.WEF0) } Else { Store (0x00, \_SB.MEM.WEF0) } } } Device (MPC1) { Name (_ADR, 0x00100001) OperationRegion (MPF1, PCI_Config, 0x00, 0xFF) Field (MPF1, ByteAcc, NoLock, Preserve) { Offset (0x0A), MCC1, 16 } Method (_PRW, 0, NotSerialized) { Name (BUFF, Package (0x02) { 0x09, 0x04 }) If (LEqual (\_SB.PCI0.MPC1.MCC1, 0x0200)) {} Else { Store (0x03, Index (BUFF, 0x01)) } Return (BUFF) } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.WEF1) } Else { Store (0x00, \_SB.MEM.WEF1) } } } Device (SDC) { Name (_ADR, 0x00120000) } Device (DOCK) { Name (_HID, EisaId ("PNP0A05")) Method (_STA, 0, NotSerialized) { SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Store (0x00, \_SB.MEM.RDID) Store (0x00, \_SB.MEM.RDSN) Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) Store (\_SB.MEM.RDID, \_SB.MEM.DLID) Store (\_SB.MEM.RDSN, \_SB.MEM.DSRN) If (\_SB.MEM.PAR1) { Return (0x00) } Else { If (LOr (LEqual (0x1B51F351, \_SB.MEM.RDID), LEqual (0x1C51F351, \_SB.MEM.RDID))) { Return (0x0F) } Else { If (LEqual (0x1D51F351, \_SB.MEM.RDID)) { Return (0x0F) } Else { Return (0x00) } } } } Else { Return (0x00) } } Method (_BDN, 0, NotSerialized) { Store (0x00, \_SB.MEM.RDID) Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) Return (\_SB.MEM.RDID) } Method (_UID, 0, NotSerialized) { Store (0x00, \_SB.MEM.RDSN) Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) Return (\_SB.MEM.RDSN) } Method (_DCK, 1, NotSerialized) { If (Arg0) { Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) If (\_SB.MEM.PAR1) { Store (0x41, \_SB.PCI0.FNC0.SYSR.TRP4) Reset (\_SB.PCI0.DKSQ) Wait (\_SB.PCI0.DKSQ, 0x0BB8) Notify (\_SB.PCI0.PCI1.VGA, 0x80) DIS (0x23) Return (One) } Return (Zero) } Else { Return (One) } } Method (_EJ0, 1, NotSerialized) { If (LOr (\_SB.MEM.BES1, \_SB.MEM.BES2)) { Store (0x40, \_SB.PCI0.FNC0.SYSR.TRP4) Reset (\_SB.PCI0.DKSQ) Wait (\_SB.PCI0.DKSQ, 0x1388) Notify (\_SB.PCI0.PCI1.VGA, 0x80) } } Device (ATAE) { Name (_HID, EisaId ("PNP0600")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { Return (STA (0x24)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x24)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x24)) } Method (_SRS, 1, NotSerialized) { SRS (0x24, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x24) } } Device (PCE0) { Name (_HID, EisaId ("PNP0E00")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { Return (STA (0x25)) } Method (_CRS, 0, NotSerialized) { Return (CRS (0x25)) } Method (_PRS, 0, NotSerialized) { Return (PRS (0x25)) } Method (_SRS, 1, NotSerialized) { SRS (0x25, Arg0) } Method (_DIS, 0, NotSerialized) { DIS (0x25) } Method (_PS0, 0, NotSerialized) { PS0 (0x25) } Method (_PS3, 0, NotSerialized) { PS3 (0x25) } Method (_PSC, 0, NotSerialized) { Return (PSC (0x25)) } Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { Store (Arg0, \_SB.MEM.WED2) } Device (PCS2) { Name (_ADR, 0x00) Name (_SUN, 0x02) } } PowerResource (PDOC, 0x01, 0x0000) { Method (_STA, 0, NotSerialized) { Return (\_SB.MEM.DSPW) } Method (_ON, 0, NotSerialized) { Store (0x01, \_SB.MEM.DSPW) } Method (_OFF, 0, NotSerialized) { Store (0x00, \_SB.MEM.DSPW) } } Name (_PR0, Package (0x01) { \_SB.PCI0.DOCK.PDOC }) Name (_PR1, Package (0x01) { \_SB.PCI0.DOCK.PDOC }) } Event (DKSQ) Device (NOV0) { Name (_ADR, 0x00140000) OperationRegion (NVC0, PCI_Config, 0x00, 0xFF) Field (NVC0, ByteAcc, NoLock, Preserve) { TVI0, 16, TDI0, 16, Offset (0x09), TPI0, 8, TSC0, 8, TBC0, 8 } Name (_SUN, 0x02) Name (_EJD, "\\_SB_.PCI0.DOCK") Name (_PRW, Package (0x02) { 0x09, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, \_SB.MEM.VWE2) } Else { Store (0x00, \_SB.MEM.VWE2) } } } Device (PCI1) { Name (_ADR, 0x00010000) Name (_PRT, Package (0x01) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.FNC0.LNKC, 0x00 } }) Device (VGA) { Name (_ADR, 0x00) Method (_PS0, 0, Serialized) { While (LEqual (\_SB.MEM.VGAR, 0x00)) {} Store (0x01, \_SB.MEM.IESI) Store (0x00, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x0100, 0x00, 0xB2) If (LEqual (\_SB.MEM.OEAX, 0x00)) { Store (0x01, \_SB.MEM.IESI) Store (0x00, \_SB.MEM.IEDI) SMBR (0xFF00, 0x23, 0x0100, 0x00, 0xB2) WPSX (0x0100, 0x01, 0x00, 0x00) Store (0x00, \_SB.MEM.VGAF) } } Method (_PS3, 0, Serialized) { While (LEqual (\_SB.MEM.VGAR, 0x00)) {} Store (0x01, \_SB.MEM.IESI) Store (0x00, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x0100, 0x00, 0xB2) If (LEqual (\_SB.MEM.OEAX, 0x00)) { Store (0x01, \_SB.MEM.IESI) Store (0x00, \_SB.MEM.IEDI) SMBR (0xFF00, 0x23, 0x0100, 0x03, 0xB2) WPSX (0x0100, 0x01, 0x00, 0x03) Store (0x01, \_SB.MEM.VGAF) } } Method (_PSC, 0, NotSerialized) { While (LEqual (\_SB.MEM.VGAR, 0x00)) {} Store (0x01, \_SB.MEM.IESI) Store (0x00, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, 0x0100, 0x00, 0xB2) Return (\_SB.MEM.OEDX) } Method (_DOS, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Store (0x01, \_SB.MEM.DCST) Store (0x00, \_SB.MEM.DOS2) } Else { If (LEqual (Arg0, 0x01)) { Store (0x00, \_SB.MEM.DCST) Store (0x01, \_SB.MEM.DOS2) } Else { If (LEqual (Arg0, 0x02)) { Store (0x01, \_SB.MEM.DCST) Store (0x01, \_SB.MEM.DOS2) } } } } Method (_DOD, 0, NotSerialized) { Name (BUFF, Package (0x02) { 0x0110, 0x0100 }) Return (BUFF) } Method (_ROM, 2, NotSerialized) { Add (Arg0, 0x000C0000, Local0) ShiftLeft (Arg1, 0x03, Local1) Name (BUFF, Buffer (Arg1) {}) Scope (\) { OperationRegion (VROM, SystemMemory, Local0, Local1) Field (VROM, ByteAcc, NoLock, Preserve) { ROMI, 65536 } } Store (\ROMI, BUFF) Return (BUFF) } Device (LCD) { Name (_ADR, 0x0110) Method (_DCS, 0, NotSerialized) { If (\_SB.MEM.CTLA) { Return (0x0F) } Else { Return (0x0D) } } Method (_DDC, 1, NotSerialized) { If (LEqual (Arg0, 0x01)) { Store (0x80, Local0) } Else { If (LEqual (Arg0, 0x02)) { Store (0x0100, Local0) } Else { Return (Zero) } } Store (0x00, \_SB.MEM.PRES) ShiftLeft (Arg0, 0x08, Local1) Or (Local1, 0x01, Local1) Name (BUFF, Buffer (Local0) {}) SMBR (0xFE00, 0x37, Local1, 0x000EF000, 0xB2) And (Local1, 0xFF00, Local1) Store (0x0100, \_SB.MEM.OECX) While (\_SB.MEM.OECX) { SMBR (0xFE00, 0x37, Local1, 0x00, 0xB2) } Store (\_SB.MEM.FSDP, Local0) Or (Local0, 0x22, \_SB.MEM.FSDP) Subtract (\_SB.MEM.FSDP, Local0, Local0) Subtract (\_SB.MEM.EDCK, Local0, \_SB.MEM.EDCK) Store (\_SB.MEM.PRES, BUFF) Return (BUFF) } Method (_DGS, 0, NotSerialized) { If (\_SB.MEM.NXLA) { Return (One) } Else { Return (Zero) } } Method (_DSS, 1, NotSerialized) { Store (Arg0, Local0) And (Local0, 0x01, Local1) If (Local1) { Store (0x01, \_SB.MEM.NXLA) } Else { Store (0x00, \_SB.MEM.NXLA) } And (Local0, 0x80000000, Local1) If (Local1) { Store (0x0100, Local1) If (\_SB.MEM.NXLA) { Or (0x01, Local1, Local1) } If (\_SB.MEM.NXCA) { Or (0x02, Local1, Local1) } If (\_SB.MEM.NXTA) { Or (0x04, Local1, Local1) } If (\_SB.MEM.NXDA) { Or (0x08, Local1, Local1) } SMBR (0xFF00, 0x1C, Local1, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (LEqual (Local1, 0x00)) { Store (0x80, Local1) While (LEqual (Local1, 0x80)) { SMBR (0xFE00, 0x1C, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x80, Local1) } If (\_SB.MEM.CTLA) { If (LEqual (\_SB.MEM.LCDS, 0x00)) { SMBR (0xFF00, 0x02, 0x01, 0x00, 0xB2) Store (0x01, \_SB.MEM.OEDX) While (\_SB.MEM.OEDX) { SMBR (0xFE00, 0x02, 0x00, 0x00, 0xB2) } } } } } } Method (_BCL, 0, NotSerialized) { Name (BUFF, Package (0x05) { 0x64, 0x28, 0x00, 0x28, 0x64 }) If (\_SB.MEM.HPSU) { Store (\_SB.MEM.BCLA, Index (BUFF, 0x00)) Store (\_SB.MEM.BCLD, Index (BUFF, 0x01)) } Return (BUFF) } Method (_BCM, 1, NotSerialized) { If (LEqual (\_SB.MEM.HPSU, 0x00)) { Multiply (Arg0, 0xFFFF, Local0) Divide (Local0, 0x64, , Local0) SMBR (0xFF00, 0x2A, Local0, 0x00, 0xB2) } } Method (_PS0, 0, Serialized) { Store (0x00, \_SB.MEM.LCDS) } Method (_PS3, 0, Serialized) { Store (0x03, \_SB.MEM.LCDS) } Method (_PSC, 0, Serialized) { Return (\_SB.MEM.LCDS) } } Device (CRT) { Name (_ADR, 0x0100) Method (_DCS, 0, NotSerialized) { If (\_SB.MEM.CTCA) { Return (0x0F) } Else { Return (0x0D) } } Method (_DDC, 1, NotSerialized) { If (LEqual (Arg0, 0x01)) { Store (0x80, Local0) } Else { If (LEqual (Arg0, 0x02)) { Store (0x0100, Local0) } Else { Return (Zero) } } Store (0x00, \_SB.MEM.PRES) ShiftLeft (Arg0, 0x08, Local1) Or (Local1, 0x02, Local1) Name (BUFF, Buffer (Local0) {}) SMBR (0xFE00, 0x37, Local1, 0x000EF000, 0xB2) And (Local1, 0xFF00, Local1) Store (0x0100, \_SB.MEM.OECX) While (\_SB.MEM.OECX) { SMBR (0xFE00, 0x37, Local1, 0x00, 0xB2) } Store (\_SB.MEM.PRES, BUFF) Return (BUFF) } Method (_DGS, 0, NotSerialized) { If (\_SB.MEM.NXCA) { Return (One) } Else { Return (Zero) } } Method (_DSS, 1, NotSerialized) { Store (Arg0, Local0) And (Local0, 0x01, Local1) If (Local1) { Store (0x01, \_SB.MEM.NXCA) } Else { Store (0x00, \_SB.MEM.NXCA) } And (Local0, 0x80000000, Local1) If (Local1) { Store (0x0100, Local1) If (\_SB.MEM.NXLA) { Or (0x01, Local1, Local1) } If (\_SB.MEM.NXCA) { Or (0x02, Local1, Local1) } If (\_SB.MEM.NXTA) { Or (0x04, Local1, Local1) } SMBR (0xFF00, 0x1C, Local1, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (LEqual (Local1, 0x00)) { Store (0x80, Local1) While (LEqual (Local1, 0x80)) { SMBR (0xFE00, 0x1C, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x80, Local1) } If (\_SB.MEM.CTLA) { If (LEqual (\_SB.MEM.LCDS, 0x00)) { SMBR (0xFF00, 0x02, 0x01, 0x00, 0xB2) Store (0x01, \_SB.MEM.OEDX) While (\_SB.MEM.OEDX) { SMBR (0xFE00, 0x02, 0x00, 0x00, 0xB2) } } } } } } Method (_PS0, 0, Serialized) { Store (0x00, \_SB.MEM.CRTS) } Method (_PS3, 0, Serialized) { Store (0x03, \_SB.MEM.CRTS) } Method (_PSC, 0, Serialized) { Return (\_SB.MEM.CRTS) } } } } Method (_INI, 0, NotSerialized) { Store (\_SB.MEM.BES1, \_SB.MEM.BT1F) Store (\_SB.MEM.BES2, \_SB.MEM.BT2F) Store (0x00, \_SB.MEM.DSPW) Store (0x00, \_SB.MEM.VGAF) Store (0x00, \_SB.MEM.VWE0) Store (0x00, \_SB.MEM.VWE1) Store (0x00, \_SB.MEM.PPSC) Store (0x00, \_SB.MEM.SPSC) Store (0x00, Local0) If (CMPS (\_OS, "Microsoft Windows NT")) { Store (0x03, Local0) If (CondRefOf (\_OSI, Local1)) { If (\_OSI ("Windows 2001")) { Store (0x04, Local0) } } } Else { If (CMPS (\_OS, "Microsoft Windows")) { Store (0x01, Local0) } If (CMPS (\_OS, "Microsoft WindowsME:Millennium Edition")) { Store (0x02, Local0) } } Store (Local0, \_SB.MEM.OSID) DIS (0x14) DIS (0x23) SMBR (0xFF00, 0x1E, 0x01, 0x00, 0xB2) Store (0x01, \_SB.MEM.PAR1) Store (0x60, \_SB.PCI0.FNC0.SYSR.TRP4) } } Device (BT) { Name (_HID, "TOS6205") Method (_STA, 0, NotSerialized) { If (\_SB.MEM.BTMD) { Return (0x0F) } Else { Return (0x00) } } Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (BTST, 0, NotSerialized) { Store (0x00, \_SB.MEM.OESI) SMBR (0xFE00, 0x4D, 0x01, 0xC600, 0xB2) Store (0x01, Local0) While (Local0) { SMBR (0xFE00, 0x4D, 0x0101, 0xC600, 0xB2) Store (\_SB.MEM.OESI, Local2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (Local1) { And (\_SB.MEM.OEAX, 0xFF, Local1) If (LNot (LEqual (Local1, 0x20))) { Store (0x00, Local2) Store (0x00, Local0) } } Else { Store (0x00, Local0) } } And (Local2, 0x02, Local0) ShiftLeft (Local0, 0x06, Local0) And (Local2, 0x04, Local1) ShiftLeft (Local1, 0x04, Local1) Or (Local0, Local1, Local0) And (Local2, 0x10, Local3) ShiftRight (Local3, 0x04, Local3) Or (Local0, Local3, Local0) Return (Local0) } Method (AUSB, 0, NotSerialized) { If (\_SB.MEM.BTMD) { Store (0x00, \_SB.MEM.IEDI) Store (0x03, \_SB.MEM.IESI) SMBR (0xFF00, 0x4D, 0x01, 0x7C00, 0xB2) Store (0x01, Local0) While (Local0) { SMBR (0xFF00, 0x4D, 0x0101, 0x7C00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (Local1) { And (\_SB.MEM.OEAX, 0xFF, Local1) If (LNot (LEqual (Local1, 0x20))) { Store (0x00, Local0) } } Else { Store (0x00, Local0) } } } } Method (DUSB, 0, NotSerialized) { If (\_SB.MEM.BTMD) { Store (0x00, \_SB.MEM.IEDI) Store (0x04, \_SB.MEM.IESI) SMBR (0xFF00, 0x4D, 0x01, 0x7C00, 0xB2) Store (0x01, Local0) While (Local0) { SMBR (0xFF00, 0x4D, 0x0101, 0x7C00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (Local1) { And (\_SB.MEM.OEAX, 0xFF, Local1) If (LNot (LEqual (Local1, 0x20))) { Store (0x00, Local0) } } Else { Store (0x00, Local0) } } } } Method (BTPO, 0, NotSerialized) { If (\_SB.MEM.BTMD) { Store (0x00, \_SB.MEM.IEDI) Store (0x01, \_SB.MEM.IESI) SMBR (0xFF00, 0x4D, 0x01, 0x7C00, 0xB2) Store (0x01, Local0) While (Local0) { SMBR (0xFF00, 0x4D, 0x0101, 0x7C00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (Local1) { And (\_SB.MEM.OEAX, 0xFF, Local1) If (LNot (LEqual (Local1, 0x20))) { Store (0x00, Local0) } } Else { Store (0x00, \_SB.MEM.IEDI) Store (0x14, \_SB.MEM.IESI) SMBR (0xFF00, 0x4D, 0x01, 0x7C00, 0xB2) Store (0x01, Local2) While (Local2) { SMBR (0xFF00, 0x4D, 0x0101, 0x7C00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local3) If (Local3) { And (\_SB.MEM.OEAX, 0xFF, Local3) If (LNot (LEqual (Local3, 0x20))) { Store (0x00, Local2) } } Else { Store (0x00, Local2) } } Store (0x00, Local0) } } } } Method (BTPF, 0, NotSerialized) { If (\_SB.MEM.BTMD) { Store (0x00, \_SB.MEM.IEDI) Store (0x02, \_SB.MEM.IESI) SMBR (0xFF00, 0x4D, 0x01, 0x7C00, 0xB2) Store (0x01, Local0) While (Local0) { SMBR (0xFF00, 0x4D, 0x0101, 0x7C00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local1) If (Local1) { And (\_SB.MEM.OEAX, 0xFF, Local1) If (LNot (LEqual (Local1, 0x20))) { Store (0x00, Local0) } } Else { Store (0x00, \_SB.MEM.IEDI) Store (0x13, \_SB.MEM.IESI) SMBR (0xFF00, 0x4D, 0x01, 0x7C00, 0xB2) Store (0x01, Local2) While (Local2) { SMBR (0xFF00, 0x4D, 0x0101, 0x7C00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local3) If (Local3) { And (\_SB.MEM.OEAX, 0xFF, Local3) If (LNot (LEqual (Local3, 0x20))) { Store (0x00, Local2) } } Else { Store (0x00, Local2) } } Store (0x00, Local0) } } } } } Device (LID) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { Return (\_SB.MEM.LIDS) } Name (_PRW, Package (0x02) { 0x25, 0x04 }) Method (_PSW, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Store (0x00, \_SB.MEM.EWLD) } Else { Store (0x01, \_SB.MEM.EWLD) } } } Device (BAT1) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x01) Name (_PCL, Package (0x01) { \_SB }) Method (_STA, 0, NotSerialized) { If (\_SB.MEM.BES1) { Return (0x1F) } Else { Return (0x0F) } } Method (_BIF, 0, NotSerialized) { Name (BUFF, Package (0x0D) {}) Store (0x00, Index (BUFF, 0x00)) Store (\_SB.MEM.BDV1, Local2) Multiply (\_SB.MEM.BDC1, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x01)) Multiply (\_SB.MEM.BLF1, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x02)) Store (\_SB.MEM.BTC1, Index (BUFF, 0x03)) Store (\_SB.MEM.BDV1, Index (BUFF, 0x04)) Multiply (\_SB.MEM.BCW1, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x05)) Multiply (\_SB.MEM.BCL1, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x06)) Multiply (\_SB.MEM.BG11, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x07)) Multiply (\_SB.MEM.BG21, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x08)) Store (\_SB.MEM.BMN1, Index (BUFF, 0x09)) Store (\_SB.MEM.BSN1, Index (BUFF, 0x0A)) Store (\_SB.MEM.BTP1, Index (BUFF, 0x0B)) Store (\_SB.MEM.BOI1, Index (BUFF, 0x0C)) Return (BUFF) } Method (_BST, 0, NotSerialized) { If (\_SB.MEM.BES2) { And (\_SB.MEM.BST1, 0x03, Local0) And (\_SB.MEM.BST2, 0x03, Local1) If (LOr (Local0, Local1)) { Multiply (\_SB.MEM.BPR1, \_SB.MEM.BDV1, Local0) Divide (Local0, 0x07D0, Local1, Local0) } Else { Store (0x00, Local0) } } Else { If (LAnd (\_SB.MEM.BST1, 0x03)) { Multiply (\_SB.MEM.BPR1, \_SB.MEM.BDV1, Local0) Divide (Local0, 0x03E8, Local1, Local0) } Else { Store (0x00, Local0) } } Name (BUFF, Package (0x04) {}) Store (\_SB.MEM.BST1, Index (BUFF, 0x00)) Store (Local0, Index (BUFF, 0x01)) Multiply (\_SB.MEM.BRC1, \_SB.MEM.BDV1, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x02)) Store (\_SB.MEM.BPV1, Index (BUFF, 0x03)) Return (BUFF) } Method (_BTP, 1, NotSerialized) { Store (0x01, \_SB.MEM.PAR1) Store (Arg0, \_SB.MEM.PAR2) Store (0x61, \_SB.PCI0.FNC0.SYSR.TRP4) } } Device (BAT2) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x02) Name (_PCL, Package (0x01) { \_SB }) Method (_STA, 0, NotSerialized) { If (\_SB.MEM.BES2) { Return (0x1F) } Else { Return (0x0F) } } Method (_BIF, 0, NotSerialized) { Name (BUFF, Package (0x0D) {}) Store (0x00, Index (BUFF, 0x00)) Store (\_SB.MEM.BDV2, Local2) Multiply (\_SB.MEM.BDC2, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x01)) Multiply (\_SB.MEM.BLF2, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x02)) Store (\_SB.MEM.BTC2, Index (BUFF, 0x03)) Store (\_SB.MEM.BDV2, Index (BUFF, 0x04)) Multiply (\_SB.MEM.BCW2, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x05)) Multiply (\_SB.MEM.BCL2, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x06)) Multiply (\_SB.MEM.BG12, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x07)) Multiply (\_SB.MEM.BG22, Local2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x08)) Store (\_SB.MEM.BMN2, Index (BUFF, 0x09)) Store (\_SB.MEM.BSN2, Index (BUFF, 0x0A)) Store (\_SB.MEM.BTP2, Index (BUFF, 0x0B)) Store (\_SB.MEM.BOI2, Index (BUFF, 0x0C)) Return (BUFF) } Method (_BST, 0, NotSerialized) { If (\_SB.MEM.BES1) { And (\_SB.MEM.BST1, 0x03, Local0) And (\_SB.MEM.BST2, 0x03, Local1) If (LOr (Local0, Local1)) { Multiply (\_SB.MEM.BPR2, \_SB.MEM.BDV2, Local0) Divide (Local0, 0x07D0, Local1, Local0) } Else { Store (0x00, Local0) } } Else { If (LAnd (\_SB.MEM.BST2, 0x03)) { Multiply (\_SB.MEM.BPR2, \_SB.MEM.BDV2, Local0) Divide (Local0, 0x03E8, Local1, Local0) } Else { Store (0x00, Local0) } } Name (BUFF, Package (0x04) {}) Store (\_SB.MEM.BST2, Index (BUFF, 0x00)) Store (Local0, Index (BUFF, 0x01)) Multiply (\_SB.MEM.BRC2, \_SB.MEM.BDV2, Local0) Divide (Local0, 0x03E8, Local1, Local0) Store (Local0, Index (BUFF, 0x02)) Store (\_SB.MEM.BPV2, Index (BUFF, 0x03)) Return (BUFF) } Method (_BTP, 1, NotSerialized) { Store (0x02, \_SB.MEM.PAR1) Store (Arg0, \_SB.MEM.PAR2) Store (0x61, \_SB.PCI0.FNC0.SYSR.TRP4) } } Device (ADP1) { Name (_HID, "ACPI0003") Name (_PCL, Package (0x03) { \_SB, \_SB.BAT1, \_SB.BAT2 }) Name (_STA, 0x0F) Method (_PSR, 0, NotSerialized) { Return (\_SB.MEM.ACST) } } Device (VALD) { Name (_HID, EisaId ("TOS6200")) Name (_DDN, "VALD") Name (_STA, 0x0B) Method (ENAB, 0, NotSerialized) { Store (0x01, \_SB.MEM.VALF) SMBR (0xFF00, 0x16, 0x01, 0x00, 0xB2) } Method (INFO, 0, NotSerialized) { Store (0x00, \_SB.MEM.OECX) SMBR (0xFE00, 0x16, 0x00, 0x00, 0xB2) If (LNot (LEqual (\_SB.MEM.OEAX, 0x00))) { Store (0x00, \_SB.MEM.OECX) } Return (\_SB.MEM.OECX) } Method (GHCI, 6, Serialized) { CreateDWordField (Arg0, 0x00, REAX) CreateWordField (Arg1, 0x00, R_BX) And (REAX, 0xFF00, Local0) If (LEqual (Local0, 0xFE00)) { If (LEqual (R_BX, 0xC000)) { Return (G000 (Local0, R_BX, Arg2, Arg3, Arg4, Arg5)) } If (LEqual (R_BX, 0xC800)) { Return (G800 (Local0, R_BX, Arg2, Arg3, Arg4, Arg5)) } If (LEqual (R_BX, 0xC801)) { Return (G801 (Local0, R_BX, Arg2, Arg3, Arg4, Arg5)) } } If (LEqual (Local0, 0xFF00)) { If (LEqual (R_BX, 0xC000)) { Return (G000 (Local0, R_BX, Arg2, Arg3, Arg4, Arg5)) } If (LEqual (R_BX, 0xC801)) { Return (G801 (Local0, R_BX, Arg2, Arg3, Arg4, Arg5)) } } Return (GCH0 (Arg0, Arg1, Arg2, Arg3, Arg4, Arg5)) } Method (GCH0, 6, NotSerialized) { Store (Arg4, \_SB.MEM.IESI) Store (Arg5, \_SB.MEM.IEDI) SMBR (Arg0, Arg1, Arg2, Arg3, 0xB2) Name (BUFF, Package (0x06) {}) Store (\_SB.MEM.OEAX, Index (BUFF, 0x00)) Store (\_SB.MEM.OEBX, Index (BUFF, 0x01)) Store (\_SB.MEM.OECX, Index (BUFF, 0x02)) Store (\_SB.MEM.OEDX, Index (BUFF, 0x03)) Store (\_SB.MEM.OESI, Index (BUFF, 0x04)) Store (\_SB.MEM.OEDI, Index (BUFF, 0x05)) Return (BUFF) } Method (G000, 6, NotSerialized) { Name (BUFF, Package (0x06) {}) CreateDWordField (Arg2, 0x00, RECX) CreateDWordField (Arg3, 0x00, REDX) CreateDWordField (Arg4, 0x00, RESI) CreateDWordField (Arg5, 0x00, REDI) CreateByteField (Arg2, 0x00, R_CL) Store (0x00, Index (BUFF, 0x00)) Store (Arg1, Index (BUFF, 0x01)) Store (RECX, Index (BUFF, 0x02)) Store (REDX, Index (BUFF, 0x03)) Store (RESI, Index (BUFF, 0x04)) Store (REDI, Index (BUFF, 0x05)) If (\_SB.MEM.GCVS) { If (LEqual (Arg0, 0xFE00)) { If (LEqual (R_CL, 0x00)) { Store (\_SB.MEM.TNVS, Local0) Store (Local0, Index (BUFF, 0x02)) } Else { If (LAnd (LNot (LLess (R_CL, 0x01)), LNot (LGreater (R_CL, 0x04)))) { Store (R_CL, Local0) Or (Local0, 0x3000, Local0) SMBR (0xFA00, Local0, 0x00, 0x00, 0xB2) Store (\_SB.MEM.OECX, Index (BUFF, 0x02)) Store (\_SB.MEM.OEDX, Index (BUFF, 0x03)) } Else { If (LEqual (R_CL, 0x05)) { Store (0x21, Index (BUFF, 0x02)) } Else { Store (0x8300, Index (BUFF, 0x00)) } } } } Else { CreateWordField (Arg3, 0x00, R_DX) If (LEqual (R_CL, 0x00)) { If (LEqual (R_DX, 0x00)) { Store (0x00, \_SB.MEM.TNVS) } Else { Store (0x01, \_SB.MEM.TNVS) } } Else { If (LEqual (R_CL, 0x01)) { Store (R_CL, Local0) Or (Local0, 0x3080, Local0) SMBR (0xFA00, Local0, R_DX, 0x00, 0xB2) } Else { If (LEqual (R_CL, 0x02)) { FindSetRightBit (R_DX, Local0) Store (Local0, \_SB.MEM.NXDD) If (LLess (\_SB.MEM.OSID, 0x03)) { Or (Local0, 0x0100, Local0) SMBR (0xFF00, 0x1C, Local0, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LEqual (Local0, 0x00)) { Store (0x80, Local0) While (LEqual (Local0, 0x80)) { SMBR (0xFE00, 0x1C, 0x00, 0x00, 0xB2) And (\_SB.MEM.OECX, 0x80, Local0) } If (\_SB.MEM.CTLA) { If (LEqual (\_SB.MEM.LCDS, 0x00)) { SMBR (0xFF00, 0x02, 0x01, 0x00, 0xB2) Store (0x01, \_SB.MEM.OEDX) While (\_SB.MEM.OEDX) { SMBR (0xFE00, 0x02, 0x00, 0x00, 0xB2) } } } } } Else { Notify (\_SB.PCI0.PCI1.VGA, 0x80) } } Else { Store (0x8300, Index (BUFF, 0x00)) } } } } } Else { Store (0x8000, Index (BUFF, 0x00)) } Return (BUFF) } Method (G800, 6, NotSerialized) { Store (\_SB.MEM.OSPC, Local0) Name (BUFF, Package (0x06) {}) CreateDWordField (Arg3, 0x00, REDX) CreateDWordField (Arg4, 0x00, RESI) CreateDWordField (Arg5, 0x00, REDI) Store (0x00, Index (BUFF, 0x00)) Store (Arg1, Index (BUFF, 0x01)) Store (Local0, Index (BUFF, 0x02)) Store (REDX, Index (BUFF, 0x03)) Store (RESI, Index (BUFF, 0x04)) Store (REDI, Index (BUFF, 0x05)) Return (BUFF) } Method (G801, 6, NotSerialized) { CreateDWordField (Arg2, 0x00, RECX) CreateDWordField (Arg3, 0x00, REDX) CreateDWordField (Arg4, 0x00, RESI) CreateDWordField (Arg5, 0x00, REDI) Store (0x8300, Local0) Store (RECX, Local1) If (LEqual (REDX, 0x01)) { Store (0x00, Local0) If (LEqual (Arg0, 0xFE00)) { Store (\_SB.MEM.PULD, Local1) Store (\_SB.MEM.PULA, Local2) ShiftLeft (Local2, 0x08, Local2) Or (Local1, Local2, Local1) } Else { And (Local1, 0xFF, Local2) ShiftRight (Local1, 0x08, Local3) Store (Local2, \_SB.MEM.PULD) Store (Local3, \_SB.MEM.PULA) } } If (LEqual (REDX, 0x02)) { Store (0x00, Local0) If (LEqual (Arg0, 0xFE00)) { Store (\_SB.MEM.BCLD, Local1) Store (\_SB.MEM.BCLA, Local2) ShiftLeft (Local2, 0x08, Local2) Or (Local1, Local2, Local1) } Else { And (Local1, 0xFF, Local2) ShiftRight (Local1, 0x08, Local3) Store (Local2, \_SB.MEM.BCLD) Store (Local3, \_SB.MEM.BCLA) } } Name (BUFF, Package (0x06) {}) Store (Local0, Index (BUFF, 0x00)) Store (Arg1, Index (BUFF, 0x01)) Store (Local1, Index (BUFF, 0x02)) Store (REDX, Index (BUFF, 0x03)) Store (RESI, Index (BUFF, 0x04)) Store (REDI, Index (BUFF, 0x05)) Return (BUFF) } } Device (VALG) { Name (_HID, EisaId ("TOS6202")) Name (_DDN, "VALGeneral") Name (_STA, 0x0B) Method (VCID, 0, NotSerialized) { Store (0x00, \_SB.MEM.RDID) Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) Return (\_SB.MEM.RDID) } Method (VUID, 0, NotSerialized) { Store (0x00, \_SB.MEM.RDSN) Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) Return (\_SB.MEM.RDSN) } Method (VDCK, 1, NotSerialized) { If (Arg0) { Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) If (\_SB.MEM.PAR1) { Store (0x41, \_SB.PCI0.FNC0.SYSR.TRP4) Reset (\_SB.PCI0.DKSQ) Wait (\_SB.PCI0.DKSQ, 0x0BB8) Notify (\_SB.PCI0.PCI1.VGA, 0x80) DIS (0x23) Return (One) } Return (Zero) } Else { Return (One) } } Method (VEJ0, 1, NotSerialized) { If (LOr (\_SB.MEM.BES1, \_SB.MEM.BES2)) { Store (0x40, \_SB.PCI0.FNC0.SYSR.TRP4) Reset (\_SB.PCI0.DKSQ) Wait (\_SB.PCI0.DKSQ, 0x1388) Notify (\_SB.PCI0.PCI1.VGA, 0x80) } } Method (DLSZ, 0, NotSerialized) { Return (0x04) } Method (DLIB, 0, NotSerialized) { Name (BUFF, Buffer (0x40) { 0x80, 0x00, 0x07, 0x06, 0xFF, 0xA0, 0x00, 0x00, 0x79, 0x11, 0x17, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) Store (\_SB.PCI0.USB1.UVI1, Local0) CreateByteField (BUFF, 0x18, VI1L) CreateByteField (BUFF, 0x19, VI1H) CreateByteField (BUFF, 0x28, VI2L) CreateByteField (BUFF, 0x29, VI2H) ShiftRight (Local0, 0x08, Local1) And (Local0, 0xFF, Local0) Store (Local0, VI1L) Store (Local1, VI1H) Store (Local0, VI2L) Store (Local1, VI2H) Store (\_SB.PCI0.USB1.UDI1, Local0) CreateByteField (BUFF, 0x1A, DI1L) CreateByteField (BUFF, 0x1B, DI1H) CreateByteField (BUFF, 0x2A, DI2L) CreateByteField (BUFF, 0x2B, DI2H) ShiftRight (Local0, 0x08, Local1) And (Local0, 0xFF, Local0) Store (Local0, DI1L) Store (Local1, DI1H) Store (Local0, DI2L) Store (Local1, DI2H) Store (\_SB.PCI0.USB1.UPI1, Local0) CreateByteField (BUFF, 0x11, PIC1) CreateByteField (BUFF, 0x21, PIC2) Store (Local0, PIC1) Store (Local0, PIC2) Store (\_SB.PCI0.USB1.USC1, Local0) CreateByteField (BUFF, 0x12, SCC1) CreateByteField (BUFF, 0x22, SCC2) Store (Local0, SCC1) Store (Local0, SCC2) Store (\_SB.PCI0.USB1.UBC1, Local0) CreateByteField (BUFF, 0x13, BCC1) CreateByteField (BUFF, 0x23, BCC2) Store (Local0, BCC1) Store (Local0, BCC2) If (LAnd (LEqual (\_SB.PCI0.IEEE.IVI0, 0x104C), LEqual (\_SB.PCI0.IEEE.IDI0, 0x8023))) { Store (\_SB.PCI0.IEEE.IVI0, Local0) CreateByteField (BUFF, 0x38, VI3L) CreateByteField (BUFF, 0x39, VI3H) ShiftRight (Local0, 0x08, Local1) And (Local0, 0xFF, Local0) Store (Local0, VI3L) Store (Local1, VI3H) Store (\_SB.PCI0.IEEE.IDI0, Local0) CreateByteField (BUFF, 0x3A, DI3L) CreateByteField (BUFF, 0x3B, DI3H) ShiftRight (Local0, 0x08, Local1) And (Local0, 0xFF, Local0) Store (Local0, DI3L) Store (Local1, DI3H) Store (\_SB.PCI0.IEEE.IPI0, Local0) CreateByteField (BUFF, 0x31, PIC3) Store (Local0, PIC3) Store (\_SB.PCI0.IEEE.ISC0, Local0) CreateByteField (BUFF, 0x32, SCC3) Store (Local0, SCC3) Store (\_SB.PCI0.IEEE.IBC0, Local0) CreateByteField (BUFF, 0x33, BCC3) Store (Local0, BCC3) } Else { CreateByteField (BUFF, 0x30, VLD3) Store (0x00, VLD3) } Return (BUFF) } Method (VNTF, 1, NotSerialized) { And (Arg0, 0xFFFF, Local0) ShiftRight (Arg0, 0x10, Local1) If (LEqual (Local1, 0x01)) { Notify (\_PR.CPU0, Local0) } } } } Scope (\_TZ) { PowerResource (PFAN, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { SMBR (0xFA00, 0x2201, 0x00, 0x00, 0xB2) If (\_SB.MEM.OECX) { Return (One) } Else { Return (0x00) } } Method (_ON, 0, Serialized) { SMBR (0xFA00, 0x2200, 0xFF, 0x00, 0xB2) } Method (_OFF, 0, Serialized) { SMBR (0xFA00, 0x2200, 0x00, 0x00, 0xB2) } } Device (FAN) { Name (_HID, EisaId ("PNP0C0B")) Name (_PR0, Package (0x01) { \_TZ.PFAN }) } ThermalZone (THRM) { Method (_TMP, 0, NotSerialized) { If (LNot (LGreater (\_SB.MEM.TMP1, 0x0B4C))) { Store (0x0B4C, \_SB.MEM.AST1) Return (0x0B4C) } Else { Store (\_SB.MEM.TMP1, \_SB.MEM.AST1) Return (\_SB.MEM.TMP1) } } Method (_AC0, 0, NotSerialized) { Return (\_SB.MEM.AC01) } Method (_AC1, 0, NotSerialized) { Return (\_SB.MEM.AC11) } Name (_AL0, Package (0x01) { \_TZ.FAN }) Name (_AL1, Package (0x01) { \_TZ.FAN }) Method (_PSV, 0, NotSerialized) { Return (\_SB.MEM.PSV1) } Name (_PSL, Package (0x01) { \_PR.CPU0 }) Method (_CRT, 0, NotSerialized) { Return (\_SB.MEM.CRT1) } Name (_TC1, 0x09) Name (_TC2, 0x02) Name (_TSP, 0x0708) } } Scope (\_GPE) { Method (_L08, 0, Serialized) { If (\_SB.MEM.GP72) { Store (0x00, \_SB.MEM.GP72) Notify (\_SB.PCI0.FNC0.COM, 0x02) } } Method (_L09, 0, Serialized) { If (LNot (LEqual (\_SB.PCI0.LAN.PLVI, 0xFFFF))) { And (\_SB.PCI0.LAN.PMES, 0x80, Local0) If (LEqual (Local0, 0x80)) { Notify (\_SB.PCI0.LAN, 0x02) } } While (LOr (\_SB.MEM.GP73, LOr (\_SB.MEM.GP74, LOr (\_SB.MEM.GP75, LOr (\_SB.MEM.GP83, LOr (\_SB.MEM.BWUE, LOr (\_SB.MEM.WUIE, LOr (\_SB.MEM.WSF0, \_SB.MEM.WSF1)))))))) { If (\_SB.MEM.GP73) { Store (0x00, \_SB.MEM.GP73) Notify (\_SB.PCI0.ASND, 0x02) } If (\_SB.MEM.GP74) { Store (0x00, \_SB.MEM.GP74) Notify (\_SB.PCI0.FNC0.PCC0, 0x02) Notify (\_SB.PCI0.VIY0, 0x02) Notify (\_SB.PCI0.VIY1, 0x02) Notify (\_SB.PCI0.NOV0, 0x02) } If (\_SB.MEM.GP75) { Store (0x00, \_SB.MEM.GP75) Notify (\_SB.PCI0.USB1, 0x02) } If (\_SB.MEM.GP83) { Store (0x00, \_SB.MEM.GP83) Notify (\_SB.PCI0.LAN, 0x02) } If (\_SB.MEM.BWUE) { Store (0x00, \_SB.MEM.BWUE) Notify (\_SB.BT, 0x80) } If (\_SB.MEM.WUIE) { Store (0x00, \_SB.MEM.WUIE) Notify (\_SB.PCI0.IEEE, 0x02) } If (\_SB.MEM.WSF0) { Store (0x00, \_SB.MEM.WSF0) Notify (\_SB.PCI0.MPC0, 0x02) } } } Method (_L25, 0, Serialized) { Store (0xAF, \_SB.MEM.IEDI) SMBR (0xFF00, 0x0028B10B, 0x00, 0x00, 0xB2) While (LOr (\_SB.MEM.GP50, LOr (\_SB.MEM.GP51, LOr (\_SB.MEM.GP52, LOr (\_SB.MEM.GP53, LOr (\_SB.MEM.GP54, LOr (\_SB.MEM.GP60, LOr (\_SB.MEM.GP61, LOr (\_SB.MEM.GP62, LOr (\_SB.MEM.GP63, LOr (\_SB.MEM.GP64, LOr (\_SB.MEM.GP66, LOr (\_SB.MEM.GP70, LOr (\_SB.MEM.GP71, \_SB.MEM.BPFE)))))))))))))) { If (\_SB.MEM.GP50) { Store (0x00, \_SB.MEM.GP50) Notify (\_SB.ADP1, 0x80) } If (\_SB.MEM.GP51) { Store (0x00, \_SB.MEM.GP51) If (LEqual (\_SB.MEM.BES2, \_SB.MEM.BT2F)) { Notify (\_SB.BAT2, 0x80) } Else { Store (\_SB.MEM.BES2, \_SB.MEM.BT2F) If (\_SB.MEM.BES2) { Notify (\_SB.BAT2, 0x00) } Else { Notify (\_SB.BAT2, 0x01) } } } If (\_SB.MEM.GP52) { Store (0x00, \_SB.MEM.GP52) If (LEqual (\_SB.MEM.BES1, \_SB.MEM.BT1F)) { Notify (\_SB.BAT1, 0x80) } Else { Store (\_SB.MEM.BES1, \_SB.MEM.BT1F) If (\_SB.MEM.BES1) { Notify (\_SB.BAT1, 0x00) } Else { Notify (\_SB.BAT1, 0x01) } } } If (\_SB.MEM.GP53) { Store (0x00, \_SB.MEM.GP53) If (LNot (LEqual (\_SB.MEM.TMP1, \_SB.MEM.AST1))) { Notify (\_TZ.THRM, 0x80) } } If (\_SB.MEM.GP54) { Store (0x00, \_SB.MEM.GP54) If (\_SB.MEM.LANA) { Store (0x00, \_SB.MEM.LANA) Notify (\_SB.PCI0.LAN, 0x01) } } If (\_SB.MEM.GP60) { Store (0x00, \_SB.MEM.GP60) SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x00) } Else { Notify (\_SB.VALG, 0x83) } } If (\_SB.MEM.GP61) { Signal (\_SB.PCI0.DKSQ) Store (0x00, \_SB.MEM.GP61) SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x00) } Else { Notify (\_SB.VALG, 0x83) } } If (\_SB.MEM.GP62) { Store (0x00, \_SB.MEM.GP62) SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x01) } Else { Notify (\_SB.VALG, 0x82) } } If (\_SB.MEM.GP63) { Store (0x00, \_SB.MEM.GP63) If (LEqual (\_SB.MEM.DCKF, 0x00)) { Store (0x01, \_SB.MEM.DCKF) SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x00) } Else { Notify (\_SB.VALG, 0x81) } } Else { Signal (\_SB.PCI0.DKSQ) Store (0x00, \_SB.MEM.DCKF) } } If (\_SB.MEM.GP64) { Store (0x00, \_SB.MEM.GP64) If (\_SB.MEM.VALF) { Notify (\_SB.VALD, 0x80) } Else { If (\_SB.MEM.SBL0) { Store (0x00, \_SB.MEM.SBL0) SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) Store (\_SB.MEM.OECX, \_SB.MEM.BDID) If (LNot (LEqual (\_SB.MEM.OECX, 0x00))) { If (LEqual (\_SB.MEM.OECX, 0x01)) {} Else { If (LEqual (\_SB.MEM.OECX, 0x04)) {} Else { Notify (\_SB.PCI0.FNC1.IDE1, 0x03) } } } } If (\_SB.MEM.SBL1) { Store (0x00, \_SB.MEM.SBL1) SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) If (LNot (LEqual (\_SB.MEM.OECX, 0x00))) { If (LEqual (\_SB.MEM.OECX, 0x01)) {} Else { If (LEqual (\_SB.MEM.OECX, 0x04)) {} Else { Notify (\_SB.PCI0.FNC1.IDE1, 0x00) Sleep (0x64) Notify (\_SB.PCI0.FNC1.IDE1, 0x01) } } } } If (\_SB.MEM.SBL2) { Store (0x00, \_SB.MEM.SBL2) If (LNot (LEqual (\_SB.MEM.BDID, 0x00))) { If (LEqual (\_SB.MEM.BDID, 0x01)) {} Else { If (LEqual (\_SB.MEM.BDID, 0x04)) {} Else { Notify (\_SB.PCI0.FNC1.IDE1, 0x01) } } } } If (\_SB.MEM.SBL3) { Store (0x00, \_SB.MEM.SBL3) } } } If (\_SB.MEM.GP66) { Store (0x00, \_SB.MEM.GP66) SMBR (0xFE00, 0x14, 0x00, 0x00, 0xB2) If (LNot (LEqual (\_SB.MEM.OECX, 0x00))) { If (LEqual (\_SB.MEM.OECX, 0x01)) {} Else { If (LEqual (\_SB.MEM.OECX, 0x04)) { Notify (\_SB.BAT2, 0x00) } Else { Notify (\_SB.PCI0.FNC1.IDE1, 0x00) Sleep (0x64) Notify (\_SB.PCI0.FNC1.IDE1, 0x01) } } } } If (\_SB.MEM.GP70) { Store (0x00, \_SB.MEM.GP70) If (\_SB.MEM.VALF) { Notify (\_SB.VALD, 0x80) } If (LEqual (\_SB.MEM.HKCD, 0x3D)) { TRAP (\_SB.MEM.HKCD) } If (LEqual (\_SB.MEM.DOS2, 0x00)) { If (LEqual (\_SB.MEM.HKCD, 0x3F)) { If (LEqual (\_SB.MEM.TNVS, 0x00)) { Notify (\_SB.PCI0.PCI1.VGA, 0x80) } } } } If (\_SB.MEM.GP71) { Store (0x00, \_SB.MEM.GP71) Notify (\_SB.LID, 0x80) } If (\_SB.MEM.BPFE) { Store (0x00, \_SB.MEM.BPFE) Notify (\_SB.BT, 0x90) } } } } Method (_PTS, 1, NotSerialized) { If (LOr (LOr (\_SB.MEM.VWE0, \_SB.MEM.VWE1), \_SB.MEM.VWE2)) { Store (0x01, \_SB.MEM.WED2) } Else { Store (0x00, \_SB.MEM.WED2) } Store (\_SB.MEM.ACST, \_SB.MEM.ACBK) If (LAnd (LNot (LLess (Arg0, 0x01)), LNot (LGreater (Arg0, 0x04)))) { Store (\_SB.MEM.EWLD, \_SB.MEM.PAR1) Store (0x60, \_SB.PCI0.FNC0.SYSR.TRP4) } And (Arg0, 0x07, Local0) Or (Local0, 0x2100, Local0) SMBR (0xFA00, Local0, 0x00, 0x00, 0xB2) } Method (_WAK, 1, NotSerialized) { And (Arg0, 0x07, Local0) Or (Local0, 0x2180, Local0) SMBR (0xFA00, Local0, 0x00, 0x00, 0xB2) Notify (\_SB.PCI0.FNC1.IDE1, 0x00) Store (0x00, \_SB.MEM.RDID) Store (0x00, \_SB.MEM.RDSN) Store (0x05, \_SB.PCI0.FNC0.SYSR.TRP4) If (LEqual (\_SB.MEM.PAR1, 0x00)) { If (LOr (LEqual (0x1B51F351, \_SB.MEM.RDID), LEqual (0x1C51F351, \_SB.MEM.RDID))) { If (LOr (LNot (LEqual (\_SB.MEM.RDID, \_SB.MEM.DLID)), LNot (LEqual (\_SB.MEM.RDSN, \_SB.MEM.DSRN)))) { SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x00) } Else { Notify (\_SB.VALG, 0x81) } } } Else { If (LEqual (0x1D51F351, \_SB.MEM.RDID)) { If (LOr (LNot (LEqual (\_SB.MEM.RDID, \_SB.MEM.DLID)), LNot (LEqual (\_SB.MEM.RDSN, \_SB.MEM.DSRN)))) { SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x00) } Else { Notify (\_SB.VALG, 0x81) } } } } } Else { If (\_SB.MEM.DLID) { SMBR (0x0136FA00, 0x05F3, 0x00, 0x00, 0xB2) And (\_SB.MEM.OEAX, 0xFF00, Local0) If (LOr (LAnd (LEqual (Local0, 0x00), LEqual (\_SB.MEM.OECX, 0x00)), LNot (LEqual (Local0, 0x00)))) { Notify (\_SB.PCI0.DOCK, 0x01) } Else { Notify (\_SB.VALG, 0x83) } } } If (LEqual (\_SB.MEM.DOS2, 0x00)) { If (LOr (LNot (LEqual (\_SB.MEM.CTLA, \_SB.MEM.NXLA)), LNot (LEqual (\_SB.MEM.CTCA, \_SB.MEM.NXCA)))) { Notify (\_SB.PCI0.PCI1.VGA, 0x80) } Else { If (LNot (LEqual (\_SB.MEM.CTTA, \_SB.MEM.NXTA))) { Notify (\_SB.PCI0.PCI1.VGA, 0x80) } } } DIS (0x14) DIS (0x23) SMBR (0xFF00, 0x1E, 0x01, 0x00, 0xB2) If (LNot (LGreater (\_SB.MEM.OSID, 0x03))) { While (LEqual (\_SB.MEM.KBCR, 0x00)) {} } Store (0x01, \_SB.MEM.PAR1) Store (0x60, \_SB.PCI0.FNC0.SYSR.TRP4) If (LNot (LEqual (\_SB.MEM.ACST, \_SB.MEM.ACBK))) { Notify (\_PR.CPU0, 0x80) } Name (BUFF, Package (0x02) { 0x00, 0x01 }) If (LEqual (\_SB.MEM.ACST, 0x00)) { And (\_SB.MEM.BST1, 0x04, Local0) If (LEqual (Local0, 0x04)) { Store (0x01, Index (BUFF, 0x00)) } } Return (BUFF) } Method (TRAP, 1, NotSerialized) { Add (Arg0, 0x12340000, Debug) } Method (SMBR, 5, NotSerialized) { Store (Arg0, \_SB.MEM.IEAX) Store (Arg1, \_SB.MEM.IEBX) Store (Arg2, \_SB.MEM.IECX) Store (Arg3, \_SB.MEM.IEDX) Store (Arg4, \_SB.PCI0.FNC0.SYSR.TRP4) } Method (STA, 1, NotSerialized) { Store (Arg0, \_SB.MEM.PAR1) Store (0x00, \_SB.MEM.PAR2) Store (0x00, \_SB.MEM.PAR3) Store (0x00, \_SB.MEM.PAR4) Store (0x00, \_SB.MEM.PAR5) Store (0x00, \_SB.MEM.PAR6) Store (0x01, \_SB.PCI0.FNC0.SYSR.TRP4) Return (\_SB.MEM.PAR4) } Method (CRS, 1, NotSerialized) { Store (Arg0, \_SB.MEM.PAR1) Store (0x00, \_SB.MEM.PAR2) Store (0x00, \_SB.MEM.PAR3) Store (0x00, \_SB.MEM.PAR4) Store (0x00, \_SB.MEM.PAR5) Store (0x00, \_SB.MEM.PAR6) Store (0x01, \_SB.PCI0.FNC0.SYSR.TRP4) If (LEqual (\_SB.MEM.PAR3, 0x00)) { Return (ResourceTemplate () { }) } Name (BUFF, Buffer (\_SB.MEM.PAR3) {}) Store (\_SB.MEM.PRES, BUFF) Return (BUFF) } Method (PRS, 1, NotSerialized) { Store (Arg0, \_SB.MEM.PAR1) Store (0x01, \_SB.MEM.PAR2) Store (0x00, \_SB.MEM.PAR3) Store (0x00, \_SB.MEM.PAR4) Store (0x00, \_SB.MEM.PAR5) Store (0x00, \_SB.MEM.PAR6) Store (0x01, \_SB.PCI0.FNC0.SYSR.TRP4) If (LEqual (\_SB.MEM.PAR3, 0x00)) { Return (ResourceTemplate () { }) } Name (BUFF, Buffer (\_SB.MEM.PAR3) {}) Store (\_SB.MEM.PRES, BUFF) Return (BUFF) } Method (SRS, 2, NotSerialized) { Store (Arg0, \_SB.MEM.PAR1) Store (0x00, \_SB.MEM.PAR2) Store (0x00, \_SB.MEM.PAR3) Store (0x00, \_SB.MEM.PAR4) Store (0x00, \_SB.MEM.PAR5) Store (0x00, \_SB.MEM.PAR6) Store (Arg1, \_SB.MEM.PRES) Store (0x02, \_SB.PCI0.FNC0.SYSR.TRP4) } Method (DIS, 1, NotSerialized) { Store (Arg0, \_SB.MEM.PAR1) Store (0x00, \_SB.MEM.PAR2) Store (0x00, \_SB.MEM.PAR3) Store (0x00, \_SB.MEM.PAR4) Store (0x00, \_SB.MEM.PAR5) Store (0x00, \_SB.MEM.PAR6) Store (0x03, \_SB.PCI0.FNC0.SYSR.TRP4) } Method (PS0, 1, NotSerialized) { Store (0x00, \_SB.MEM.IESI) SMBR (0xFE00, 0x23, Arg0, 0x00, 0xB2) If (LEqual (\_SB.MEM.OEAX, 0x00)) { Store (0x00, \_SB.MEM.IESI) SMBR (0xFF00, 0x23, Arg0, 0x00, 0xB2) WPSX (Arg0, 0x00, 0x00, 0x00) } } Method (PS3, 1, NotSerialized) { Store (0x00, \_SB.MEM.IESI) SMBR (0xFE00, 0x23, Arg0, 0x00, 0xB2) If (LEqual (\_SB.MEM.OEAX, 0x00)) { Store (0x00, \_SB.MEM.IESI) SMBR (0xFF00, 0x23, Arg0, 0x03, 0xB2) WPSX (Arg0, 0x00, 0x00, 0x03) } } Method (WPSX, 4, NotSerialized) { Store (Arg1, \_SB.MEM.IESI) Store (Arg2, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, Arg0, 0x00, 0xB2) While (LNot (LEqual (\_SB.MEM.OECX, 0x00))) { Store (Arg1, \_SB.MEM.IESI) Store (Arg2, \_SB.MEM.IEDI) SMBR (0xFE00, 0x23, Arg0, 0x00, 0xB2) } } Method (PSC, 1, NotSerialized) { Store (0x00, \_SB.MEM.IESI) SMBR (0xFE00, 0x23, Arg0, 0x00, 0xB2) Return (\_SB.MEM.OEDX) } Method (CMPS, 2, NotSerialized) { If (LEqual (SizeOf (Arg0), SizeOf (Arg1))) { Return (One) } Else { Return (Zero) } } Method (STAL, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Return (0x09) } Else { Return (0x0B) } } Method (CRSL, 1, NotSerialized) { Name (IRQB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {} }) CreateWordField (IRQB, 0x01, INTX) If (LNot (LEqual (Arg0, 0x00))) { Name (IRQT, Package (0x10) { 0x00, 0x0200, 0x08, 0x0400, 0x10, 0x20, 0x80, 0x40, 0x02, 0x0800, 0x00, 0x1000, 0x00, 0x4000, 0x00, 0x8000 }) Store (DerefOf (Index (IRQT, Arg0)), Local0) Store (Local0, INTX) } Return (IRQB) } Mutex (MTEX, 0x00) }
Attachment:
signature.asc
Description: This is a digitally signed message part.
- References:
- Prev by Date: Re: [2.6 patch] make I/O schedulers non-modular
- Next by Date: Re: [2.6 patch] make I/O schedulers non-modular
- Previous by thread: Re: 2.6.24: Serial disabled in BIOS but serial modules still loaded (probably PnP related)
- Next by thread: Re: 2.6.24: Serial disabled in BIOS but serial modules still loaded (probably PnP related)
- Index(es):