intel / dptf

Other
87 stars 32 forks source link

probe of INT3400:00 failed with error -22 #9

Closed longsleep closed 7 years ago

longsleep commented 9 years ago

I am trying to get these drivers running on Ubuntu 14.10 with vanilla Kernel 3.19. The stuff compiles fine with a few Kernel related tweaks. When insmod i see the following errors:

[13271.868788] esif_lf: probe of INT3400:00 failed with error -22 [13303.822229] dptf_acpi: probe of INT3400:00 failed with error -22

Platform is a Lenovo Yoga 3 Pro booting in EFI mode with DPTF enabled in BIOS.

In the UF shell, i see no participants.

esif(0)-> about

ESIF - Eco-System Independent Framework (c) 2012-2014 Intel Corporation. All Rights Reserved.

esif_uf - ESIF Upper Framework (UF) R3 Version: 8.0.10001.10 OS: Linux x64 Release

ESIF Framework Modules: ID Module Description Version


1 esif_shell ESIF Command Interface 8.0.10001.10 2 etf ESIF Test Framework 8.0.10001.10

esif_lf - ESIF Lower Framework (LF) R0 ESIF Kernel Driver Information: Version: NA

esif(0)-> participants

ALL PARTICIPANTS: Count: 0

Not sure if it is supposed to work on the Core M in the Yoga 3 Pro. Would be great though to get driver support on the same level as on Windows though.

bbian commented 9 years ago

This is a known issue starting with kernel 3.18 or later. The ACPI scan code has changed in kernel 3.18, and the function acpi_scan_init() in drivers/acpi/scan.c now calls the acpi_int340x_thermal_init(), making the INT340X drivers the default handler for the ACPI devices that ESIF used to claim. As a result, ESIF will fail to claim these devices when it loads.

We are working with the Linux power and thermal upstream maintainers trying to find a solution that allows ESIF to load. Hopefully this will be resolved soon and the fix will show up in top of the tree kernel. Thank you for your patience on this.

longsleep commented 9 years ago

Thanks for the details. So as a temporary solution i could just not call acpi_int340x_thermal_init() in scan.c? Would that be wise assuming i would load the DPTF drivers instead?

bbian commented 9 years ago

Yes this should work, assuming that you always load ESIF drivers and run esif_ufd as a daemon service. You may also want to make sure that CONFIG_INT340X_THERMAL is not set in the kernel config file to avoid any possible conflicts between ESIF and the kernel's INT340X drivers.

bbian commented 7 years ago

Since DPTF has moved away from its original "lower framework" model on Linux based systems (latest DPTF versions are fully compatible with upstream Linux drivers since version 4.1), we are closing this issue.