Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 09 May 2000 17:03:08 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Doug Rabson <dfr@nlsystems.com>
Cc:        n_hibma@FreeBSD.org, freebsd-new-bus@FreeBSD.org, "John H. Baldwin" <jobaldwi@cslab.vt.edu>
Subject:   Re: Alpha USB difficulties...
Message-ID:  <200005092103.RAA05315@server.baldwin.cx>
In-Reply-To: <Pine.BSF.4.21.0005092012110.47945-100000@salmon.nlsystems.com>

next in thread | previous in thread | raw e-mail | index | archive | help

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 <jhb@FreeBSD.org> -- 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005092103.RAA05315>