Re: Where is the interrupt going?

From: Al Niessner
Date: Mon Nov 26 2007 - 17:50:18 EST



Yes, as also pointed out by Arjan Van de Ven, I was missing the
pci_enable_device() call. This seems related to the deprecation of
pci_find_device (or something like that) in favor of pci_get_device.
Well, by adding the pci_enable_device it all works well.

On Sat, 2007-11-24 at 08:53 +1100, Benjamin Herrenschmidt wrote:
> 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@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
Al Niessner
818.354.0859

All opinions stated above are mine and do not necessarily reflect those
of JPL or NASA.

--------
| dS | >= 0
--------


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/