MACHINE Tux's lil' helper

Joined: 30 Mar 2004 Posts: 141 Location: Earth
|
Posted: Sun Sep 25, 2005 3:32 am Post subject: [原创] Acer TravelMate3001解决ACPI电池问题的方法 |
|
|
1. emerge iasl
2. Copy the following code to ./acer.dsl
3. iasl -tc acer.asl
4. in kernel configuration
ACPI----------------->
Custom DSDT
< acer.dsl >
5. compile and reboot
[code:1:e836bc23c5]
DefinitionBlock ("DSDT.aml", "DSDT", 1, "INTEL ", "ALVISO ", 100925440)
{
OperationRegion (PRT0, SystemIO, 0x80, 0x04)
Field (PRT0, DWordAcc, Lock, Preserve)
{
P80H, 32
}
OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
Field (IO_T, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
Offset (0x04),
Offset (0x06),
Offset (0x08),
TRP0, 8,
Offset (0x0A),
Offset (0x0B),
Offset (0x0C),
Offset (0x0D),
Offset (0x0E),
Offset (0x0F),
Offset (0x10)
}
OperationRegion (PMIO, SystemIO, 0x1000, 0x3C)
Field (PMIO, ByteAcc, NoLock, Preserve)
{
Offset (0x28),
, 1,
HOTS, 1,
Offset (0x2A),
BAYS, 2,
Offset (0x2B),
, 3,
LIDS, 1,
Z000, 1,
Offset (0x2C),
, 1,
HOTP, 1
}
OperationRegion (GPIO, SystemIO, 0x1180, 0x3C)
Field (GPIO, ByteAcc, NoLock, Preserve)
{
GU00, 8,
GU01, 8,
GU02, 8,
GU03, 8,
GIO0, 8,
GIO1, 8,
GIO2, 8,
GIO3, 8,
Offset (0x0C),
GL00, 8,
GL01, 8,
BAYO, 1,
, 4,
GP21, 1,
, 1,
BAYR, 1,
, 1,
GP25, 1,
Offset (0x10),
Offset (0x18),
GB00, 8,
GB01, 8,
GB02, 8,
GB03, 8,
Offset (0x2C),
GIV0, 8,
, 3,
LIDP, 1,
Z001, 1,
Offset (0x2E),
GIV2, 8,
GIV3, 8,
GU04, 8,
GU05, 8,
GU06, 8,
GU07, 8,
GIO4, 8,
GIO5, 8,
GIO6, 8,
GIO7, 8,
, 1,
GP33, 1,
Offset (0x39),
GL05, 8,
GL06, 8,
GL07, 8
}
OperationRegion (MNVS, SystemMemory, 0x3F685D2C, 0x0100)
Field (MNVS, AnyAcc, Lock, Preserve)
{
OSYS, 16,
SMIF, 8,
PRM0, 8,
PRM1, 8,
SCIF, 8,
PRM2, 8,
PRM3, 8,
Offset (0x09),
Offset (0x0A),
Offset (0x0B),
P80D, 32,
Offset (0x10),
Offset (0x11),
Offset (0x12),
Offset (0x14),
Offset (0x1E),
Offset (0x28),
APIC, 8,
CPUL, 8,
CPUH, 8,
GV3E, 8,
HTTE, 8,
WTHT, 8,
Offset (0x32),
Offset (0x3C),
IGDS, 8,
TLST, 8,
CADL, 8,
PADL, 8,
CSTE, 16,
NSTE, 16,
SSTE, 16,
NDID, 8,
DID1, 32,
DID2, 32,
DID3, 32,
DID4, 32,
DID5, 32,
Offset (0x67),
Offset (0x69),
Offset (0x6E),
Offset (0x78),
D400, 8,
Offset (0x82),
GTF0, 56,
GTF2, 56,
IDEM, 8
}
OperationRegion (RCRB, SystemMemory, 0xF0008000, 0x4000)
Field (RCRB, DWordAcc, Lock, Preserve)
{
Offset (0x1000),
Offset (0x3000),
Offset (0x3404),
HPAS, 2,
, 5,
HPAE, 1,
Offset (0x3418),
, 1,
PATD, 1,
SATD, 1,
SMBD, 1,
AZAD, 1,
A97D, 1,
Offset (0x341A),
RP1D, 1,
RP2D, 1,
RP3D, 1,
RP4D, 1
}
Mutex (MUTX, 0x00)
Name (_S0, Package (0x03)
{
0x00,
0x00,
0x00
})
Name (_S3, Package (0x03)
{
0x05,
0x05,
0x00
})
Name (_S4, Package (0x03)
{
0x06,
0x06,
0x00
})
Name (_S5, Package (0x03)
{
0x07,
0x07,
0x00
})
Scope (\_PR)
{
Processor (CPU0, 0x00, 0x00001010, 0x06) {}
Processor (CPU1, 0x01, 0x00001010, 0x06) {}
}
Name (\DSEN, 0x00)
Name (\ECON, 0x00)
Name (\GPIC, 0x00)
Name (\CTYP, 0x00)
Name (\L01C, 0x00)
Name (\INSX, 0x00)
Method (\_PIC, 1, NotSerialized)
{
Store (Arg0, GPIC)
}
Method (_PTS, 1, NotSerialized)
{
Store (0x00, P80D)
P8XH (0x00, Arg0)
If (LEqual (Arg0, 0x04))
{
Store (0x01, INS4)
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
Store (0x01, \_SB.PCI0.LPCB.EC0.FLS4)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
}
If (\_SB.ECOK)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
If (LEqual (\_SB.PCI0.PCIB.LANC.LANP, 0x00))
{
Store (0x00, \_SB.PCI0.LPCB.EC0.VAUX)
}
Else
{
Store (0x01, \_SB.PCI0.LPCB.EC0.VAUX)
}
Release (\_SB.PCI0.LPCB.EC0.MUT1)
}
\_SB.PHSR (0x08, 0x00)
Store (0x00, HOTP)
}
Method (_WAK, 1, NotSerialized)
{
P8XH (0x00, 0x00)
If (LEqual (Arg0, 0x03))
{
\_SB.PHSR (0x00, 0x00)
Store (0x01, INSX)
}
If (LEqual (Arg0, 0x04))
{
\_SB.PHSR (0x09, 0x00)
Store (0x00, INS4)
}
\_SB.PHSR (0x08, 0x01)
If (Z001)
{
If (LEqual (\_SB.PCI0.DOCK.DCKS, 0x00))
{
XOr (Z001, 0x01, Z001)
Store (0x00, Z001)
}
}
Else
{
If (LEqual (\_SB.PCI0.DOCK.DCKS, 0x01))
{
XOr (Z001, 0x01, Z001)
Store (0x01, Z001)
}
}
If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x03)))
{
Store (\_SB.BTEN, \_SB.PCI0.LPCB.EC0.BLTH)
Store (\_SB.WLAN, \_SB.PCI0.LPCB.EC0.WLAN)
Store (0x01, \_SB.PCI0.LPCB.EC0.CPLE)
}
Return (Package (0x02)
{
0x00,
0x00
})
}
Scope (\_GPE)
{
Method (_L01, 0, NotSerialized)
{
Add (L01C, 0x01, L01C)
P8XH (0x00, 0x01)
P8XH (0x01, L01C)
Sleep (0x64)
If (\_SB.PCI0.RP01.HPCS)
{
If (\_SB.PCI0.RP01.PDC1)
{
Store (0x01, \_SB.PCI0.RP01.PDC1)
}
Store (0x01, \_SB.PCI0.RP01.HPCS)
Sleep (0x64)
Notify (\_SB.PCI0.RP01, 0x00)
Sleep (0x64)
}
If (\_SB.PCI0.RP02.HPCS)
{
If (\_SB.PCI0.RP02.PDC2)
{
Store (0x01, \_SB.PCI0.RP02.PDC2)
}
Store (0x01, \_SB.PCI0.RP02.HPCS)
Sleep (0x64)
Notify (\_SB.PCI0.RP02, 0x00)
Sleep (0x64)
}
If (\_SB.PCI0.RP03.HPCS)
{
If (\_SB.PCI0.RP03.PDC3)
{
Sleep (0x01F4)
\_SB.PHSR (0x07, 0x00)
Sleep (0x01F4)
Store (0x00, INSX)
Store (0x01, \_SB.PCI0.RP03.PDC3)
}
Store (0x01, \_SB.PCI0.RP03.HPCS)
}
If (\_SB.PCI0.RP04.HPCS)
{
If (\_SB.PCI0.RP04.PDC4)
{
Store (0x01, \_SB.PCI0.RP04.PDC4)
}
Store (0x01, \_SB.PCI0.RP04.HPCS)
}
}
Method (_L03, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB1, 0x02)
}
Method (_L04, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB2, 0x02)
}
Method (_L05, 0, NotSerialized)
{
If (AZAD) {}
Else
{
Notify (\_SB.PCI0.AZAL, 0x02)
}
}
Method (_L09, 0, NotSerialized)
{
If (\_SB.PCI0.RP01.PSP1)
{
Store (0x01, \_SB.PCI0.RP01.PSP1)
Store (0x01, \_SB.PCI0.RP01.PMCS)
Notify (\_SB.PCI0.RP01, 0x02)
}
If (\_SB.PCI0.RP02.PSP2)
{
Store (0x01, \_SB.PCI0.RP02.PSP2)
Store (0x01, \_SB.PCI0.RP02.PMCS)
Notify (\_SB.PCI0.RP02, 0x02)
}
If (\_SB.PCI0.RP03.PSP3)
{
Store (0x01, \_SB.PCI0.RP03.PSP3)
Store (0x01, \_SB.PCI0.RP03.PMCS)
Notify (\_SB.PCI0.RP03, 0x02)
}
If (\_SB.PCI0.RP04.PSP4)
{
Store (0x01, \_SB.PCI0.RP04.PSP4)
Store (0x01, \_SB.PCI0.RP04.PMCS)
Notify (\_SB.PCI0.RP04, 0x02)
}
}
Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PCI0.PCIB, 0x02)
}
Method (_L0C, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB3, 0x02)
}
Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB7, 0x02)
}
Method (_L0E, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB4, 0x02)
}
Method (_L1B, 0, NotSerialized)
{
Notify (\_SB.LID, 0x80)
}
Method (_L1C, 0, NotSerialized)
{
Sleep (0x012C)
Store (0x01, Z000)
Store (Z000, Local1)
External (CFGD)
If (LEqual (Local1, 0x01))
{
Store (Z001, Local0)
If (Local0)
{
Or (CFGD, 0xC0, CFGD)
Notify (\_PR.CPU0, 0x81)
Sleep (0x012C)
Store (0x01, \_SB.PCI0.LPCB.C4C3)
Store (0x1C, P80H)
If (LEqual (\_SB.PCI0.RP03.Z002, 0x01))
{
Store (0x1E, P80H)
Store (0x00, \_SB.PCI0.RP03.Z002)
Sleep (0x01F4)
Store (0x01, \_SB.PCI0.RP03.LDP3)
Notify (\_SB.PCI0.RP03, 0x00)
Sleep (0x07D0)
}
Store (0x00, \_SB.PCI0.DOCK.DCKS)
Notify (\_SB.PCI0.DOCK, 0x01)
}
Else
{
And (CFGD, 0x3F, CFGD)
Notify (\_PR.CPU0, 0x81)
Sleep (0x012C)
Store (0x00, \_SB.PCI0.LPCB.C4C3)
Store (0x1D, P80H)
Store (0x01, \_SB.PCI0.DOCK.DCKS)
Store (0x00, \_SB.PCI0.RP03.LDP3)
Sleep (0x01F4)
Store (0x01, \_SB.PCI0.RP03.Z002)
Sleep (0x0BB8)
Notify (\_SB.PCI0.DOCK, 0x00)
}
XOr (Z001, 0x01, Z001)
}
}
}
Method (GETB, 3, Serialized)
{
Multiply (Arg0, 0x08, Local0)
Multiply (Arg1, 0x08, Local1)
CreateField (Arg2, Local0, Local1, TBF3)
Return (TBF3)
}
Method (HKDS, 1, Serialized)
{
If (LEqual (0x00, DSEN))
{
Store (Arg0, SMIF)
Store (0x00, TRP0)
If (LEqual (SMIF, 0x00))
{
If (LNot (LEqual (CADL, PADL)))
{
Store (CADL, PADL)
If (LEqual (OSYS, 0x07D1))
{
Notify (\_SB.PCI0, 0x00)
}
Else
{
Notify (\_SB.PCI0.GFX0, 0x00)
}
Sleep (0x02EE)
}
Notify (\_SB.PCI0.GFX0, 0x80)
}
}
If (LEqual (0x01, DSEN))
{
Store (Increment (Arg0), SMIF)
Store (0x00, TRP0)
If (LEqual (SMIF, 0x00))
{
Notify (\_SB.PCI0.GFX0, 0x81)
}
}
}
Method (LSDS, 1, Serialized)
{
If (Arg0)
{
HKDS (0x0C)
}
Else
{
HKDS (0x0E)
}
If (LNot (LEqual (DSEN, 0x01)))
{
Sleep (0x32)
While (LEqual (DSEN, 0x02))
{
Sleep (0x32)
}
}
}
Method (P8XH, 2, Serialized)
{
If (LEqual (Arg0, 0x00))
{
Store (Or (And (P80D, 0xFFFFFF00), Arg1), P80D)
}
If (LEqual (Arg0, 0x01))
{
Store (Or (And (P80D, 0xFFFF00FF), ShiftLeft (Arg1, 0x08)), P80D)
}
If (LEqual (Arg0, 0x02))
{
Store (Or (And (P80D, 0xFF00FFFF), ShiftLeft (Arg1, 0x10)), P80D)
}
If (LEqual (Arg0, 0x03))
{
Store (Or (And (P80D, 0x00FFFFFF), ShiftLeft (Arg1, 0x18)), P80D)
}
Store (P80D, P80H)
}
Method (PNOT, 0, Serialized)
{
External (PDC0)
External (PDC1)
If (HTTE)
{
If (LEqual (And (PDC0, 0x0A), 0x0A))
{
Notify (\_PR.CPU0, 0x80)
}
If (LEqual (And (PDC1, 0x0A), 0x0A))
{
Notify (\_PR.CPU1, 0x80)
}
}
Else
{
Notify (\_PR.CPU0, 0x80)
Sleep (0x64)
Notify (\_PR.CPU0, 0x81)
}
}
Method (VTOB, 1, NotSerialized)
{
Store (0x01, Local0)
ShiftLeft (Local0, Arg0, Local0)
Return (Local0)
}
Method (BTOV, 1, NotSerialized)
{
ShiftRight (Arg0, 0x01, Local0)
Store (0x00, Local1)
While (Local0)
{
Increment (Local1)
ShiftRight (Local0, 0x01, Local0)
}
Return (Local1)
}
Method (MKWD, 2, NotSerialized)
{
If (And (Arg1, 0x80))
{
Store (0xFFFF0000, Local0)
}
Else
{
Store (Zero, Local0)
}
Or (Local0, Arg0, Local0)
Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
Return (Local0)
}
Method (POSW, 1, NotSerialized)
{
If (And (Arg0, 0x8000))
{
If (LEqual (Arg0, 0xFFFF))
{
Return (0xFFFFFFFF)
}
Else
{
Not (Arg0, Local0)
Increment (Local0)
And (Local0, 0xFFFF, Local0)
Return (Local0)
}
}
Else
{
Return (Arg0)
}
}
Method (GBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (TIDX, Arg2)
}
Method (PBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (Arg2, TIDX)
}
Method (ITOS, 1, NotSerialized)
{
Store (Buffer (0x09)
{
0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00
}, Local0)
Store (Buffer (0x11)
{
"0123456789ABCDEF"
}, Local7)
Store (0x08, Local1)
Store (0x00, Local2)
Store (0x00, Local3)
While (Local1)
{
Decrement (Local1)
And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
If (Local4)
{
Store (Ones, Local3)
}
If (Local3)
{
GBFE (Local7, Local4, RefOf (Local5))
PBFE (Local0, Local2, Local5)
Increment (Local2)
}
}
Return (Local0)
}
Method (GETP, 1, Serialized)
{
If (LEqual (And (Arg0, 0x09), 0x00))
{
Return (0xFFFFFFFF)
}
If (LEqual (And (Arg0, 0x09), 0x08))
{
Return (0x0384)
}
ShiftRight (And (Arg0, 0x0300), 0x08, Local0)
ShiftRight (And (Arg0, 0x3000), 0x0C, Local1)
Return (Multiply (0x1E, Subtract (0x09, Add (Local0, Local1))))
}
Method (GDMA, 5, Serialized)
{
If (Arg0)
{
If (LAnd (Arg1, Arg4))
{
Return (0x14)
}
If (LAnd (Arg2, Arg4))
{
Return (Multiply (Subtract (0x04, Arg3), 0x0F))
}
Return (Multiply (Subtract (0x04, Arg3), 0x1E))
}
Return (0xFFFFFFFF)
}
Method (GETT, 1, Serialized)
{
Return (Multiply (0x1E, Subtract (0x09, Add (And (ShiftRight (Arg0, 0x02), 0x03), And (Arg0, 0x03)))))
}
Method (GETF, 3, Serialized)
{
Name (TMPF, 0x00)
If (Arg0)
{
Or (TMPF, 0x01, TMPF)
}
If (And (Arg2, 0x02))
{
Or (TMPF, 0x02, TMPF)
}
If (Arg1)
{
Or (TMPF, 0x04, TMPF)
}
If (And (Arg2, 0x20))
{
Or (TMPF, 0x08, TMPF)
}
If (And (Arg2, 0x4000))
{
Or (TMPF, 0x10, TMPF)
}
Return (TMPF)
}
Method (SETP, 3, Serialized)
{
If (LGreater (Arg0, 0xF0))
{
Return (0x08)
}
Else
{
If (And (Arg1, 0x02))
{
If (LAnd (LNot (LGreater (Arg0, 0x78)), And (Arg2, 0x02)))
{
Return (0x2301)
}
If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
{
Return (0x2101)
}
}
Return (0x1001)
}
}
Method (SDMA, 1, Serialized)
{
If (LNot (LGreater (Arg0, 0x14)))
{
Return (0x01)
}
If (LNot (LGreater (Arg0, 0x1E)))
{
Return (0x02)
}
If (LNot (LGreater (Arg0, 0x2D)))
{
Return (0x01)
}
If (LNot (LGreater (Arg0, 0x3C)))
{
Return (0x02)
}
If (LNot (LGreater (Arg0, 0x5A)))
{
Return (0x01)
}
Return (0x00)
}
Method (SETT, 3, Serialized)
{
If (And (Arg1, 0x02))
{
If (LAnd (LNot (LGreater (Arg0, 0x78)), And (Arg2, 0x02)))
{
Return (0x0B)
}
If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
{
Return (0x09)
}
}
Return (0x04)
}
OperationRegion (NV1, SystemIO, 0x72, 0x02)
Field (NV1, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x6E),
INS4, 1,
Offset (0x70),
DLST, 8
}
Scope (\_SB)
{
Name (ECOK, 0x00)
Device (PCI0)
{
Method (_INI, 0, NotSerialized)
{
If (CondRefOf (_OSI, Local0))
{
Store (0x07D1, OSYS)
If (HTTE)
{
Store (0x32, SMIF)
Store (0x00, TRP0)
}
}
Else
{
If (LOr (LEqual (SizeOf (_OS), 0x14), LEqual (SizeOf (_OS), 0x05)))
{
Store (0x07D0, OSYS)
Store (0x35, SMIF)
Store (0x00, TRP0)
}
Else
{
If (LEqual (SizeOf (_OS), 0x27))
{
Store (0x07CF, OSYS)
}
Else
{
Store (0x07CE, OSYS)
}
}
}
If (LNot (LGreater (OSYS, 0x07CF)))
{
Store (0x01, ECON)
Store (0x2B, SMIF)
Store (0x00, TRP0)
PNOT ()
}
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Name (_HID, EisaId ("PNP0A08"))
Name (_CID, 0x030AD041)
Name (_ADR, 0x00)
Name (_BBN, 0x00)
OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
Field (HBUS, DWordAcc, NoLock, Preserve)
{
Offset (0x14),
, 1,
PEGA, 1,
Offset (0x50),
, 4,
PM0H, 2,
Offset (0x51),
PM1L, 2,
, 2,
PM1H, 2,
Offset (0x52),
PM2L, 2,
, 2,
PM2H, 2,
Offset (0x53),
PM3L, 2,
, 2,
PM3H, 2,
Offset (0x54),
PM4L, 2,
, 2,
PM4H, 2,
Offset (0x55),
PM5L, 2,
, 2,
PM5H, 2,
Offset (0x56),
PM6L, 2,
, 2,
PM6H, 2,
Offset (0x57),
, 7,
HENA, 1,
Offset (0x5C),
, 3,
TOUD, 5
}
Name (BUF0, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Address Space Granularity
0x0000, // Address Range Minimum
0x00FF, // Address Range Maximum
0x0000, // Address Translation Offset
//0x0100, 0x00,,)
0x0100, ,,)
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x00000000, // Address Space Granularity
0x00000000, // Address Range Minimum
0x00000CF7, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00000CF8, 0x00,,
0x00000CF8, ,,
, TypeStatic)
IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x00000000, // Address Space Granularity
0x00000D00, // Address Range Minimum
0x0000BFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x0000B300, 0x00,,
0x0000B300, ,,
, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000A0000, // Address Range Minimum
0x000BFFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00020000, 0x00,,
0x00020000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000C0000, // Address Range Minimum
0x000C3FFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00004000, 0x00,,
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000C4000, // Address Range Minimum
0x000C7FFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00004000, 0x00,,
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000C8000, // Address Range Minimum
0x000CBFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00004000, 0x00,,
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000CC000, // Address Range Minimum
0x000CFFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00004000, 0x00,,
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000D0000, // Address Range Minimum
0x000D3FFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00004000, 0x00,,
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000D4000, // Address Range Minimum
0x000D7FFF, // Address Range Maximum
0x00000000, // Address Translation Offset
//0x00004000, 0x00,,
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000D8000, // Address Range Minimum
0x000DBFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000DC000, // Address Range Minimum
0x000DFFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000E0000, // Address Range Minimum
0x000E3FFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000E4000, // Address Range Minimum
0x000E7FFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000E8000, // Address Range Minimum
0x000EBFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000EC000, // Address Range Minimum
0x000EFFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00004000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x000F0000, // Address Range Minimum
0x000FFFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00010000, ,,
, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Address Space Granularity
0x00000000, // Address Range Minimum
0xFEBFFFFF, // Address Range Maximum
0x00000000, // Address Translation Offset
0x00000000, ,,
, AddressRangeMemory, TypeStatic)
})
Method (_CRS, 0, Serialized)
{
If (PM1L)
{
CreateDWordField (BUF0, 0x80, C0LN)
Store (Zero, C0LN)
}
If (LEqual (PM1L, 0x01))
{
CreateBitField (BUF0, 0x0378, C0RW)
Store (Zero, C0RW)
}
If (PM1H)
{
CreateDWordField (BUF0, 0x9B, C4LN)
Store (Zero, C4LN)
}
If (LEqual (PM1H, 0x01))
{
CreateBitField (BUF0, 0x0450, C4RW)
Store (Zero, C4RW)
}
If (PM2L)
{
CreateDWordField (BUF0, 0xB6, C8LN)
Store (Zero, C8LN)
}
If (LEqual (PM2L, 0x01))
{
CreateBitField (BUF0, 0x0528, C8RW)
Store (Zero, C8RW)
}
If (PM2H)
{
CreateDWordField (BUF0, 0xD1, CCLN)
Store (Zero, CCLN)
}
If (LEqual (PM2H, 0x01))
{
CreateBitField (BUF0, 0x0600, CCRW)
Store (Zero, CCRW)
}
If (PM3L)
{
CreateDWordField (BUF0, 0xEC, D0LN)
Store (Zero, D0LN)
}
If (LEqual (PM3L, 0x01))
{
CreateBitField (BUF0, 0x06D8, D0RW)
Store (Zero, D0RW)
}
If (PM3H)
{
CreateDWordField (BUF0, 0x0107, D4LN)
Store (Zero, D4LN)
}
If (LEqual (PM3H, 0x01))
{
CreateBitField (BUF0, 0x07B0, D4RW)
Store (Zero, D4RW)
}
If (PM4L)
{
CreateDWordField (BUF0, 0x0122, D8LN)
Store (Zero, D8LN)
}
If (LEqual (PM4L, 0x01))
{
CreateBitField (BUF0, 0x0888, D8RW)
Store (Zero, D8RW)
}
If (PM4H)
{
CreateDWordField (BUF0, 0x013D, DCLN)
Store (Zero, DCLN)
}
If (LEqual (PM4H, 0x01))
{
CreateBitField (BUF0, 0x0960, DCRW)
Store (Zero, DCRW)
}
If (PM5L)
{
CreateDWordField (BUF0, 0x0158, E0LN)
Store (Zero, E0LN)
}
If (LEqual (PM5L, 0x01))
{
CreateBitField (BUF0, 0x0A38, E0RW)
Store (Zero, E0RW)
}
If (PM5H)
{
CreateDWordField (BUF0, 0x0173, E4LN)
Store (Zero, E4LN)
}
If (LEqual (PM5H, 0x01))
{
CreateBitField (BUF0, 0x0B10, E4RW)
Store (Zero, E4RW)
}
If (PM6L)
{
CreateDWordField (BUF0, 0x018E, E8LN)
Store (Zero, E8LN)
}
If (LEqual (PM6L, 0x01))
{
CreateBitField (BUF0, 0x0BE8, E8RW)
Store (Zero, E8RW)
}
If (PM6H)
{
CreateDWordField (BUF0, 0x01A9, ECLN)
Store (Zero, ECLN)
}
If (LEqual (PM6H, 0x01))
{
CreateBitField (BUF0, 0x0CC0, ECRW)
Store (Zero, ECRW)
}
If (PM0H)
{
CreateDWordField (BUF0, 0x01C4, F0LN)
Store (Zero, F0LN)
}
If (LEqual (PM0H, 0x01))
{
CreateBitField (BUF0, 0x0D98, F0RW)
Store (Zero, F0RW)
}
CreateDWordField (BUF0, 0x01D3, M1MN)
CreateDWordField (BUF0, 0x01D7, M1MX)
CreateDWordField (BUF0, 0x01DF, M1LN)
ShiftLeft (TOUD, 0x1B, M1MN)
Add (Subtract (M1MX, M1MN), 0x01, M1LN)
Return (BUF0)
}
Device (PDRC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x01)
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite, 0xE0000000, 0x10000000)
Memory32Fixed (ReadWrite, 0xF0000000, 0x00004000)
Memory32Fixed (ReadWrite, 0xF0004000, 0x00001000)
Memory32Fixed (ReadWrite, 0xF0005000, 0x00001000)
Memory32Fixed (ReadWrite, 0xF0008000, 0x00004000)
Memory32Fixed (ReadWrite, 0xFED20000, 0x00070000)
})
}
Method (_PRT, 0, NotSerialized)
{
If (GPIC)
{
Return (Package (0x11)
{
Package (0x04)
{
0x0001FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0002FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0007FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x001BFFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x001CFFFF,
0x00,
0x00,
0x11
},
Package (0x04)
{
0x001CFFFF,
0x01,
0x00,
0x10
},
Package (0x04)
{
0x001CFFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x001CFFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x001DFFFF,
0x00,
0x00,
0x17
},
Package (0x04)
{
0x001DFFFF,
0x01,
0x00,
0x13
},
Package (0x04)
{
0x001DFFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x001DFFFF,
0x03,
0x00,
0x10
},
Package (0x04)
{
0x001EFFFF,
0x00,
0x00,
0x11
},
Package (0x04)
{
0x001EFFFF,
0x01,
0x00,
0x14
},
Package (0x04)
{
0x001FFFFF,
0x00,
0x00,
0x12
},
Package (0x04)
{
0x001FFFFF,
0x01,
0x00,
0x13
},
Package (0x04)
{
0x001FFFFF,
0x03,
0x00,
0x10
}
})
}
Else
{
Return (Package (0x11)
{
Package (0x04)
{
0x0001FFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00
},
Package (0x04)
{
0x001BFFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x00,
\_SB.PCI0.LPCB.LNKB,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x01,
\_SB.PCI0.LPCB.LNKA,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x02,
\_SB.PCI0.LPCB.LNKC,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x03,
\_SB.PCI0.LPCB.LNKD,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x00,
\_SB.PCI0.LPCB.LNKH,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x01,
\_SB.PCI0.LPCB.LNKD,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x02,
\_SB.PCI0.LPCB.LNKC,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x03,
\_SB.PCI0.LPCB.LNKA,
0x00
},
Package (0x04)
{
0x001EFFFF,
0x00,
\_SB.PCI0.LPCB.LNKB,
0x00
},
Package (0x04)
{
0x001EFFFF,
0x01,
\_SB.PCI0.LPCB.LNKE,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x00,
\_SB.PCI0.LPCB.LNKC,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x01,
\_SB.PCI0.LPCB.LNKD,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x03,
\_SB.PCI0.LPCB.LNKA,
0x00
}
})
}
}
Device (GFX0)
{
Name (_ADR, 0x00020000)
Method (_STA, 0, NotSerialized)
{
If (PEGA)
{
Return (0x00)
}
Else
{
Return (0x0F)
}
}
OperationRegion (VNVS, SystemMemory, 0x3F685E2C, 0x00010000)
Field (VNVS, AnyAcc, Lock, Preserve)
{
VBF1, 262144,
VBF2, 262144
}
Method (_DOS, 1, NotSerialized)
{
Store (And (Arg0, 0x03), DSEN)
}
Method (_DOD, 0, NotSerialized)
{
If (LEqual (NDID, 0x01))
{
Name (TMP1, Package (0x01)
{
0xFFFFFFFF
})
Store (Or (0x00010000, DID1), Index (TMP1, 0x00))
Return (TMP1)
}
If (LEqual (NDID, 0x02))
{
Name (TMP2, Package (0x02)
{
0xFFFFFFFF,
0xFFFFFFFF
})
Store (Or (0x00010000, DID1), Index (TMP2, 0x00))
Store (Or (0x00010000, DID2), Index (TMP2, 0x01))
Return (TMP2)
}
If (LEqual (NDID, 0x03))
{
Name (TMP3, Package (0x03)
{
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Store (Or (0x00010000, DID1), Index (TMP3, 0x00))
Store (Or (0x00010000, DID2), Index (TMP3, 0x01))
Store (Or (0x00010000, DID3), Index (TMP3, 0x02))
Return (TMP3)
}
If (LEqual (NDID, 0x04))
{
Name (TMP4, Package (0x04)
{
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Store (Or (0x00010000, DID1), Index (TMP4, 0x00))
Store (Or (0x00010000, DID2), Index (TMP4, 0x01))
Store (Or (0x00010000, DID3), Index (TMP4, 0x02))
Store (Or (0x00010000, DID4), Index (TMP4, 0x03))
Return (TMP4)
}
Name (TMP5, Package (0x05)
{
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Store (Or (0x00010000, DID1), Index (TMP5, 0x00))
Store (Or (0x00010000, DID2), Index (TMP5, 0x01))
Store (Or (0x00010000, DID3), Index (TMP5, 0x02))
Store (Or (0x00010000, DID4), Index (TMP5, 0x03))
Store (Or (0x00010000, DID5), Index (TMP5, 0x04))
Return (TMP5)
}
Method (_ROM, 2, NotSerialized)
{
If (LNot (LLess (Arg0, 0x8000)))
{
Return (GETB (Subtract (Arg0, 0x8000), Arg1, VBF2))
}
If (LGreater (Add (Arg0, Arg1), 0x8000))
{
Subtract (0x8000, Arg0, Local0)
Subtract (Arg1, Local0, Local1)
Store (GETB (Arg0, Local0, VBF1), Local3)
Store (GETB (0x00, Local1, VBF2), Local4)
Concatenate (Local3, Local4, Local5)
Return (Local5)
}
Return (GETB (Arg0, Arg1, VBF1))
}
Device (DD01)
{
Method (_ADR, 0, Serialized)
{
Return (And (0xFFFF, DID1))
}
Method (_DCS, 0, NotSerialized)
{
Store (0x01, SMIF)
Store (0x00, TRP0)
If (And (CSTE, 0x01))
{
Return (0x1F)
}
Return (0x1D)
}
Method (_DGS, 0, NotSerialized)
{
If (And (NSTE, 0x01))
{
Return (0x01)
}
Return (0x00)
}
Method (_DSS, 1, NotSerialized)
{
If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
{
Store (NSTE, CSTE)
}
}
}
Device (DD02)
{
Method (_ADR, 0, Serialized)
{
Return (And (0xFFFF, DID2))
}
Method (_DCS, 0, NotSerialized)
{
Store (0x01, SMIF)
Store (0x00, TRP0)
If (And (CSTE, 0x02))
{
Return (0x1F)
}
Return (0x1D)
}
Method (_DGS, 0, NotSerialized)
{
If (And (NSTE, 0x02))
{
Return (0x01)
}
Return (0x00)
}
Method (_DSS, 1, NotSerialized)
{
If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
{
Store (NSTE, CSTE)
}
}
}
Device (DD03)
{
Method (_ADR, 0, Serialized)
{
Return (And (0xFFFF, DID3))
}
Method (_DCS, 0, NotSerialized)
{
Store (0x01, SMIF)
Store (0x00, TRP0)
If (And (CSTE, 0x04))
{
Return (0x1F)
}
Return (0x1D)
}
Method (_DGS, 0, NotSerialized)
{
If (And (NSTE, 0x04))
{
Return (0x01)
}
Return (0x00)
}
Method (_DSS, 1, NotSerialized)
{
If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
{
Store (NSTE, CSTE)
}
}
}
Device (DD04)
{
Method (_ADR, 0, Serialized)
{
Return (And (0xFFFF, DID4))
}
Method (_DCS, 0, NotSerialized)
{
Store (0x01, SMIF)
Store (0x00, TRP0)
If (And (CSTE, 0x08))
{
Return (0x1F)
}
Return (0x1D)
}
Method (_DGS, 0, NotSerialized)
{
If (And (NSTE, 0x08))
{
Return (0x01)
}
Return (0x00)
}
Method (_DSS, 1, NotSerialized)
{
If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
{
Store (NSTE, CSTE)
}
}
}
Device (DD05)
{
Method (_ADR, 0, Serialized)
{
Return (And (0xFFFF, DID5))
}
Method (_DCS, 0, NotSerialized)
{
Store (0x01, SMIF)
Store (0x00, TRP0)
If (And (CSTE, 0x10))
{
Return (0x1F)
}
_________________ Hi, Gentoo men!! |
|