PCI/MSI: Move cached entry functions to irq core
authorJiang Liu <jiang.liu@linux.intel.com>
Wed, 12 Nov 2014 11:11:25 +0000 (12:11 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 23 Nov 2014 12:01:47 +0000 (13:01 +0100)
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>
drivers/pci/Kconfig
drivers/pci/msi.c
kernel/irq/msi.c

index 893503fa17821fcd5aa7fc2d7a207531bac44aaa..82f95f4512f888b6fe45ce9ccf8ea0c096b2836c 100644 (file)
@@ -4,6 +4,7 @@
 config PCI_MSI
        bool "Message Signaled Interrupts (MSI and MSI-X)"
        depends on PCI
+       select GENERIC_MSI_IRQ
        help
           This allows device drivers to enable MSI (Message Signaled
           Interrupts).  Message Signaled Interrupts enable a device to
index b5bf2f641770a16c2ece3159ac4a88c20e90109f..103700e127bf2056c4f95f89054e207156384b10 100644 (file)
@@ -290,24 +290,6 @@ void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
        }
 }
 
-void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
-{
-       /* Assert that the cache is valid, assuming that
-        * valid messages are not all-zeroes. */
-       BUG_ON(!(entry->msg.address_hi | entry->msg.address_lo |
-                entry->msg.data));
-
-       *msg = entry->msg;
-}
-
-void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg)
-{
-       struct msi_desc *entry = irq_get_msi_desc(irq);
-
-       __get_cached_msi_msg(entry, msg);
-}
-EXPORT_SYMBOL_GPL(get_cached_msi_msg);
-
 void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
 {
        if (entry->dev->current_state != PCI_D0) {
index d0fe84d881f6718f7e30702e5320e5cb13a9c1a6..f477a2f8ce56320105bc429c65a2a58bbc965a54 100644 (file)
 /* Temparory solution for building, will be removed later */
 #include <linux/pci.h>
 
+void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+{
+       *msg = entry->msg;
+}
+
+void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg)
+{
+       struct msi_desc *entry = irq_get_msi_desc(irq);
+
+       __get_cached_msi_msg(entry, msg);
+}
+EXPORT_SYMBOL_GPL(get_cached_msi_msg);
+
 #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
 /**
  * msi_domain_set_affinity - Generic affinity setter function for MSI domains