Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2002 00:36:06 -0500
From:      Benjamin Lewis <bhlewis@wossname.net>
To:        Vinod <geekvinod@yahoo.com>
Cc:        freebsd_mail@yahoo.com, freebsd-mobile@freebsd.org
Subject:   Re: reassigning irq's 
Message-ID:  <20020221053607.0EC27DA@akira.wossname.net>
In-Reply-To: Your message of "Wed, 20 Feb 2002 13:33:30 PST." <20020220213330.87550.qmail@web21104.mail.yahoo.com> 

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

> actually my pccard is a pci card inserted into a pci
> slot(i dont have any isa slots).so what best can be
> done in the present circumstances?

I had a similar problem with an SMC 2602 802.11b PCI card.  Nearly
every device on that rotten machine wanted to use the same IRQ (11).
I couldn't disable enough of the devices to allow the wi device
its own IRQ and yet leave a useful machine.  Instead, I simply
forced the wi device driver to accept the shared IRQ.  

That behavior seems to be the default with the latest revision
of if_wi.c in -current (1.73).  The -current implementation is
much better than mine because I didn't care about non-PCI cards
at all (the machine doesn't have any PCMCIA/PCCARD slots).

That said, here's what I did:

I found the bit in /usr/src/sys/dev/wi/if_wi.c that looks 
something like this:

	sc->irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid,
				     0, ~0, 1, RF_ACTIVE);

And changed it to something like this:

        sc->irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid,
                                     0, ~0, 1, RF_ACTIVE|RF_SHAREABLE);

Those lines appear in the wi_alloc function.

The first line of the pairs may be different, I didn't catch which
version of FreeBSD you use.  The change is on the second line anyway;
just leave the first one alone.  Note that this change will probably
do really bad things if a PCCARD Wavelan device ever ends up in the
computer! 

Doing it the right way probably wouldn't take too much more effort.  
You might look at the diffs between 1.72 and 1.73 for pointers.  
Actually, looking at the commit message for 1.73, you may find that 
those changes find their way into -stable soon and your problems will
be solved by just waiting for that (assuming you're running -stable).

After making the change, I built a new kernel and modules, rebooted,
and had happy wireless fun :) At least, I'm pretty sure that's all
I had to do -- it was a little while ago!

-Ben


-- 
Benjamin Lewis
bhlewis@wossname.net         -or-       bhlewis@purdue.edu



-- 
Benjamin Lewis
bhlewis@wossname.net         -or-       bhlewis@purdue.edu



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




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