[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1195854833.7195.24.camel@pasglop>
Date: Sat, 24 Nov 2007 08:53:53 +1100
From: Benjamin Herrenschmidt <benh@...nel.crashing.org>
To: Al Niessner <Al.Niessner@....nasa.gov>
Cc: linux-kernel@...r.kernel.org
Subject: Re: Where is the interrupt going?
On Wed, 2007-11-21 at 17:08 -0800, Al Niessner wrote:
>
> p8620 = pci_get_device (APC8620_VENDOR_ID, APC8620_DEVICE_ID, p8620);
> <... fail if p8620 is 0 ...>
> apcsi[i].ret_val = register_chrdev (MAJOR_NUM,
>
> DEVICE_NAME,
>
> &apc8620_ops);
> <... fail if ret_val < 0 ...>
> apcsi[i].board_irq = p8620->irq;
> status = request_irq (apcsi[i].board_irq,
> apc8620_handler,
> IRQF_DISABLED,
> DEVICE_NAME,
> (void*)&apcsi[i]);
First, that's obviously not the proper way to do a PCI driver but I
suppose you know that :-)
Then, make sure you call pci_enable_device() at one point, don't some
platforms perform the actual IRQ routing that late ? (And don't sample
pdev->irq before the pci_enable_device(), sample it afterward).
Cheers,
Ben.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists