Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262547AbTIPXMi (ORCPT ); Tue, 16 Sep 2003 19:12:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262551AbTIPXMh (ORCPT ); Tue, 16 Sep 2003 19:12:37 -0400 Received: from lidskialf.net ([62.3.233.115]:55937 "EHLO beyond.lidskialf.net") by vger.kernel.org with ESMTP id S262547AbTIPXMg (ORCPT ); Tue, 16 Sep 2003 19:12:36 -0400 From: Andrew de Quincey To: linux-kernel@vger.kernel.org, acpi-devel@lists.sourceforge.net Subject: [PATCH] 2.6.0-test4 Don't change BIOS allocated IRQs Date: Wed, 17 Sep 2003 00:11:03 +0100 User-Agent: KMail/1.5.3 Cc: linux-acpi@intel.com, Chris Wright MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200309170011.03630.adq_dvb@lidskialf.net> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1680 Lines: 44 With the help of Chris Wright testing several failed patches, I've tracked down another ACPI IRQ problem. On many systems, the BIOS pre-allocates IRQs for certain PCI devices, providing a list of alternate possibilities as well. On some systems, changing the IRQ to one of those alternate possibilities works fine. On others however, it really isn't a good idea. As theres no way to tell which systems are good and bad in advance, this patch simply ensures that ACPI does not change an IRQ if the BIOS has pre-allocated it. --- linux-2.6.0-test4.es7000fix/drivers/acpi/pci_link.c 2003-09-06 00:35:16.000000000 +0100 +++ linux-2.6.0-test4.nochangeirq/drivers/acpi/pci_link.c 2003-09-17 00:00:40.740553544 +0100 @@ -510,15 +510,15 @@ irq = link->irq.active; } else { irq = link->irq.possible[0]; - } - /* - * Select the best IRQ. This is done in reverse to promote - * the use of IRQs 9, 10, 11, and >15. - */ - for (i=(link->irq.possible_count-1); i>0; i--) { - if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) - irq = link->irq.possible[i]; + /* + * Select the best IRQ. This is done in reverse to promote + * the use of IRQs 9, 10, 11, and >15. + */ + for (i=(link->irq.possible_count-1); i>0; i--) { + if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) + irq = link->irq.possible[i]; + } } /* Attempt to enable the link device at this IRQ. */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/