# OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
# HWAC, 16,
# HWAK, 16,
# HDEN, 32,
# HDEP, 32,
# SBRC, 16,
# SBFC, 16,
# SBAE, 16,
# SBRS, 16,
# SBAC, 16,
# SBVO, 16,
# SBAF, 16,
# SBBS, 16
# SBBM, 16,
# SBMD, 16,
# SBCC, 16
# SBDC, 16,
# SBDV, 16,
# SBOM, 16,
# SBSI, 16,
# SBDT, 16,
# SBSN, 16
# SBCH, 32
# SBMN, 128
# SBDN, 128
# B1B2 Method
into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
end;
# B1B4 Method
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;
# utility methods to read/write buffers from/to EC
into method label RE1B parent_label H_EC remove_entry;
into method label RECB parent_label H_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
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
{\n
ShiftRight(Add(Arg1,7), 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;
into device label EC code_regex HWAC,\s+16, replace_matched begin WAC0,8,WAC1,8, end;
into device label EC code_regex HWAK,\s+16, replace_matched begin WAK0,8,WAK1,8, end;
into device label EC code_regex HDEN,\s+32 replace_matched begin EN00,8,DEN1,8,DEN2,8,DEN3,8 end;
into device label EC code_regex HDEP,\s+32 replace_matched begin DEP0,8,DEP1,8,DEP2,8,DEP3,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 SBBM,\s+16, replace_matched begin BBM0,8,BBM1,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;
into device label EC code_regex SBCH,\s+32 replace_matched begin BCH0,8,BCH1,8,BCH2,8,BCH3,8 end;
into device label EC code_regex (SBMN,)\s+(128) replace_matched begin SBMX,%2,//%1%2 end;
into device label EC code_regex (SBDN,)\s+(128) replace_matched begin SBDX,%2,//%1%2 end;
# fix 16-bit methods
# into method label GBTI code_regex \(HWAC, replaceall_matched begin (B1B2(WAC0,WAC1), end; # Unused in DSDT
into method label GBST code_regex \(SBRC, replaceall_matched begin (B1B2(BRC0,BRC1), end;
into method label GBIF code_regex \(SBFC, replaceall_matched begin (B1B2(BFC0,BFC1), end;
into method label GBIX code_regex \(SBFC, replaceall_matched begin (B1B2(BFC0,BFC1), end;
# into method label GBTI code_regex \(SBAE, replaceall_matched begin (B1B2(BAE0,BAE1), end; # Unused in DSDT
# into method label GBTI code_regex \(SBRS, replaceall_matched begin (B1B2(BRS0,BRS1), end; # Unused in DSDT
into method label GBST code_regex \(SBAC, replaceall_matched begin (B1B2(BAC0,BAC1), end;
into method label GBST code_regex \(SBVO, replaceall_matched begin (B1B2(BVO0,BVO1), end;
# into method label GBTI code_regex \(SBAF, replaceall_matched begin (B1B2(BAF0,BAF1), end; # Unused in DSDT
# into method label GBTI code_regex \(SBBS, replaceall_matched begin (B1B2(BBS0,BBS1), end; # Unused in DSDT
into method label GBIF code_regex \(SBBM, replaceall_matched begin (B1B2(BBM0,BBM1), end;
into method label GBIX code_regex \(SBBM, replaceall_matched begin (B1B2(BBM0,BBM1), end;
# into method label GBTI code_regex \(SBMD, replaceall_matched begin (B1B2(BMD0,BMD1), end; # Unused in DSDT
into method label GBIX code_regex \(SBCC, replaceall_matched begin (B1B2(BCC0,BCC1), end;
into method label GBIF code_regex \(SBDC, replaceall_matched begin (B1B2(BDC0,BDC1), end;
into method label GBIX code_regex \(SBDC, replaceall_matched begin (B1B2(BDC0,BDC1), end;
into method label GBIF code_regex \(SBDV, replaceall_matched begin (B1B2(BDV0,BDV1), end;
into method label GBIX code_regex \(SBDV, replaceall_matched begin (B1B2(BDV0,BDV1), end;
into method label GBIF code_regex \SBDV, replaceall_matched begin B1B2(BDV0,BDV1), end; # Extra fix for compilation
into method label GBIX code_regex \SBDV, replaceall_matched begin B1B2(BDV0,BDV1), end; # Extra fix for compilation
into method label GBIF code_regex \(SBDV\) replaceall_matched begin (B1B2(BDV0,BDV1)) end; # Extra fix for compilation
into method label GBIX code_regex \(SBDV\) replaceall_matched begin (B1B2(BDV0,BDV1)) end; # Extra fix for compilation
# into method label GBTI code_regex \(SBOM, replaceall_matched begin (B1B2(BOM0,BOM1), end; # Unused in DSDT
# into method label GBTI code_regex \(SBSI, replaceall_matched begin (B1B2(BSI0,BSI1), end; # Unused in DSDT
# into method label GBTI code_regex \(SBDT, replaceall_matched begin (B1B2(BDT0,BDT1), end; # Unused in DSDT
into method label GBIF code_regex \(SBSN, replaceall_matched begin (B1B2(BSN0,BSN1), end;
into method label GBIX code_regex \(SBSN, replaceall_matched begin (B1B2(BSN0,BSN1), end;
# fix 32-bit methods
# into method label GBTI code_regex \(HDEN, replaceall_matched begin (B1B4(DEN0,DEN1,DEN2,DEN3), end;
# into method label GBTI code_regex \(HDEP, replaceall_matched begin (B1B4(DEP0,DEP1,DEP2,DEP3), end;
into method label GBIF code_regex \(SBCH, replaceall_matched begin (B1B4(BCH0,BCH1,BCH2,BCH3), end;
into method label GBIX code_regex \(SBCH, replaceall_matched begin (B1B4(BCH0,BCH1,BCH2,BCH3), end;
# fix 128-bit methods
into method label GBIF code_regex \(SBMN, replaceall_matched begin (RECB(0xA0,128), end;
into method label GBIX code_regex \(SBMN, replaceall_matched begin (RECB(0xA0,128), end;
into method label GBIF code_regex \(SBDN, replaceall_matched begin (RECB(0xA0,128), end;
into method label GBIX code_regex \(SBDN, replaceall_matched begin (RECB(0xA0,128), end;
# Fix compilation for renamed HWAK (HWAK reading)
into method label OWAK code_regex \(\\\_SB.PCI0.LPCB.EC.HWAK replaceall_matched begin (B1B2(\\_SB.PCI0.LPCB.EC.WAK0,\\_SB.PCI0.LPCB.EC.WAK1) end;
into method label _L43 code_regex \(\\\_SB.PCI0.LPCB.EC.HWAK replaceall_matched begin (B1B2(\\_SB.PCI0.LPCB.EC.WAK0,\\_SB.PCI0.LPCB.EC.WAK1) end;