Netgear MA301 and IRQs
Martijn van Oosterhout
kleptog at svana.org
Mon Nov 12 21:38:55 EST 2001
On Mon, Nov 12, 2001 at 10:46:02AM +0100, Bjoern Giesler wrote:
> Hi,
>
> I'm having troubles with the Netgear MA301/Lucent WaveLAN Silver Turbo.
> The problem seems to be known (I've browsed the archives) -- the card
> gets identified and seems to run fine, but it doesn't give any interrupts
> to the kernel (at least, that's what "cat /proc/interrupts" suggests).
> Instead, I get a lot of "Tx timed out" in the console. I've tried this
> with a production 2.4.14 kernel (0.08a) and the version 0.08b from David
> Gibson's 'testing' directory; the latter one doesn't segfault on rmmod,
> but it has the same IRQ problem.
Common problem. Plenty of people are having issues with that card.
> Has this problem been solved already? If not, I've found a posting on the
> freebsd-mobile list that suggests that they had a similar problem and
> fixed it by fiddling with the card's IRQ control register. These posts
> seem relevant:
>
> http://docs.freebsd.org/cgi/getmsg.cgi?fetch=318765+0+archive/2001/freebsd-mobile/20010826.freebsd-mobile
> http://docs.freebsd.org/cgi/getmsg.cgi?fetch=321477+0+archive/2001/freebsd-mobile/20010826.freebsd-mobile
Looks interesting. It may work.
> The latter one has a code snippet that might do the right thing -- if
> anyone tells me just where in the orinoco_plx code I have to put it in,
> please do so ;-)
Well, it would be just after setting the COR. Here is some code off the top
of my head. I have no real idea how the PCI stuff works, I'm just guessing:
The main reason why I think it's wrong is that there are I/O ports, so
should we be using I/O functions to access them?
#define WI_LOCAL_INTCSR 0x4c
#define WI_LOCAL_INTEN 0x40 /* poke this into INTCSR */
{
u32 io_mem;
u32 reg;
/* Resource 0 is mapped to the PLX chip space */
io_mem = ioremap(pci_resource_start(pdev, 0), PAGE_SIZE);
if (! io_mem)
goto fail;
reg = io_mem[WI_LOCAL_INTCSR / sizeof(u32)];
reg |= WI_LOCAL_INTEN;
io_mem[WI_LOCAL_INTCSR / sizeof(u32)];
iounmap( io_mem );
}
Anyone see anything wring with it?
--
Martijn van Oosterhout <kleptog at svana.org>
http://svana.org/kleptog/
> Magnetism, electricity and motion are like a three-for-two special offer:
> if you have two of them, the third one comes free.
More information about the wireless
mailing list