Distribution: Slackware GNU/Linux 9.1 Hardware Environment: AMD Athlon / Asus A7V133-C Problem Description: In 2.6.7-mm3, 2.6.7-mm5, 2.6.7-mm6 and 2.6.7-mm7, ACPI reserves an address range needed by i2c-viapro (SMBus driver). The problem doesn't show in 2.6.7-mm4 because it didn't include bk-acpi.patch. Steps to reproduce: modprobe i2c-dev modprobe i2c-viapro i2cdetect -l will not list the VIA SMBus adapter. Logs say: vt596 smbus 0000:00:04.4: SMBus region 0xe800 already in use! /proc/ioports has: e800-e80f : 0000:00:04.4 e800-e80f : motherboard Reverting bk-acpi.patch (tested on 2.6.7-mm6) solves the problem. SMBus is working, and /proc/ioports has: e800-e80f : 0000:00:04.4 e800-e807 : viapro-smbus
Could you please try to enable PNP and disable ACPI and tell us the result? And please attach your 'acpidmp' output also. thanks, shaohua.
Created attachment 3379 [details] Output of acpidmp for the Asus A7V133-C (BIOS rev. 1009)
I tested with and without ACPI and PNP (2.6.8-rc1-mm1): ACPI+PNP: i2c-viapro doesn't work ACPI alone: i2c-viapro doesn't work PNP alone: i2c-viapro works neither: i2c-viapro works With PNP and PNPBIOS enabled (and ACPI disabled) the lines in /proc/ioports are slightly different: e800-e83f : pnp 00:12 e800-e80f : 0000:00:04.4 e800-e807 : viapro-smbus So, as a summary, it works fine when ACPI is disabled, and doesn't work when ACPI is enabled, regardless of PNP being enabled or not. Thanks.
Created attachment 3396 [details] proposed patch Please check if this patch fixes your problem.
Proposed patch applies but fails to compile. First gcc would complain that local variable "res" shadows a function parameter. I renamed the local variable to something else, but then gcc complained that structure "res" has no member "flags". I'm stuck at this point, since I saw no obvious fix.
Created attachment 3404 [details] proposed patch I'm so sorry about that. Since the patch looks sample, I didn't test it before I sent it to you. Could you please try this one? It should resolve your problem. Thanks, Shaohua.
Second patch works for me. I would only object to the name "tmp". It first made me think that this was really a local variable, while it actually is a reference to a global resource descriptor. Thanks!
I still don't see the change in 2.6.8-rc2-mm2.
Created attachment 3460 [details] proposed patch Ok, changed as you said. Len will merge this one. Thanks, David
Created attachment 3467 [details] content of /proc/ioports with the patch
I have tested the last version of this patch on an ASUS A7V KT133 and indeed it fixes the very same problem. Thanks for responding to my post on LKML Shaohua.
*** Bug 3420 has been marked as a duplicate of this bug. ***