diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2014-11-12 06:11:25 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-11-23 07:01:47 -0500 |
commit | 38b6a1cf3e4df0a3267c01fab699ab65d58690f4 (patch) | |
tree | e6ff598d474183f2c7af3b17ef490ccdb526eb62 /drivers/pci | |
parent | aeeb59657c35da64068336c20068da237f41ab76 (diff) |
PCI/MSI: Move cached entry functions to irq core
Required to support non PCI based MSI.
[ tglx: Extracted from Jiangs patch series ]
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/Kconfig | 1 | ||||
-rw-r--r-- | drivers/pci/msi.c | 18 |
2 files changed, 1 insertions, 18 deletions
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 893503fa1782..82f95f4512f8 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig | |||
@@ -4,6 +4,7 @@ | |||
4 | config PCI_MSI | 4 | config PCI_MSI |
5 | bool "Message Signaled Interrupts (MSI and MSI-X)" | 5 | bool "Message Signaled Interrupts (MSI and MSI-X)" |
6 | depends on PCI | 6 | depends on PCI |
7 | select GENERIC_MSI_IRQ | ||
7 | help | 8 | help |
8 | This allows device drivers to enable MSI (Message Signaled | 9 | This allows device drivers to enable MSI (Message Signaled |
9 | Interrupts). Message Signaled Interrupts enable a device to | 10 | Interrupts). Message Signaled Interrupts enable a device to |
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index b5bf2f641770..103700e127bf 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -290,24 +290,6 @@ void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg) | |||
290 | } | 290 | } |
291 | } | 291 | } |
292 | 292 | ||
293 | void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg) | ||
294 | { | ||
295 | /* Assert that the cache is valid, assuming that | ||
296 | * valid messages are not all-zeroes. */ | ||
297 | BUG_ON(!(entry->msg.address_hi | entry->msg.address_lo | | ||
298 | entry->msg.data)); | ||
299 | |||
300 | *msg = entry->msg; | ||
301 | } | ||
302 | |||
303 | void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg) | ||
304 | { | ||
305 | struct msi_desc *entry = irq_get_msi_desc(irq); | ||
306 | |||
307 | __get_cached_msi_msg(entry, msg); | ||
308 | } | ||
309 | EXPORT_SYMBOL_GPL(get_cached_msi_msg); | ||
310 | |||
311 | void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg) | 293 | void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg) |
312 | { | 294 | { |
313 | if (entry->dev->current_state != PCI_D0) { | 295 | if (entry->dev->current_state != PCI_D0) { |