查看: 2101|回复: 6

[已解决] 求高手帮忙看一下我的DSDT,解决一下电量显示问题

[复制链接]
haotiangood 发表于 2014-10-30 10:05 | 显示全部楼层 |阅读模式
快御云安全
本帖最后由 haotiangood 于 2014-10-30 13:26 编辑

情况是这样的:ML时代dsdt+ACPIBatteryManager电量显示正常
现在在用Mavericks 10.9.5
dsdt按照rehabman的教程重做了电池部分,现在电池部分是这样的


  1. Device (H_EC)
  2.                 {
  3.                     Name (_HID, EisaId ("PNP0C09"))
  4.                     Name (_UID, One)
  5.                     Method (B1B2, 2, NotSerialized)
  6.                     {
  7.                         Return (Or (Arg0, ShiftLeft (Arg1, 0x08)))
  8.                     }

  9.                     Method (B1B3, 0, NotSerialized)
  10.                     {
  11.                         Return (Or (BDF0, BDF1))
  12.                     }
复制代码
  1. OperationRegion (ECR, EmbeddedControl, Zero, 0xFF)
  2.                     Field (ECR, ByteAcc, Lock, Preserve)
  3.                     {
  4.                                 Offset (0x18),
  5.                         SPTR,   8,
  6.                         SSTS,   8,
  7.                         SADR,   8,
  8.                         SCMD,   8,
  9.                         SBFR,   256,
  10.                         SCNT,   8,
  11.                                 Offset (0x80),
  12.                         B1EX,   1,
  13.                             ,   1,
  14.                         ACEX,   1,
  15.                                 Offset (0x81),
  16.                         SWBE,   1,
  17.                         DCBE,   1,
  18.                                 Offset (0x82),
  19.                         WLST,   1,
  20.                         OPST,   1,
  21.                                 Offset (0x83),
  22.                         LIDS,   1,
  23.                                 Offset (0x84),
  24.                         B1ST,   8,
  25.                                 Offset (0x86),
  26.                         BRIT,   8,
  27.                                 Offset (0xA0),
  28.                         BRA0,   8,
  29.                         BRA1,   8,
  30.                         BPR0,   8,
  31.                         BPR1,   8,
  32.                         BVO0,   8,
  33.                         BVO1,   8,
  34.                                 Offset (0xB0),
  35.                         BDA0,   8,
  36.                         BDA1,   8,
  37.                         BDF0,   8,
  38.                         BDF1,   8,
  39.                         BDV0,   8,
  40.                         BDV1,   8,
  41.                         BDL0,   8,
  42.                         BDL1,   8,
  43.                                 Offset (0xC0),
  44.                         CTMP,   8,
  45.                                 Offset (0xC7),
  46.                         TIST,   8,
  47.                                 Offset (0xD0),
  48.                         B1TI,   16,
  49.                         B1SE,   16,
  50.                         B1CR,   16,
  51.                         B1TM,   16
  52.                     }
复制代码
  1. Device (BAT1)
  2.                     {
  3.                         Name (_HID, EisaId ("PNP0C0A"))
  4.                         Name (_UID, One)
  5.                         Name (BATI, Package (0x0D)
  6.                         {
  7.                             One,
  8.                             0xFFFFFFFF,
  9.                             0xFFFFFFFF,
  10.                             One,
  11.                             0xFFFFFFFF,
  12.                             0x03,
  13.                             0x0A,
  14.                             One,
  15.                             One,
  16.                             "Unknown",
  17.                             "Unknown",
  18.                             "Unknown",
  19.                             "Unknown"
  20.                         })
复制代码
后边涉及到已经转换8bit的store的地方已经改成这种形式了:
比如原来是Store(B1DA, Local0)
现在是

  1. Store (B1B2 (BDA0, BDA1), Local0)
复制代码
B1B2 B1B3两个Method是我自己加进去的,定义B1B3是因为我的DSDT里有这么一段
  1. Method (_PTS, 1, NotSerialized)
  2.     {
  3.         Store (Zero, P80D)
  4.         P8XH (Zero, Arg0)
  5.         Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC)
复制代码
B1DF现在已经被拆分成BDF0和BDF1了,但是上边要返回一个值,所以定义了B1B3这个Method,不然编译出错
这是定义了B1B3之后的Method _PTS

  1. Method (_PTS, 1, NotSerialized)
  2.     {
  3.         Store (Zero, P80D)
  4.         P8XH (Zero, Arg0)
  5.         Store (\_SB.PCI0.LPCB.H_EC.B1B3 (), \_SB.BFCC)
复制代码
我不懂编程,感觉上这样改动也不太对,希望大家给点提示和建议。
现在我的电池电量显示不对,如下图,剩余电量最高100

电池电量

电池电量

另附完整dsdt
dsdt.aml.zip (12.86 KB, 下载次数: 1)
求指教


补充一点,我的ACPIBatteryManager是1.53版的,能下到的最新的那个


已解决,去掉B1B3,在这里Store(\_SB.PCI0.LPCP.H_EC.B1DF, \_SB.BFCC),用B1B2决定原来B1DF的值就好了,具体就是
  1. Store (B1B2 (\_SB.PCI0.LPCB.H_EC.BDF0, \_SB.PCI0.LPCB.H_EC.BDF1), \_SB.BFCC)
复制代码
DSDT附件已经更新,配合最新的ACPIBatteryManager完美显示电量

电量完美

电量完美

尚目目 发表于 2014-10-30 10:56 | 显示全部楼层
本帖最后由 尚目目 于 2014-10-30 10:59 编辑

可以试试看Maciasl的补丁源,我上次试了一个和我机型相近的直接就行了
回复

使用道具 举报

haotiangood  楼主| 发表于 2014-10-30 12:12 | 显示全部楼层
尚目目 发表于 2014-10-30 10:56
可以试试看Maciasl的补丁源,我上次试了一个和我机型相近的直接就行了

那个补丁源我看过了,带这一句的Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC),里边的B1DF值(假设是B1DF)都是小于8bit的,没有从16bit里拆开的,我的这一句里的B1DF值被我拆成了BDF0和BDF1两个,这就导致这个地方没法像以前一样获得B1DF的值了,所以我又定义了一个B1B3,想把BDF0 BDF1再合成一个16bit的值给Store那一句,但是我觉得这样貌似不对啊
回复

使用道具 举报

尚目目 发表于 2014-10-30 17:16 | 显示全部楼层
haotiangood 发表于 2014-10-30 12:12
那个补丁源我看过了,带这一句的Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC),里边的B1DF值(假设是B1D ...

这个我也没改过,以前只是看过而已,还不太懂。建议你可以先BACKUP你自己的DSDT,再试试补丁源里的补丁,先试试自己的机型相近的,没有的话就试试其他的,毕竟这样相比较省时省力。
回复

使用道具 举报

haotiangood  楼主| 发表于 2014-10-30 17:20 | 显示全部楼层
尚目目 发表于 2014-10-30 17:16
这个我也没改过,以前只是看过而已,还不太懂。建议你可以先BACKUP你自己的DSDT,再试试补丁源里的补丁, ...

嗯,谢谢你,我已经改好了,参考的是三星R528的补丁格式
回复

使用道具 举报

尚目目 发表于 2014-10-30 17:23 | 显示全部楼层
haotiangood 发表于 2014-10-30 17:20
嗯,谢谢你,我已经改好了,参考的是三星R528的补丁格式

解决问题就好。有经验可以开贴分享啊!
回复

使用道具 举报

haotiangood  楼主| 发表于 2014-10-30 17:36 | 显示全部楼层
尚目目 发表于 2014-10-30 17:23
解决问题就好。有经验可以开贴分享啊!

我在一楼说明了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2025 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2025-4-5 01:29

快速回复 返回顶部 返回列表