Messages in this thread |  | | Date | Sun, 14 Dec 2008 11:52:39 -0700 | | From | Grant Grundler <> | | Subject | Re: MSI messages |
| |
On Sun, Dec 14, 2008 at 03:15:15PM +0400, Manu Abraham wrote: ... > > A "GSI" (Generic Sys Interrupt?) is associated with each entry in > > the MSI-X table. Driver then calls request_irq() to bind an interrupt > > handler to each GSI. So the driver never directly sees the "message". > > Oh, you mean the array of irq_handlers in the MSI-X table should > correspond to a particular message ?
No. I mean each MSI-X entry has an address+message pair and each MSI-X entry is associated with the parameters passed to each call of request_irq(). Pass in unique private data to each call of request_irq() and the driver can determine which message was delivered when the ISR gets called. (ISR == Interrupt Service Routine, aka driver IRQ handler)
> I remember sometime back somebody stated that one might not get > the requested number of handlers what you requested.
Correct. The limit is defined by the number of GSI's available from the HW.
> In such a case, if the irq_handlers are mapped in a static fashion, one > might not get any interrupt callbacks for a specific functionality of > the hardware. Or is there something missing in what i understood ?
Correct.
grant
|  |