lkml.org 
[lkml]   [2004]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] rename CONFIG_PCI_USE_VECTOR to CONFIG_PCI_MSI
Date
On Monday 26 July 2004 4:39 pm, Roland Dreier wrote:
> I would propose the following course of action:
>
> 1) Merge Long's latest MSI/MSI-X patches (updated patches in
> http://gmane.linux.kernel/218830). Without the new semantics of
> pci_disable_msi()/pci_disable_msix(), it's very difficult to use
> MSI/MSI-X in a device driver.

That sounds fine to me. There's nobody really using MSI yet, so
it can't break too much.

> 2) Split the config options so we have an i386-specific
> CONFIG_PCI_USE_VECTOR and a generic CONFIG_PCI_MSI (with
> CONFIG_PCI_MSI depending on something like !I386 || CONFIG_PCI_USE_VECTOR)
> This would be an updated version of your patch.\

Yup. Nothing in MSI has changed since April, so I thought my patch
would be a reasonable no-risk first step.

> 3) Make the code in drivers/pci/msi.c less Intel-specific -- instead
> of hard-coding Intel-specific addresses for vectors have the
> computation call into arch code. This would be a fair amount of
> work and depends documentation for non-Intel platforms that
> implement MSI/MSI-X -- should be easier as PCI Express comes out.

This is the bit I really want to get to. In particular, I want to
support multiple interrupt vector spaces on ia64, because we're
running out of vectors. I can't do that as long as MSI mucks
around with the arch-specific vector allocation. (There's plenty
of ia64 code that needs to be cleaned up, too; it's not just MSI.)

I think there needs to be some arch interface to allocate/deallocate
Linux IRQ numbers (not interrupt vectors). Then MSI can allocate
as many as it needs, and use yet another arch interface to translate
the Linux IRQ numbers to the appropriate address/data info to program
the device.

(A side note on this -- the MSI code in the tree uses "vector" where
it should use "irq". For example, msi_alloc_vectors() really allocates
Linux IRQs, not vectors, because you can pass them to request_irq() and
friends. Maybe Long's latest patch cleans this up a bit.)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [from the cache]
©2003-2011 Jasper Spaans