Re: request_irq returns -ENOSYS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux