Yup, I've checked dev->IRQ against that which lspci
 -vv returns, and they're the same.
 
 Thanks for the reply.
 
 - Al (and apologies if I've submitted this twice - it's 6am and I've exhausted 
my day's supply of Clever already..)
 
> --- On Sun, 4/19/09, Pei Lin <[email protected]>
> wrote:
> 
> > From: Pei Lin <[email protected]>
> > Subject: Re: request_irq returns -ENOSYS
> > Cc: [email protected]
> >
> > you are using the "IRQF_SHARED" mode to
> > request_irq, and so the
> > irq_number will be the one which others' device
> use.
> > Are u sure
> > "dev->irq" is the right one?
> > 
> > BRs
> > 
> > Lin
> > 
> > 2009/4/20 ASmallCheeseBox
> > <[email protected]>:
> > >
> > >
> > > Hi. I posted this to the forum a couple days ago,
> to
> > no avail - I hope no-one minds me reposting here.
> > >
> > > My issue:
> > >
> > > So, I'm merrily writing my device driver for
> some
> > homebrew hardware using the Xilinx PCIE endpoint.
> > >
> > > I'm sure this has been working in the past,
> but
> > now I get -38 (-ENOSYS) returned from my call to
> > request_irq. I can't for the life of me figure out
> why,
> > although I've dug a bit and found that this is
> being
> > returned by the following lines in
> kernel/irq/manage.c:
> > >
> > > 404: if (desc->chip == &no_irq_chip)
> > > 405:   return -ENOSYS;
> > >
> > > I think this is telling me that the kernel
> doesn't
> > know how to handle IRQs that my card signals, because
> the
> > IRQ handling hardware isn't supported. Am I wrong?
> > >
> > > I've tried three different kernel versions
> > (2.6.22, 2.6.27, and 2.6.28) and I get the same
> behaviour on
> > each. I've tried twiddling BIOS settings (and even
> > upgraded the BIOS), I've tried messing about with
> the
> > kernel command line, and I've tried registering
> other
> > IRQ lines instead (ie, some native IRQ). I'm
> pretty much
> > at a loss. Trying a different motherboard is on my
> to-try
> > list, but I'm trying to avoid that (since I
> don't
> > have any more yet).
> > >
> > > The relevant call to request_irq:
> > >
> > > // enable IRQ for card
> > > long s=request_irq ( dev->irq,
> handle_interrupt,
> > IRQF_SHARED, DRIVER_NAME, dev);
> > > if ( s )
> > > {
> > >   printk(KERN_ALERT "Failed to request IRQ
> %d
> > (%d)\n", dev->irq, s);
> > >
> > > My IRQ handler is a stub which just returns
> > IRQ_HANDLED.
> > >
> > > I've dug through documentation and my (albeit
> > outdated) paper books, and can't find anything
> relevant
> > (at least not for x86). Can anyone suggest anything I
> > might've overlooked, or point me in the right
> direction?
> > >
> > > The motherboard has a VIA chipset, and the PCI-e
> card
> > is a 1-lane Xilinx board. I've disabled every
> spurious
> > function I can find in the BIOS.
> > >
> > > Thanks for any help..
> > >
> > >
> > >
> > >
> > > --
> > > To unsubscribe from this list: send an email with
> > > "unsubscribe kernelnewbies" to
> > [email protected]
> > > Please read the FAQ at
> http://kernelnewbies.org/FAQ
> > >
> > >




--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to