From owner-freebsd-new-bus Tue May 9 14: 3:28 2000 Delivered-To: freebsd-new-bus@freebsd.org Received: from server.baldwin.cx (jobaldwi.campus.vt.edu [198.82.67.146]) by hub.freebsd.org (Postfix) with ESMTP id 012AD37BF66; Tue, 9 May 2000 14:03:23 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: from john.baldwin.cx (john [10.0.0.2]) by server.baldwin.cx (8.9.3/8.9.3) with ESMTP id RAA05315; Tue, 9 May 2000 17:03:08 -0400 (EDT) (envelope-from jhb@FreeBSD.org) Message-Id: <200005092103.RAA05315@server.baldwin.cx> X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Tue, 09 May 2000 17:03:08 -0400 (EDT) From: John Baldwin To: Doug Rabson Subject: Re: Alpha USB difficulties... Cc: n_hibma@FreeBSD.org, freebsd-new-bus@FreeBSD.org, "John H. Baldwin" Sender: owner-freebsd-new-bus@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 09-May-00 Doug Rabson wrote: > On Tue, 9 May 2000, John H. Baldwin wrote: > >> On Tue, 9 May 2000, Doug Rabson wrote: >> >> > There is already a function isa_alloc_intr() which does most of what you >> > need so perhaps you don't need to add isa_alloc_intrs(). On the other >> > hand, your function is slightly more general. >> >> I did see the isa_alloc_intr() function, it was what I modeled my function >> on. I did use the intrs() function solely for the general case. I >> figured it would be bad to assume that all IRQ requests would always >> contain just one IRQ. If that is the case, however, then I'll change it >> to use isa_alloc_intr() instead. If you prefer the more general interface, I'll go through and convert all of the calls to isa_alloc_intr() to the isa_alloc_intrs() interface, and rename isa_alloc_intrs() to isa_alloc_intr() if that is preferred as well. That way we would only have one interface in the tree. >> > To make interrupt delivery work, you also need to hook pci_setup_intr and >> > pci_teardown_intr and vector them to the isa functions too. >> >> Hmmm, it looks like I'll need to override this /sys/pci/pcisupport.c >> conditional on #ifdef alpha? Or is this only a USB thing and thus should >> only be done for the ohci and uhci drivers? I was assuming that this was >> a general problem with SRM and PCI devices with ISA IRQ's. > > Hmm. I forgot that each chipset provides its own setup/teardown code. You > don't need to change any mi code but you probably need to add some extra > logic to cia_setup_intr() and tsunami_setup_intr(). Those are the main > chipsets which are affected although really this should happen for all > chipsets which don't use the ISA pic for routing all interrupts. Ok, done. For lack of a better name, I just renamed the functions to cia_tsunami_{setup,teardown}_intr(), and patched the cia and tsunami driver appropriately. Latest patch is at the same place as the others. -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.cslab.vt.edu/~jobaldwi/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-new-bus" in the body of the message