i search the google and i think there is a key point about MSI/MSI-X,you need pci_enable_msi/msix() before you request_irq(). i hope this is the deal. 2009/4/20 ASmallCheeseBox <asmallcheesebox@xxxxxxxxx>: > > > 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