RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,016
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
Hi!
Just have to say that your work is perfect!
Tried to patch DSDT for Asus N55SL and it seems near to match with battery_ASUS-G75vw.txt (https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/battery/battery_ASUS-G75vw.txt) patch. Only 2 syntax errors encountered in which B1B2 method set out of DefinitionBlock's closing brace. Like this:
Code:Method (WAK, 1, NotSerialized) { \_SB.ATKD.GENW (Arg0) \_SB.PCI0.GFX0.OWAK (Arg0) \OEMW (Arg0) } } Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }
I'm not sure I understand what you are referring to... Please clarify.
The Asus N55SL patch is already in the repo.
If you want me to add/change something, post your native DSDT. And your proposed changes.
Could you write some extension to your Guide about WECB Method and using it for writing to EC's fields.
There are plenty of examples in the repo. It is used when you have to write to an EC field of more than 32-bits (an EC buffer).
I know that it is usable now for some machines and very handy versus WRBA.
Either method for EC buffers works. The RDBA/WRBA was a technique I used prior to coming up with RECB/WECB. RECB/WECB use a loop, where in RDBA/WRBA the loop is unrolled.
Because in the repo it is not completely understandable what to do with the third Argument Arg2.
It is described in post #1.
It is very handy to use RECB and WECB for the "big" fields, but to 16, 32, 64 and so on it is handy too.
For fields larger than 32-bit, you should use RECB/WECB. For fields 32-bit or smaller, you should use B1B2/B1B4 and individual Stores (in the case of writes). Using RECB/WECB for fields 32-bit or smaller is messy and not recommended.
*** PS. Could you explain me one more time why it is needed to patch in ACPI code those >8bit fields, but not to translate them completely by kext?
It is not possible to fix this with a kext.