From owner-freebsd-mobile@FreeBSD.ORG Wed Aug 2 15:02:02 2006 Return-Path: X-Original-To: freebsd-mobile@freebsd.org Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B3CFA16A5A8 for ; Wed, 2 Aug 2006 15:02:02 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 472BC43D67 for ; Wed, 2 Aug 2006 15:01:53 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.0.1.106] (nat-outside.atlanta.corp.yahoo.com [63.172.193.57]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k72F1pQ8088540; Wed, 2 Aug 2006 11:01:52 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: yraffah@savola.com Date: Wed, 2 Aug 2006 10:28:09 -0400 User-Agent: KMail/1.9.1 References: <1152019643.704.42.camel@redevil.savola.com> <1152358151.679.27.camel@redevil.savola.com> <44D03E9F.1040409@savola.com> In-Reply-To: <44D03E9F.1040409@savola.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200608021028.09765.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [66.23.211.162]); Wed, 02 Aug 2006 11:01:52 -0400 (EDT) X-Virus-Scanned: ClamAV 0.87.1/1631/Wed Aug 2 06:33:38 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: freebsd-mobile@freebsd.org Subject: Re: Interrupt Storms on irq:11 with Tecra A4 X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Aug 2006 15:02:02 -0000 On Wednesday 02 August 2006 01:56, Yousef Raffah wrote: > Updating to (7.0-CURRENT #1: Mon Jul 17 20:06:47 AST 2006) has a working > acpi on my laptop but the interrupt storm is still there. I have included > below a verbose dmesg with acpi enabled as per your request. I would rea= lly=20 > appreciate any help you can offer :) =20 > =20 > pci_link6: Links after initial probe: > Index=A0 IRQ=A0 Rtd=A0 Ref=A0 IRQs > =A0=A0=A0 0=A0=A0 11=A0=A0 N=A0=A0=A0=A0 0=A0 6 > pci_link6: Links after initial validation: > Index=A0 IRQ=A0 Rtd=A0 Ref=A0 IRQs > =A0=A0=A0 0=A0 255=A0=A0 N=A0=A0=A0=A0 0=A0 6 > pci_link6: Links after disable: > Index=A0 IRQ=A0 Rtd=A0 Ref=A0 IRQs > =A0=A0=A0 0=A0 255=A0=A0 N=A0=A0=A0=A0 0=A0 6 > pci_link7: Links after initial probe: > Index=A0 IRQ=A0 Rtd=A0 Ref=A0 IRQs > =A0=A0=A0 0=A0=A0 11=A0=A0 N=A0=A0=A0=A0 0=A0 5 10 > pci_link7: Links after initial validation: > Index=A0 IRQ=A0 Rtd=A0 Ref=A0 IRQs > =A0=A0=A0 0=A0 255=A0=A0 N=A0=A0=A0=A0 0=A0 5 10 > pci_link7: Links after disable: > Index=A0 IRQ=A0 Rtd=A0 Ref=A0 IRQs > =A0=A0=A0 0=A0 255=A0=A0 N=A0=A0=A0=A0 0=A0 5 10 Well, these two appear to be your problem due to your BIOS having buggy ASL= =2E =20 You can work around it, but you'll need to figure out the names of your lin= k=20 devices first. 'devinfo -v' with ACPI enabled can help with that. For=20 example, on my laptop: % devinfo -v | grep 'pci_link[67]' pci_link6 pnpinfo _HID=3DPNP0C0F _UID=3D106 at handle=3D\_SB_.C002.C0F2 pci_link7 pnpinfo _HID=3DPNP0C0F _UID=3D107 at handle=3D\_SB_.C002.C0F3 pci_link6 is called C0F2, and pci_link7 is called C0F3. You'll use these=20 names to override the IRQ for the link device by setting the following=20 variables in the loader: hw.pci.link.C0F2.irq=3D11 hw.pci.link.C0F3.irq=3D11 (You'll have to replace C0F2 and C0F3 with the names for your link devices.= =20 Probably LNKF and LNKG.) You might also need this patch (but try the tunables above without the patc= h=20 first to be sure): Index: dev/acpica/acpi_pci_link.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /usr/cvs/src/sys/dev/acpica/acpi_pci_link.c,v retrieving revision 1.53 diff -u -r1.53 acpi_pci_link.c =2D-- dev/acpica/acpi_pci_link.c 6 Jan 2006 16:14:32 -0000 1.53 +++ dev/acpica/acpi_pci_link.c 2 Aug 2006 14:27:09 -0000 @@ -941,18 +941,16 @@ KASSERT(!PCI_INTERRUPT_VALID(link->l_irq), ("%s: link already has an IRQ", __func__)); =20 =2D /* Check for a tunable override and use it if it is valid. */ + /* Check for a tunable override. */ if (ACPI_SUCCESS(acpi_short_name(acpi_get_handle(dev), link_name, sizeof(link_name)))) { snprintf(tunable_buffer, sizeof(tunable_buffer), "hw.pci.link.%s.%d.irq", link_name, link->l_res_index); =2D if (getenv_int(tunable_buffer, &i) && =2D PCI_INTERRUPT_VALID(i) && link_valid_irq(link, i)) + if (getenv_int(tunable_buffer, &i) && PCI_INTERRUPT_VALID(i)) return (i); snprintf(tunable_buffer, sizeof(tunable_buffer), "hw.pci.link.%s.irq", link_name); =2D if (getenv_int(tunable_buffer, &i) && =2D PCI_INTERRUPT_VALID(i) && link_valid_irq(link, i)) + if (getenv_int(tunable_buffer, &i) && PCI_INTERRUPT_VALID(i)) return (i); } =20 =2D-=20 John Baldwin