On Thu, 27 Sep 2007, [EMAIL PROTECTED] wrote:

http://bugzilla.kernel.org/show_bug.cgi?id=5243


------- Comment #14 from [EMAIL PROTECTED]  2007-09-27 18:32 -------
(In reply to comment #13)
Created an attachment (id=12951)
--> (http://bugzilla.kernel.org/attachment.cgi?id=12951&action=view) [details]
Working workaround for this PNP BIOS bug

Now it seems that the patch can solve the problem. Will you please send the
patch to the acpi maillist?

Attached.

Best regards,

                        Krzysztof Olędzki
From: Krzysztof Oledzki <[EMAIL PROTECTED]>

Workaround for broken systems with BIOS that makes RTC interrupt level
triggered and/or active low.

See http://bugzilla.kernel.org/show_bug.cgi?id=5243

Based on the patch from Shaohua Li <[EMAIL PROTECTED]>

Signed-off-by: Krzysztof Piotr Oledzki <[EMAIL PROTECTED]>
Cc: "Li, Shaohua" <[EMAIL PROTECTED]>
Cc: Bjorn Helgaas <[EMAIL PROTECTED]>
Cc: Andi Kleen <[EMAIL PROTECTED]>
Cc: Adam Belay <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---


diff -puN 
drivers/pnp/pnpacpi/rsparser.c~fix-very-high-interrupt-rate-for-irq8-rtc-unless-pnpacpi=off
 drivers/pnp/pnpacpi/rsparser.c
--- 
a/drivers/pnp/pnpacpi/rsparser.c~fix-very-high-interrupt-rate-for-irq8-rtc-unless-pnpacpi=off
+++ a/drivers/pnp/pnpacpi/rsparser.c
@@ -85,6 +85,16 @@ static void pnpacpi_parse_allocated_irqr
        if (i >= PNP_MAX_IRQ)
                return;
 
+#ifdef CONFIG_X86
+       if (gsi < 16 && (triggering != ACPI_EDGE_SENSITIVE ||
+                               polarity != ACPI_ACTIVE_HIGH)) {
+               pnp_warn("BIOS BUG: legacy PNP IRQ %d should be edge trigger, "
+                               "active high", gsi);
+               triggering = ACPI_EDGE_SENSITIVE;
+               polarity = ACPI_ACTIVE_HIGH;
+       }
+#endif
+
        res->irq_resource[i].flags = IORESOURCE_IRQ;    // Also clears _UNSET 
flag
        res->irq_resource[i].flags |= irq_flags(triggering, polarity);
        irq = acpi_register_gsi(gsi, triggering, polarity);
_

Reply via email to