From owner-cvs-all Sun May 27 15:22: 8 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id B2E0E37B422; Sun, 27 May 2001 15:22:03 -0700 (PDT) (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f4RMM3v91968; Sun, 27 May 2001 15:22:03 -0700 (PDT) (envelope-from gallatin) Message-Id: <200105272222.f4RMM3v91968@freefall.freebsd.org> From: Andrew Gallatin Date: Sun, 27 May 2001 15:22:03 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/pci pci.c src/sys/alpha/pci pcibus.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG gallatin 2001/05/27 15:22:03 PDT Modified files: sys/dev/pci pci.c sys/alpha/pci pcibus.c Log: finally fix intr routing on alphas such as the as500 after months of breakage: - call PCIB_ROUTE_INTERRUPT() regardless of how valid the intline looks. Some alphas leave garbage in the intline and leave the intr mapping to OS platform support routines that map slots/buses to intlines - Down in the alpha pci code, first try platform.pci_intr_route() and if it doesn't exist or returns garbage, just read the intline out of config space. tested on AS500 (garbage in intline) and UP1000 (PC-like, intline is valid) Note that a nice little hack like the APIC_IO section of pci_cfgregread() is not workable. This is because the calling interface for alpha_pci_route_interrupt() requires us to figure out the bus/slot/etc from a device_t. At pci_read_device() time, we don't have a device_t for the bus/slot/func in question. Revision Changes Path 1.177 +6 -2 src/sys/dev/pci/pci.c 1.29 +8 -3 src/sys/alpha/pci/pcibus.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message