Bug 42682 - w83627ehf module fails to load because of ACPI conflict error
Summary: w83627ehf module fails to load because of ACPI conflict error
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: BIOS (show other bugs)
Hardware: x86-64 Linux
: P1 normal
Assignee: acpi_bios
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-28 23:04 UTC by pekmop1024
Modified: 2012-07-25 02:57 UTC (History)
6 users (show)

See Also:
Kernel Version: 3.2.2
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
Rampage II Extreme BIOS 2101 acpidump (256.02 KB, text/plain)
2012-01-31 10:02 UTC, pekmop1024
Details

Description pekmop1024 2012-01-28 23:04:44 UTC
I have Asus Rampage II Extreme motherboard with Super I/O controller W83667HG on it, and it is utilized to control fan speeds. On kernels 3.2.1 and older everything was ok, but with the update to 3.2.2 it seemed to be something wrong, and w83627ehf module didn't load. When I've tried to load it with modprobe, I've found this in dmesg:

[   57.036334] w83627ehf: Found W83667HG chip at 0x290
[   57.036356] ACPI: resource w83627ehf [io  0x0295-0x0296] conflicts with ACPI region HWRE [io 0x290-0x299]

On older kernels it's just

[   16.688005] w83627ehf: Found W83667HG chip at 0x290

And no errors or conflicts.
Comment 1 pekmop1024 2012-01-28 23:39:04 UTC
.
Comment 2 Lan Tianyu 2012-01-31 01:16:35 UTC
Please attach the output of acpidump.
Comment 3 Len Brown 2012-01-31 02:54:51 UTC
In 2.6.39, commit 9ad19ac456a5f097f7cbbfef820b95297d6a934f
(ACPICA: Split large dsopcode and dsload.c files)
broke this feature.

It was repaired in by commit 
da4d8b287abe783d30e968155614531a0937d090
(ACPICA: Put back the call to acpi_os_validate_address)
in Linux 3.3 merge window

which was back-ported to linux stable, including
0726687ca114dfbba266452fefa6fd05080c9826
in 3.2.2

So I hate to say it, but but this warning is a correct
indication of a bug in your BIOS that Linux ignored
between 2.6.39 and 3.2.1.

If you want to ignore the BIOS bug, you need to manually
use the cmdline acpi_enforce_resources=lax,
or acpi_enforce_resources=no to allow it.
Comment 4 Manfred 2012-01-31 10:00:33 UTC
(In reply to comment #3)
> In 2.6.39, ...
> in Linux 3.3 merge window ...
> which was back-ported ...
> in 3.2.2

Coinciding findings:
https://bugs.gentoo.org/show_bug.cgi?id=401349 :
... CONFIG_SENSORS_IT87
... CONFIG_SENSORS_W83627EHF

A well written explanation:
http://www.lm-sensors.org/wiki/FAQ/Chapter3
#Mysensorshavestoppedworkinginkernel2.6.31
Comment 5 pekmop1024 2012-01-31 10:02:16 UTC
Created attachment 72243 [details]
Rampage II Extreme BIOS 2101 acpidump

I have acpidump added.

Also, acpi_enforce_resources=lax gives another problem: failed to load asus_atk0110 module with error
[   21.130161] asus_atk0110: Resources not safely usable due to acpi_enforce_resources kernel parameter
so I can't view voltages, temperatures and fan rpms, and because of this I can'y use fancontrol again.
Comment 6 Len Brown 2012-07-25 02:57:50 UTC
asus_atk0110 uses ACPI to talk to the device, and thus it checks for
acpi_enforce_resources=strict and assumes that if you set
acpi_enforce_resources=lax that you don't want to use
this ACPI driver and are instead using a different native driver:


commit 70dd6beac02f43a5099fcf5fddf68cfee0cbf479
Author: Jean Delvare <khali@linux-fr.org>
Date:   Thu May 27 19:58:37 2010 +0200

    hwmon: (asus_atk0110) Don't load if ACPI resources aren't enforced
    
    When the user passes the kernel parameter acpi_enforce_resources=lax,
    the ACPI resources are no longer protected, so a native driver can
    make use of them. In that case, we do not want the asus_atk0110 to be
    loaded. Unfortunately, this driver loads automatically due to its
    MODULE_DEVICE_TABLE, so the user ends up with two drivers loaded for
    the same device - this is bad.
    
    So I suggest that we prevent the asus_atk0110 driver from loading if
    acpi_enforce_resources=lax.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Luca Tettamanti <kronos.it@gmail.com>
    Cc: Len Brown <lenb@kernel.org>

---
So you have to decide how you are going to access the hardware
on this machine.  The default assumes that you are using ACPI
and that it is not safe for native drivers to simultaneously
touch the same HW that ACPI touches.

If you disable that check, then you will add risk of conflicts
to your system, and the asus_atk0110 driver will refuse to
operate under such conditions.

Note You need to log in before you can comment on or make changes to this bug.