Fixes based off issue#1

This commit is contained in:
Mykola Grymalyuk
2020-02-12 16:01:44 -07:00
parent 00aa9be485
commit 833ac33120
11 changed files with 78 additions and 26 deletions

View File

@@ -5,6 +5,4 @@ So what this SSDT does is create a PNLF device for macOS to play with, specifica
No configuration required for most, just drop the prebuilt file into your EFI: [SSDT-PNLF](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-PNLF.aml)
Note: there are some cases where the iGPU is called `IGPU` in the DSDT, you can double check by searching for both `PCI0.GFX0` and `PCI0.IGPU`. Whichever shows up is your device
Note: there are some rare cases where the iGPU is called `GPU0` or `VID`in the DSDT, you can double check by searching for `PCI0.GFX0`, `PCI0.VID` and `PCI0.GPU0`. Whichever shows up is your device

View File

@@ -37,7 +37,7 @@ As you can see from the table below, we'll be renaming our EC listed in the DSDT
| :--- | :--- | :--- |
| Enabled | String | YES |
| Count | Number | 0 |
| Limit | Nuber | 0 |
| Limit | Number | 0 |
| Find | Data | xxxxxxxx |
| Replace | Data | xxxxxxxx |

View File

@@ -1,5 +1,54 @@
# Fixing Trackpads
This SSDT is used to create a stub for VoodooI2C to connect to.
This SSDT is used to force enable our GPIO for VoodooI2C to connect onto.
No configuration required, just drop the prebuilt file into your EFI: [SSDT-GPIO](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-GPIO.aml)
With most modern laptop DSDTs, there's a variable called `GPEN` or `GPHD` which are used for setting the status of the GPIO device. For us, we want to enable the device.
## Finding our GPIO
So first things we need to do is find out what variable is used to enable our GPIO device, lets open up our decompiled SSDT and search for `Device (GPIO)`. Should give you a desult similar to this:
![](https://media.discordapp.net/attachments/456913818467958789/677279455525208096/Screen_Shot_2020-02-12_at_3.25.27_PM.png?width=1674&height=1256)
What we care about from this is the `_STA` method:
```
Method (_STA, 0, NotSerialized)
{
If ((GPHD == One))
{
Return (0x03)
}
Return (0x0F)
}
```
What we want is for this to always return `0x0F` when booting macOS, so we want to make an SSDT that will return `GPHD == Zero` in macOS.
**NOTE that you may have the other way around where GPHD needs to be set as `One` to return `0x0F`**. And your device name may also be different, don't throw random SSDTs in thinking it'll work
Once you found the variable and what it should be set to, grab a copy of [SSDT-GPI0.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-GPI0.dsl) and make the required edits. Then clean up with compiling it
## More examples:
![](https://media.discordapp.net/attachments/456913818467958789/677283983322775572/Screen_Shot_2020-02-12_at_3.34.26_PM.png?width=1674&height=1704)
With this example, we can see that we need both `SBRG` and `GPEN` to return `One`. If only one is present, it'll create some issues so in our SSDT we'll want to have both of them return `One`:
```
DefinitionBlock("", "SSDT", 2, "ACDT", "GPI0", 0)
{
External(GPEN, FieldUnitObj)
External(SBRG, FieldUnitObj)
Scope (\)
{
If (_OSI ("Darwin"))
{
GPEN = One
SBRG = One
}
}
}
```