aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorAdrian Bunk <bunk@kernel.org>2007-12-11 17:19:41 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 18:04:25 -0500
commit6a9e7f203187e22e96588fa0156b2652841196bf (patch)
tree2120eb0ffca8e425fec61b99a85dfd2c76c764e3 /drivers/pci/msi.c
parent6bae1d96c6d7dde078994f6cb98235fd46f8736b (diff)
PCI: drivers/pci/msi.c: move arch hooks to the top
This patch fixes the following problem present with older gcc versions: <-- snip --> ... CC drivers/pci/msi.o /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:692: warning: weak declaration of `arch_msi_check_device' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:704: warning: weak declaration of `arch_setup_msi_irqs' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:724: warning: weak declaration of `arch_teardown_msi_irqs' after first use results in unspecified behavior ... <-- snip --> Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c91
1 files changed, 45 insertions, 46 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 30de51fcd68c..26938da8f438 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -25,6 +25,51 @@
25 25
26static int pci_msi_enable = 1; 26static int pci_msi_enable = 1;
27 27
28/* Arch hooks */
29
30int __attribute__ ((weak))
31arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
32{
33 return 0;
34}
35
36int __attribute__ ((weak))
37arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *entry)
38{
39 return 0;
40}
41
42int __attribute__ ((weak))
43arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
44{
45 struct msi_desc *entry;
46 int ret;
47
48 list_for_each_entry(entry, &dev->msi_list, list) {
49 ret = arch_setup_msi_irq(dev, entry);
50 if (ret)
51 return ret;
52 }
53
54 return 0;
55}
56
57void __attribute__ ((weak)) arch_teardown_msi_irq(unsigned int irq)
58{
59 return;
60}
61
62void __attribute__ ((weak))
63arch_teardown_msi_irqs(struct pci_dev *dev)
64{
65 struct msi_desc *entry;
66
67 list_for_each_entry(entry, &dev->msi_list, list) {
68 if (entry->irq != 0)
69 arch_teardown_msi_irq(entry->irq);
70 }
71}
72
28static void msi_set_enable(struct pci_dev *dev, int enable) 73static void msi_set_enable(struct pci_dev *dev, int enable)
29{ 74{
30 int pos; 75 int pos;
@@ -682,49 +727,3 @@ void pci_msi_init_pci_dev(struct pci_dev *dev)
682{ 727{
683 INIT_LIST_HEAD(&dev->msi_list); 728 INIT_LIST_HEAD(&dev->msi_list);
684} 729}
685
686
687/* Arch hooks */
688
689int __attribute__ ((weak))
690arch_msi_check_device(struct pci_dev* dev, int nvec, int type)
691{
692 return 0;
693}
694
695int __attribute__ ((weak))
696arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *entry)
697{
698 return 0;
699}
700
701int __attribute__ ((weak))
702arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
703{
704 struct msi_desc *entry;
705 int ret;
706
707 list_for_each_entry(entry, &dev->msi_list, list) {
708 ret = arch_setup_msi_irq(dev, entry);
709 if (ret)
710 return ret;
711 }
712
713 return 0;
714}
715
716void __attribute__ ((weak)) arch_teardown_msi_irq(unsigned int irq)
717{
718 return;
719}
720
721void __attribute__ ((weak))
722arch_teardown_msi_irqs(struct pci_dev *dev)
723{
724 struct msi_desc *entry;
725
726 list_for_each_entry(entry, &dev->msi_list, list) {
727 if (entry->irq != 0)
728 arch_teardown_msi_irq(entry->irq);
729 }
730}