#Maintained by: RehabMan for: Laptop Patches #battery_Lenovo-T430u.txt # created by firdauzm 6/18/2014 # works for: # Lenovo T430u # Change EC register from 16-bit to 8-bit into device label EC code_regex ECRC,\s+16 replace_matched begin CRC0,8,CRC1,8 end; into device label EC code_regex ECAC,\s+16 replace_matched begin CAC0,8,CAC1,8 end; into device label EC code_regex ECVO,\s+16 replace_matched begin CVO0,8,CVO1,8 end; into device label EC code_regex SBRC,\s+16 replace_matched begin BRC0,8,BRC1,8 end; into device label EC code_regex SBFC,\s+16 replace_matched begin BFC0,8,BFC1,8 end; into device label EC code_regex SBAE,\s+16 replace_matched begin BAE0,8,BAE1,8 end; into device label EC code_regex SBRS,\s+16 replace_matched begin BRS0,8,BRS1,8 end; into device label EC code_regex SBAC,\s+16 replace_matched begin BAC0,8,BAC1,8 end; into device label EC code_regex SBVO,\s+16 replace_matched begin BVO0,8,BVO1,8 end; into device label EC code_regex SBAF,\s+16 replace_matched begin BAF0,8,BAF1,8 end; into device label EC code_regex SBBS,\s+16 replace_matched begin BBS0,8,BBS1,8 end; into device label EC code_regex SBMD,\s+16 replace_matched begin BMD0,8,BMD1,8 end; into device label EC code_regex SBCC,\s+16 replace_matched begin BCC0,8,BCC1,8 end; into device label EC code_regex SBDC,\s+16 replace_matched begin BDC0,8,BDC1,8 end; into device label EC code_regex SBDV,\s+16 replace_matched begin BDV0,8,BDV1,8 end; into device label EC code_regex SBOM,\s+16 replace_matched begin BOM0,8,BOM1,8 end; into device label EC code_regex SBSI,\s+16 replace_matched begin BSI0,8,BSI1,8 end; into device label EC code_regex SBDT,\s+16 replace_matched begin BDT0,8,BDT1,8 end; into device label EC code_regex SBSN,\s+16 replace_matched begin BSN0,8,BSN1,8 end; # this one is sleep related into device label EC code_regex HWAK,\s+16 replace_matched begin WAK0,8,WAK1,8 end; # Change access to EC register (16-bit to 8-bit) into method label B1B2 remove_entry; into definitionblock code_regex . insert begin Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n end; into_all method label GBST code_regex \(\^PCI0\.LPCB\.EC\.ECRC, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.CRC0, ^PCI0.LPCB.EC.CRC1), end; into_all method label GBST code_regex \(\^PCI0\.LPCB\.EC\.ECAC, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.CAC0, ^PCI0.LPCB.EC.CAC1), end; into_all method label GBST code_regex \(\^PCI0\.LPCB\.EC\.ECVO, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.CVO0, ^PCI0.LPCB.EC.CVO1), end; into_all method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBFC, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.BFC0, ^PCI0.LPCB.EC.BFC1), end; into_all method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBDC, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.BDC0, ^PCI0.LPCB.EC.BDC1), end; into_all method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBDV, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.BDV0, ^PCI0.LPCB.EC.BDV1), end; into_all method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBSN, replaceall_matched begin (B1B2 (^PCI0.LPCB.EC.BSN0, ^PCI0.LPCB.EC.BSN1), end; # sleep related into method label _L1D parent_label _GPE code_regex \(\\_SB\.PCI0\.LPC\.EC\.HWAK, replaceall_matched begin (B1B2(\\_SB.PCI0.LPC.EC.WAK0,\\_SB.PCI0.LPC.EC.WAK1), end; into method label _L1D parent_label \_GPE code_regex \(\\_SB\.PCI0\.LPC\.EC\.HWAK, replaceall_matched begin (B1B2(\\_SB.PCI0.LPC.EC.WAK0,\\_SB.PCI0.LPC.EC.WAK1), end; # Change EC register from 32-bit to 8-bit into device label EC code_regex SBCH,\s+32 replace_matched begin BCH0,8,BCH1,8,BCH2,8,BCH3,8 end; # Change access to EC register (32-bit to 8-bit) into method label B1B4 remove_entry; into definitionblock code_regex . insert begin Method (B1B4, 4, NotSerialized)\n {\n Store(Arg3, Local0)\n Or(Arg2, ShiftLeft(Local0, 8), Local0)\n Or(Arg1, ShiftLeft(Local0, 8), Local0)\n Or(Arg0, ShiftLeft(Local0, 8), Local0)\n Return(Local0)\n }\n end; into_all method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBCH, replaceall_matched begin (B1B4 (^PCI0.LPCB.EC.BCH0, ^PCI0.LPCB.EC.BCH1, ^PCI0.LPCB.EC.BCH2, ^PCI0.LPCB.EC.BCH3), end; # utility methods to read/write buffers from/to EC into method label RE1B parent_label EC remove_entry; into method label RECB parent_label EC remove_entry; into device label EC insert begin Method (RE1B, 1, NotSerialized)\n {\n OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n Return(BYTE)\n }\n Method (RECB, 2, Serialized)\n {\n ShiftRight(Arg1, 3, Arg1)\n Name(TEMP, Buffer(Arg1) { })\n Add(Arg0, Arg1, Arg1)\n Store(0, Local0)\n While (LLess(Arg0, Arg1))\n {\n Store(RE1B(Arg0), Index(TEMP, Local0))\n Increment(Arg0)\n Increment(Local0)\n }\n Return(TEMP)\n }\n end; # deal with 128-bit SBMN into device label EC code_regex (SBMN,)\s+(128) replace_matched begin BMNX,%2,//%1%2 end; into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBMN, replaceall_matched begin (^PCI0.LPCB.EC.RECB(0xA0,128), end; # deal with 128-bit SBDN into device label EC code_regex (SBDN,)\s+(128) replace_matched begin BDNX,%2,//%1%2 end; into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBDN, replaceall_matched begin (^PCI0.LPCB.EC.RECB(0xA0,128), end;