Re: 2.6.0-test4: ACPI breaks IDE/USB

From: Peter Lieverdink
Date: Sun Aug 24 2003 - 20:19:56 EST


Hi Thomas,

Your patch works beautifully. 'acpi=nopci' previously caused IDE to work fine, but made the kernel not detect USB and network devices. With your patch it sees all peripherals AND acpi is available for the cpu. I wonder if it would be accepted into the kernel as a patch to workaround buggy acpi bioses.

Thanks heaps!

- Peter.
--
At 23:44 24/08/2003 +0200, you wrote:
Am Sunday 24 August 2003 22:54 schrieb David van Hoose:
> Kevin P. Fleming wrote:
> > Peter Lieverdink wrote:
> >> When I enable ACPI on 2.6.0-test4 (also on 2.6.0-test3-*), the kernel no
> >> longer recognises my IDE controller and drops down to PIO mode for
> >> harddisk access. Additionally, USB devices don't get detected.
> >
> > I'm running -test4 here with ACPI and have no trouble with USB devices.
>
> I'm running test4 here with ACPI and have no USB following a call trace
> with "IRQ 20: nobody cared". ACPI seems to make odd reports. I've been
> having this problem since 2.5.70'ish. Posted numerous times, but nobody
> seems to care about it. I also have a PS/2 mouse detection when I have
> no mice attached to my system.
>
> >> The system is an Athlon 2400+ on a Gibabyte GA-7VAXP mainboard. (KT400)
> >
> > My system is an Athlon 1000 on an MSI KT266-based board.
>
> I have a Pentium 4 2.53 GHz on a Asus P4S8X mainboard.
>
> -David
>
> PS. dmesg is attached with ACPI debug and USB debug enabled.

I had similar problems with my Epox 8K9A (KT400) Board.

If I wanted to use my USB ports I had to boot wiht 'acpi=off'. But with the
patch attached it is possible for me to boot with 'pci=noacpi'. It has the
advantage that ACPI stays enabled...

You are free to give it a try...

Thomas
--- linux-2.6.0-test4/arch/i386/kernel/acpi/boot.c.orig Sat Aug 23 01:59:02 2003
+++ linux-2.6.0-test4/arch/i386/kernel/acpi/boot.c Sat Aug 23 16:39:57 2003
@@ -41,6 +41,7 @@
#define PREFIX "ACPI: "

extern int acpi_disabled;
+extern int acpi_irq;
extern int acpi_ht;

int acpi_lapic = 0;
@@ -407,7 +408,7 @@
* If MPS is present, it will handle them,
* otherwise the system will stay in PIC mode
*/
- if (acpi_disabled) {
+ if (acpi_disabled || !acpi_irq) {
return 1;
}

@@ -450,14 +451,13 @@
acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;

acpi_ioapic = 1;
-#endif /*CONFIG_X86_IO_APIC*/

#ifdef CONFIG_X86_LOCAL_APIC
- if (acpi_lapic && acpi_ioapic) {
- smp_found_config = 1;
- clustered_apic_check();
- }
+ smp_found_config = 1;
+ clustered_apic_check();
#endif
+
+#endif /*CONFIG_X86_IO_APIC*/

return 0;
}
--- linux-2.6.0-test4/arch/i386/kernel/setup.c.orig Sat Aug 23 01:55:38 2003
+++ linux-2.6.0-test4/arch/i386/kernel/setup.c Sat Aug 23 16:34:21 2003
@@ -71,6 +71,7 @@
EXPORT_SYMBOL(acpi_disabled);

#ifdef CONFIG_ACPI_BOOT
+ int acpi_irq __initdata = 1; /* enable IRQ */
int acpi_ht __initdata = 1; /* enable HT */
#endif

@@ -542,6 +543,11 @@
else if (!memcmp(from, "acpi=ht", 7)) {
acpi_ht = 1;
if (!acpi_force) acpi_disabled = 1;
+ }
+
+ /* "pci=noacpi" disables ACPI interrupt routing */
+ else if (!memcmp(from, "pci=noacpi", 10)) {
+ acpi_irq = 0;
}

#ifdef CONFIG_X86_LOCAL_APIC

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/