Write a note to record DSDT modification to make trackpad work.
After doing a general patches from
@RehabMan guide, there's one thing need to notice before doing I2C patch.
You may see these error when trying to compile.
Code:
Name already exist in scope (xxxx)
If you get this error, please go to the folder that you extract original DSL files (use Terminal). And search the keyword of the scope name.
Code:
grep -l <scope name> *.dsl
If the result shows scope name only exist at DSDT, it's a good result that means this scope has no dependency to other SSDT files.
Now back to the error, basically we just need to delete a duplicate scope name. But DON'T delete the name at the section that MaciASL told.
Search the keyword on MaciASL again, you'll find the code look like this. This is the code we actually going to delete. (Using SYCN scope as example.)
Code:
External (SYCN, UnknownObj) // (from opcode)
After done, compile again, it should be no error.
It's time to modify trackpad. Track to the device named "TPD0", this is a area that provide trackpad on DELL 15 7560.
Follow
alex.daoud's guide first to do first step of I2C patch.
(Note: For I2C patch from the repo, only you need is apply "GPIO Controller Enable" patch. DO NOT apply "I2C Controllers" patch! This laptop is Kabylake CPU, not Skylake.)
Not done yet! We still have to modify few codes.
Looking at Method _INI section, find the block below:
Code:
If (LEqual (SDM0, Zero))
{
SHPO (GPDI, One)
}
Delete 'if' block, only left:
Looking down few lines, finding 'if' block that include SDS0.
Code:
If (LEqual (SDS0, One))
{
Store (0x20, HID2)
Return (Zero)
}
Same as SDM0, delete 'if' block, only left:
Code:
Store (0x20, HID2)
Return (Zero)
The part we should looking for is _CRS area.
Code:
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
If (LLess (OSYS, 0x07DC))
{
Return (SBFI)
}
If (LEqual (SDM0, Zero))
{
Return (ConcatenateResTemplate (SBFB, SBFG))
}
Return (ConcatenateResTemplate (SBFB, SBFI))
}
Looking for the last "Return" line, change SBFI to SBFG, and clean other code above.
It will looks like below:
Code:
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (ConcatenateResTemplate (SBFB, SBFG))
}
After that, it's done. Compile again to make sure there's no error, save as AML file into CLOVER/ACPI/patched, then reboot to have a try!