Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
MaLd0n

Olarila HackBook Lenovo IdeaPad S145 8th Gen / Mojave / Catalina / Big Sur Full DSDT Patches / Clover and OpenCore

Recommended Posts

And yes I used the CannonPointLP IRQ tables to calculate the new PIN (0x42, 0x6e)

The decimals are 82 and 53 for hexadecimal 0x6e thereby giving pins of 0x52 and 0x35 respectively.

Share this post


Link to post
Share on other sites

The decimals are 82 and 53 for hexadecimal 0x6e thereby giving pins of 0x52 and 0x35 respectively.

 

Just to clarify: I didn't test pin numbers 82 and 53 (0x52 and 0x35) because of this sentence in the Guide:

 

On newer chipsets (Cannon Point and newer), there is a mismatch between the GPIO pin and the hardware pin number. If you are using such hardware, you will need to convert the hardware pin number you have found to a GPIO pin, to allow the driver to use the pin

 

So, by following the same Guide, I did the conversion as follows:


82 - 68 + 96 = 110 = 0x6e

53 - 51 + 64 = 66 = 0x42


Anyway, as you suggested, I have just tried those pin numbers without any conversion (0x52 and 0x35) with same results.


One observation: I noticed that, without GPIO Pin Change, I see this for TPD0


Without-GPIO-Pin-Change.png


While, after pin change the device has a different content (IOInterruptSpecifiers is gone!)


After-GPIO-Pin-Change.png


Maybe the kext file are still not supporting this ELAN device?

Share this post


Link to post
Share on other sites

So, by following the same Guide, I did the conversion as follows:


82 - 68 + 96 = 110 = 0x6e

53 - 51 + 64 = 66 = 0x42

You are referencing to the wrong table


Can you reboot with this DSDT and upload new sendme files at I2C thread?

 

DSDT.aml.zip

Share this post


Link to post
Share on other sites

[ref]user748832[/ref], Your I2C device is fully loaded. Remove VoodooI2CHID kext. Only use VoodooI2C and VoodooI2CELAN kexts.

If you had installed any 3rd party kexts in S/L/E (or L/E), this is a good time to remove them from the folder and only use Clover/Kexts/Other


Remove VoodooI2CHID, rebuild kextcache and reboot.


https://imgur.com/HJ6Qj9o


 

Not sure where is I2C thread?

https://Olarila.com/forum/viewtopic.php?f=46&t=8087

Share this post


Link to post
Share on other sites

[ref]user748832[/ref], Your I2C device is fully loaded. Remove VoodooI2CHID kext. Only use VoodooI2C and VoodooI2CELAN kexts.

If you had installed any 3rd party kexts in S/L/E (or L/E), this is a good time to remove them from the folder and only use Clover/Kexts/Other


Remove VoodooI2CHID, rebuild kextcache and reboot.


https://imgur.com/HJ6Qj9o


 

https://Olarila.com/forum/viewtopic.php?f=46&t=8087

 



Heeeelp! I have big problems by using your DSDT:


- First, with VoodooI2CELAN TouchPad still not working

- Second, with VoodooI2CHID.. for the first time the TouchPad is responding but pointer movement is strange (pointer will continue to move after the touch)

- Third, CPU1 is almost 100%, the Power LED is flashing like when Laptop is in sleep. I have turned OFF, then turn ON, Power LED still flashing!!! How can I reset the Laptop? I think something has been corrupted in the BIOS :-(

Share this post


Link to post
Share on other sites

Second, with VoodooI2CHID.. for the first time the TouchPad is responding but pointer movement is strange (pointer will continue to move after the touch)

If this is the case, edit DSDT to polling mode instead of interrupt mode. You can continue to use VoodooI2CHID. You can also experiment with other pins in interrupt mode.


The high CPU usage might come from using interrupt mode in I2C.

Share this post


Link to post
Share on other sites

[ref][email protected][/ref], ur model is very diff, have a dgpu etc, first try drop my dsdt and check if nvme load

https://Olarila.com/forum/viewtopic.php?f=28&t=9303

[ref]MaLd0n[/ref],

Dropping your DSDT didn't even boot. Anyway, with your patch almost everything works. So I am happy with it.

The second nvme drive is for windows, so right now is not a priority. I'm using a ssd sata for Mojave, I wanted to use the pci ssd instead.


Thanks

Share this post


Link to post
Share on other sites

If this is the case, edit DSDT to polling mode instead of interrupt mode. You can continue to use VoodooI2CHID. You can also experiment with other pins in interrupt mode.


The high CPU usage might come from using interrupt mode in I2C.

 



Can I ask you how did you edit DSDT to make I2C device to fully loading? Did you follow a guide? I noticed three additional methods in your DSDT, where is documented this?


 

Method (PKG3, 3, Serialized)
       {
           Name (PKG, Package (0x03)
           {
               Zero, 
               Zero, 
               Zero
           })
           PKG [Zero] = Arg0
           PKG [One] = Arg1
           PKG [0x02] = Arg2
           Return (PKG) /* \_SB_.PCI0.I2C0.PKG3.PKG_ */
       }

       Method (SSCN, 0, NotSerialized)
       {
           Return (PKG3 (SSH0, SSL0, SSD0))
       }

       Method (FMCN, 0, NotSerialized)
       {
           Return (PKG3 (FMH0, FML0, FMD0))
       }

 

TO SUMMARIZE:


I’m trying to use this method to fully load my ELAN device, but I can’t use your version of DSDT because CPU is always at 100% and battery is discharged very quickly.


When using VoodooI2CHID the trackpad is able to move the pointer, but it is totally unusable. (pointer moves too slow or too fast, and it continues to move forever).


When using VoodooI2CELAN the trackpad is not working, but ELAN device is fully loaded. CPU is always 100% when Trackpad is not touched. If I touch/swipe the trackpad, the CPU activity can decrease to zero, but return to 100% as soon as I stop to move my finger on the touchpad.. very strange!


Thank you for your help.


Added in 22 minutes 55 seconds:

You can also experiment with other pins in interrupt mode.

 

Here are the pins I've used in interrupt mode


0x35

0x52

0x6e

0x42

0x17

0x1B

0x34

0x55


Here is the log (with errors) for one of them:

 

2019-10-28 19:25:04.763938+0100 0xb8       Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::Loading GPIO Data for CannonLake-LP
2019-10-28 19:25:04.764001+0100 0xb8       Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::VoodooGPIO Init!
2019-10-28 19:25:04.764003+0100 0xb8       Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::VoodooGPIO Initializing Community 0
2019-10-28 19:25:04.764051+0100 0xb8       Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::VoodooGPIO Initializing Community 1
2019-10-28 19:25:04.764088+0100 0xb8       Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::VoodooGPIO Initializing Community 2
2019-10-28 19:25:04.764219+0100 0x76       Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::GPIO Controller is already awake! Not reinitializing.
2019-10-28 19:25:04.855934+0100 0xe3       Default     0x0                  0      0    kernel: (kernel) VoodooI2CPCIController::pci8086,9de8 Starting I2C controller
2019-10-28 19:25:04.855968+0100 0xe3       Default     0x0                  0      0    kernel: (kernel) VoodooI2CPCIController::pci8086,9de8 Set PCI power state D0
2019-10-28 19:25:04.856008+0100 0xe3       Default     0x0                  0      0    kernel: (kernel) VoodooI2CPCIController::pci8086,9de8 Publishing nub
2019-10-28 19:25:04.882775+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 Probing controller
2019-10-28 19:25:04.882799+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 Found valid Synopsys component, continuing with initialisation
2019-10-28 19:25:04.883112+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerNub::pci8086,9de8 SSCN not implemented in ACPI tables
2019-10-28 19:25:04.883118+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerNub::pci8086,9de8 FMCN not implemented in ACPI tables
2019-10-28 19:25:04.883121+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 Warning: Error getting bus config, using defaults where necessary
2019-10-28 19:25:04.883146+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 Publishing device nubs
2019-10-28 19:25:04.883153+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 Found I2C device: ELAN0629
2019-10-28 19:25:04.883303+0100 0xf2       Default     0x0                  0      0    kernel: (kernel) VoodooI2CDeviceNub::Got GPIO Controller! VoodooGPIOCannonLakeLP
2019-10-28 19:25:05.403091+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CELANTouchpadDriver::elan Touchpad probe
2019-10-28 19:25:05.403097+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CELANTouchpadDriver::elan ELAN device found (ELAN0629)
2019-10-28 19:25:05.403116+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooGPIOCannonLakeLP::Registering hardware pin 82 for GPIO IRQ pin 110
2019-10-28 19:25:05.403258+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 I2C Transaction error details
2019-10-28 19:25:05.403262+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 slave address not acknowledged (7bit mode)
2019-10-28 19:25:05.403266+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CControllerDriver::pci8086,9de8 I2C Transaction error: 0x01800001 - aborting
2019-10-28 19:25:05.403270+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CELANTouchpadDriver::ELAN0629 Failed to write RESET cmd
2019-10-28 19:25:05.403272+0100 0x150      Default     0x0                  0      0    kernel: (kernel) VoodooI2CELANTouchpadDriver::elan Failed to init device

Share this post


Link to post
Share on other sites

[ref]user748832[/ref], about 100% cpu is a kext problem

Share this post


Link to post
Share on other sites

Hi... :D:D:D

My laptop is ideaPad S145 81S90005BR


With files I got here almost everything got working but wifi and elan trackpad.

My bluetooth and HDMI video is fully working like a charm!!!

Can anyone here help me fixing my trackpad, please?

Send me MBP-de-Wendel.zip

Share this post


Link to post
Share on other sites

If this is the case, edit DSDT to polling mode instead of interrupt mode.

Does polling mode work?

 

I noticed three additional methods in your DSDT

Your ACPI has native variables that has the method for a valid bus config. So the code just makes use of that.


Added in 5 minutes 55 seconds:

Can anyone here help me fixing my trackpad, please?

No I2C kext loaded.

Share this post


Link to post
Share on other sites

Hi... :D:D:D

My laptop is ideaPad S145 81S90005BR


With files I got here almost everything got working but wifi and elan trackpad.

My bluetooth and HDMI video is fully working like a charm!!!

Can anyone here help me fixing my trackpad, please?

 

Hi wendelmr1,


Do you use NVME SSD? Is It working?

Share this post


Link to post
Share on other sites

Nope... I replaced my 1TB hdd for a 240GB SSD.

As my intel wifi card is not working, I'm using my phone to share wifi connection using USB cable.


Added in 13 minutes 32 seconds:

Does polling mode work?


Your ACPI has native variables that has the method for a valid bus config. So the code just makes use of that.


Added in 5 minutes 55 seconds:

No I2C kext loaded.

Added a few changes on plist file but didn't try to inject it. Also had to delete I2C kexts to install VoodooPS2Controller that makes my keyboard work.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...