各种方法都试过了,已经替换8位以上参数还是不行(都是32改8),BAT0代码如下,有没有大神帮看一下(附件在下面):
Device (BAT0)
{
Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Name (BFCC, Zero)
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (^^PCI0.LPCB.EC.ECOK)
{
If (^^PCI0.LPCB.EC.BAT0)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
Else
{
Return (0x0F)
}
}
Name (PBIF, Package (0x0D)
{
One,
0xFFFF,
0xFFFF,
One,
0x39D0,
Zero,
Zero,
0x40,
0x40,
"BAT",
"0001",
"LION",
"Notebook"
})
Method (IVBI, 0, NotSerialized)
{
Store (0xFFFF, Index (PBIF, One))
Store (0xFFFF, Index (PBIF, 0x02))
Store (0xFFFF, Index (PBIF, 0x04))
Store (" ", Index (PBIF, 0x09))
Store (" ", Index (PBIF, 0x0A))
Store (" ", Index (PBIF, 0x0B))
Store (" ", Index (PBIF, 0x0C))
Store (Zero, BFCC)
}
Method (UPBI, 0, NotSerialized)
{
If (^^PCI0.LPCB.EC.BAT0)
{
And (B1B4(^^PCI0.LPCB.EC.SDC0,^^PCI0.LPCB.EC.SDC1,^^PCI0.LPCB.EC.SDC2,^^PCI0.LPCB.EC.SDC3), 0xFFFF, Local0)
Store (Local0, Index (PBIF, One))
And (B1B4(^^PCI0.LPCB.EC.SFC0,^^PCI0.LPCB.EC.SFC1,^^PCI0.LPCB.EC.SFC2,^^PCI0.LPCB.EC.SFC3), 0xFFFF, Local0)
Store (Local0, Index (PBIF, 0x02))
Store (Local0, BFCC)
And (B1B4(^^PCI0.LPCB.EC.SDV0,^^PCI0.LPCB.EC.SDV1,^^PCI0.LPCB.EC.SDV2,^^PCI0.LPCB.EC.SDV3), 0xFFFF, Local0)
Store (Local0, Index (PBIF, 0x04))
And (B1B4(^^PCI0.LPCB.EC.SCW0,^^PCI0.LPCB.EC.SCW1,^^PCI0.LPCB.EC.SCW2,^^PCI0.LPCB.EC.SCW3), 0xFFFF, Local0)
Store (Local0, Index (PBIF, 0x05))
And (B1B4(^^PCI0.LPCB.EC.SCL0,^^PCI0.LPCB.EC.SCL1,^^PCI0.LPCB.EC.SCL2,^^PCI0.LPCB.EC.SCL3), 0xFFFF, Local0)
Store (Local0, Index (PBIF, 0x06))
Store ("BAT", Index (PBIF, 0x09))
Store ("0001", Index (PBIF, 0x0A))
Store ("LION", Index (PBIF, 0x0B))
Store ("Notebook", Index (PBIF, 0x0C))
}
Else
{
IVBI ()
}
}
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
If (^^PCI0.LPCB.EC.ECOK)
{
UPBI ()
}
Else
{
IVBI ()
}
Return (PBIF)
}
Name (PBST, Package (0x04)
{
Zero,
0xFFFF,
0xFFFF,
0x3D90
})
Method (IVBS, 0, NotSerialized)
{
Store (Zero, Index (PBST, Zero))
Store (0xFFFF, Index (PBST, One))
Store (0xFFFF, Index (PBST, 0x02))
Store (0x2710, Index (PBST, 0x03))
}
Method (UPBS, 0, NotSerialized)
{
If (^^PCI0.LPCB.EC.BAT0)
{
Store (Zero, Local0)
Store (Zero, Local1)
If (^^AC.ACFG)
{
If (LEqual (And (B1B4(^^PCI0.LPCB.EC.SST0,^^PCI0.LPCB.EC.SST1,^^PCI0.LPCB.EC.SST2,^^PCI0.LPCB.EC.SST3), 0x02), 0x02))
{
Or (Local0, 0x02, Local0)
And (B1B4(^^PCI0.LPCB.EC.SPR0,^^PCI0.LPCB.EC.SPR1,^^PCI0.LPCB.EC.SPR2,^^PCI0.LPCB.EC.SPR3), 0xFFFF, Local1)
}
}
Else
{
Or (Local0, One, Local0)
And (B1B4(^^PCI0.LPCB.EC.SPR0,^^PCI0.LPCB.EC.SPR1,^^PCI0.LPCB.EC.SPR2,^^PCI0.LPCB.EC.SPR3), 0xFFFF, Local1)
}
And (Local1, 0x8000, Local7)
If (LEqual (Local7, 0x8000))
{
XOr (Local1, 0xFFFF, Local1)
}
And (B1B4(^^PCI0.LPCB.EC.SRC0,^^PCI0.LPCB.EC.SRC1,^^PCI0.LPCB.EC.SRC2,^^PCI0.LPCB.EC.SRC3), 0xFFFF, Local2)
And (B1B4(^^PCI0.LPCB.EC.SPV0,^^PCI0.LPCB.EC.SPV1,^^PCI0.LPCB.EC.SPV2,^^PCI0.LPCB.EC.SPV3), 0xFFFF, Local3)
Store (Local0, Index (PBST, Zero))
Store (Local1, Index (PBST, One))
Store (Local2, Index (PBST, 0x02))
(Local3, Index (PBST, 0x03))
If (LNotEqual (BFCC, B1B4(^^PCI0.LPCB.EC.SFC0,^^PCI0.LPCB.EC.SFC1,^^PCI0.LPCB.EC.SFC2,^^PCI0.LPCB.EC.SFC3)))
{
Notify (BAT0, 0x81)
}
}
Else
{
IVBS ()
}
}
Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
If (^^PCI0.LPCB.EC.ECOK)
{
UPBS ()
}
Else
{
IVBS ()
}