Yus. I've even gone so far as to hardcode the IRQ number so I can be sure nothing crazy is happening, to no avail. -Al --- On Sun, 4/19/09, Pei Lin <telent997@xxxxxxxxx> wrote: > From: Pei Lin <telent997@xxxxxxxxx> > Subject: Re: request_irq returns -ENOSYS > To: asmallcheesebox@xxxxxxxxx > > And the issue is still there? > > 2009/4/20 ASmallCheeseBox > <asmallcheesebox@xxxxxxxxx>: > > > > > > Yup, I've checked dev->IRQ against that which > lspci -vv returns, and they're the same. > > > > Thanks for the reply. > > > > - Al > > > > --- On Sun, 4/19/09, Pei Lin > <telent997@xxxxxxxxx> wrote: > > > >> From: Pei Lin <telent997@xxxxxxxxx> > >> Subject: Re: request_irq returns -ENOSYS > >> Cc: kernelnewbies@xxxxxxxxxxxx > >> > >> 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 > >> <asmallcheesebox@xxxxxxxxx>: > >> > > >> > > >> > 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 > >> ecartis@xxxxxxxxxxxx > >> > Please read the FAQ at > http://kernelnewbies.org/FAQ > >> > > >> > > > > > > > > > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ