Comment 67 for bug 1776563

Revision history for this message
Richard Baka (bakarichard91) wrote :

you (bountou), this is exactly the same problem what I have. Maybe there is a little difference but not much. We will be able to fix it with a little work.
So this is an ACPI problem. ACPI(Advanced Configuration and Power Interface) is a hardware interface what is afforded by the manufacturer for the Operating System to use the notebook's power management features correctly.
There are tables in the ROM memory of your notebook that contain a lot of information for this. For some reason these are broken in Linux. This is what you see on the attached kernel output screenshot.
This is not a perfect situation.

Things you can do:
a)Install Windows. Generally the tables can be understood correctly by Windows. If not then the manufacturer provides drivers which fix them.
b)Disable ACPI: in this case the OS try to guess the correct behavior but it will never be perfect. This is why noacpi is not the correct solution. (temperature anomalies will occur)
c)Do manual address (Correct solution Lite version) to IOMMU and SMBUS controller. This can be done by the kernel parameters what I wrote: ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2 for example. This is good for my notebook type but the values can be different by notebook subtypes.
I need the lspci -vv output after you had enabled IOMMU to give you the correct addresses. I can see your SMBUS is on 00:14.0 but I don't find the IOMMU which is necessary. This is a half-correct way.
-The best solution: recompile the DSDT/SSDT tables. This is the hardcore version because you should dump, decompile fix and recompile the proper tables. This is not easy but this can offer a similar energy management what you can experience on WIN 10.

So first thing to do:
Enable IOMMU, start the kernel with noacpi and copy the lspci -vv output for me. IOMMU should be shown there.