#Maintained by: RehabMan for: Laptop Patches #battery_Thunderobot-911.txt # created by nayeweiyang 2017-01-23 # works for: # Thunderobot 911 # Thunderobot 911m-s2b (per kitkim) # 16-bit registers into device label EC0 code_regex DSCP,\s+16, replace_matched begin SCP0,8,SCP1,8, end; into device label EC0 code_regex LACP,\s+16, replace_matched begin ACP0,8,ACP1,8, end; into device label EC0 code_regex DSVG,\s+16, replace_matched begin SVG0,8,SVG1,8, end; into device label EC0 code_regex MCUR,\s+16, replace_matched begin CUR0,8,CUR1,8, end; into device label EC0 code_regex MBRM,\s+16, replace_matched begin BRM0,8,BRM1,8, end; into device label EC0 code_regex MBCV,\s+16, replace_matched begin BCV0,8,BCV1,8, end; # 32-bit registers into device label EC0 code_regex VERN,\s+32 replace_matched begin VER0,8,VER1,8,VER2,8,VER3,8 end; # fix 16-bit methods into method label UPBI code_regex \^\^PCI0.LPCB.EC0.DSCP replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.SCP0,^^PCI0.LPCB.EC0.SCP1) end; into method label UPBI code_regex \^\^PCI0.LPCB.EC0.LACP, replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.ACP0,^^PCI0.LPCB.EC0.ACP1), end; into method label UPBI code_regex \^\^PCI0.LPCB.EC0.DSVG, replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.SVG0,^^PCI0.LPCB.EC0.SVG1), end; into method label UPBS code_regex \^\^PCI0.LPCB.EC0.DSCP replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.SCP0,^^PCI0.LPCB.EC0.SCP1) end; into method label UPBS code_regex \^\^PCI0.LPCB.EC0.MCUR, replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.CUR0,^^PCI0.LPCB.EC0.CUR1), end; into method label UPBS code_regex \^\^PCI0.LPCB.EC0.MBRM, replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.BRM0,^^PCI0.LPCB.EC0.BRM1), end; into method label UPBS code_regex \^\^PCI0.LPCB.EC0.MBCV, replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.BCV0,^^PCI0.LPCB.EC0.BCV1), end; into device label EC0 code_regex BANA,\s+(64), replace_matched begin BANX,64, end; into method label IVBI code_regex Store\s\(Zero,\s\^\^PCI0.LPCB.EC0.BANA\) replaceall_matched begin ^^PCI0.LPCB.EC0.WECB(0x77,64,Zero) end; into method label B1B2 remove_entry; into definitionblock code_regex . insert begin Method (B1B2, 2, NotSerialized)\n {\n Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n }\n end; into method label WE1B label EC0 remove_entry; into method label WECB label EC0 remove_entry; into device label EC0 insert begin Method (WE1B, 2, NotSerialized)\n {\n OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n Store(Arg1, BYTE)\n }\n Method (WECB, 3, Serialized)\n // Arg0 - offset in bytes from zero-based EC\n // Arg1 - size of buffer in bits\n // Arg2 - value to write\n {\n ShiftRight(Arg1, 3, Arg1)\n Name(TEMP, Buffer(Arg1) { })\n Store(Arg2, TEMP)\n Add(Arg0, Arg1, Arg1)\n Store(0, Local0)\n While (LLess(Arg0, Arg1))\n {\n WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n Increment(Arg0)\n Increment(Local0)\n }\n }\n end;