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